diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml index 2b8a50fc..fe63bb67 100644 --- a/.idea/kotlinc.xml +++ b/.idea/kotlinc.xml @@ -1,6 +1,6 @@ - \ No newline at end of file diff --git a/.sdkmanrc b/.sdkmanrc index b9c96b0b..66f98085 100644 --- a/.sdkmanrc +++ b/.sdkmanrc @@ -1,2 +1,2 @@ -java=8.0.362-amzn -maven=3.9.0 \ No newline at end of file +java=21.0.2-amzn +maven=3.9.6 \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index eabdd65d..68092660 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,39 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.0.0-RC2] - 2024-05-16 + +### Added + +- AsyncAPI 2.6.0 message parses Avro, Json and OpenAPI schemas + +### Changed + +- Bindings were updated: + - AMQP: 0.1.0, 0.2.0, 0.3.0 + - AMQP1: 0.1.0 + - Anypoint MQ: 0.1.0 + - Google Cloud Pub/Sub: 0.1.0, 0.2.0 + - HTTP: 0.1.0, 0.2.0, 0.3.0, 0.4.0, 0.5.0 + - IBM MQ: 0.1.0 + - JMS: 0.0.1 + - Apache Kafka: 0.1.0, 0.3.0, 0.4.0, 0.5.0 + - Mercure: 0.1.0 + - MQTT: 0.1.0, 0.2.0 + - MQTT 5: 0.1.0, 0.2.0 + - NATS: 0.1.0 + - Apache Pulsar: 0.1.0 + - Redis: 0.1.0 + - Amazon SNS: 0.1.0 + - Solace: 0.1.0, 0.2.0, 0.3.0, 0.4.0 + - Amazon SQS: 0.1.0, 0.2.0 + - STOMP: 0.1.0 + - WebSockets: 0.1.0 +- All schemas now are located in `schemas` package +- All bindings now are located in `bindings` package +- Bindings structure was changed. Each binding now holds `channel`, `server`, `message`, `operation` inside package +- Bindings now are common for v2 and v3 versions + ## [1.0.0-RC] - 2024-04-20 ### Added diff --git a/README.md b/README.md index 90105287..fbbe813e 100644 --- a/README.md +++ b/README.md @@ -3,11 +3,7 @@

Building the future of event-driven architectures

We're on a mission to standardize message-based communication and increase interoperability of the different systems out there.
---- -> ⚠️ This project doesn't support AsyncAPI 1.x ---- - -[![Version](https://img.shields.io/maven-central/v/com.asyncapi/asyncapi-core?logo=apache-maven)](https://central.sonatype.com/artifact/com.asyncapi/asyncapi-core/1.0.0-RC) +[![Version](https://img.shields.io/maven-central/v/com.asyncapi/asyncapi-core/1.0.0-RC2?logo=apache-maven)](https://central.sonatype.com/artifact/com.asyncapi/asyncapi-core/1.0.0-RC2) ## Overview JVM-friendly bindings for AsyncAPI. It allows you to read or write specifications for your asynchronous API through code @@ -16,9 +12,75 @@ Hints: - If you are working with AsyncAPI specification in JetBrains IDE, check out our [AsyncAPI - IDEA plugin](https://github.com/asyncapi/jasyncapi-idea-plugin) - If you are working with AsyncAPI specification in VSCode, check out our [AsyncAPI - VSCode plugin](https://github.com/asyncapi/vs-asyncapi-preview) +### Implemented AsyncAPI versions (3/8) + +| Version | Implementation status | +|---------|-----------------------| +| 2.0.0 | ✅ | +| 2.1.0 | ❌ | +| 2.2.0 | ❌ | +| 2.3.0 | ❌ | +| 2.4.0 | ❌ | +| 2.5.0 | ❌ | +| 2.6.0 | ✅ | +| 3.0.0 | ✅ | + +### Implemented AsyncAPI schemas (5/7) + +| Protocol | Versions | +|------------------------------|-------------------------------------------------------------| +| AsyncAPI Multi Format Schema | 3.0.0 | +| AsyncAPI Schema | unified version | +| Avro Schema | 1.9.0, 1.9.1, 1.9.2, 1.10.0, 1.10.1, 1.10.2, 1.11.0, 1.11.1 | +| Json Schema | Draft-07 | +| OpenAPI Schema | 3.0.0, 3.0.1, 3.0.2, 3.0.3 | +| RAML 1.0 Schema | ❌ | +| Protocol Buffers | ❌ | + +### Implemented AsyncAPI bindings (19/19) + +| Protocol | Versions | +|----------------------|-----------------------------------| +| AMQP | 0.1.0, 0.2.0, 0.3.0 | +| AMQP1 | 0.1.0 | +| Anypoint MQ | 0.1.0 | +| Google Cloud Pub/Sub | 0.1.0, 0.2.0 | +| HTTP | 0.1.0, 0.2.0, 0.3.0, 0.4.0, 0.5.0 | +| IBM MQ | 0.1.0 | +| JMS | 0.0.1 | +| Apache Kafka | 0.1.0, 0.3.0, 0.4.0, 0.5.0 | +| Mercure | 0.1.0 | +| MQTT | 0.1.0, 0.2.0 | +| MQTT 5 | 0.1.0, 0.2.0 | +| NATS | 0.1.0 | +| Apache Pulsar | 0.1.0 | +| Redis | 0.1.0 | +| Amazon SNS | 0.1.0 | +| Solace | 0.1.0, 0.2.0, 0.3.0, 0.4.0 | +| Amazon SQS | 0.1.0, 0.2.0 | +| STOMP | 0.1.0 | +| WebSockets | 0.1.0 | + +### Implemented AsyncAPI Security Schemas (12/12) +| Security Schema | Implementation status | +|-----------------------|-----------------------| +| API Key | ✅ | +| Asymmetric Encryption | ✅ | +| GSS-API | ✅ | +| HTTP | ✅ | +| HTTP API Key | ✅ | +| OAuth2 | ✅ | +| OpenID Connect | ✅ | +| Plain | ✅ | +| SCRAM-SHA-256 | ✅ | +| SCRAM-SHA-512 | ✅ | +| Symmetric Encryption | ✅ | +| User Password | ✅ | + ## Known consumers: - [Springwolf Core](https://github.com/springwolf/springwolf-core) - Automated documentation for async APIs built with Spring Boot - [AsyncAPI Quarkus](https://github.com/quarkiverse/quarkus-asyncapi) - Generates AsyncAPIRegistry and configuration classes for Quarkus +- [Specmatic](https://specmatic.in) - Converts AsyncAPI specifications into executable contracts ## Known open specifications to check compatibility with: - [x] [adeo-kafka-request-reply-asyncapi.yml](https://github.com/asyncapi/spec/blob/master/examples/adeo-kafka-request-reply-asyncapi.yml) diff --git a/asyncapi-core/README.md b/asyncapi-core/README.md index e1c491c3..8239b3af 100644 --- a/asyncapi-core/README.md +++ b/asyncapi-core/README.md @@ -1,11 +1,7 @@ -

-
- AsyncAPI logo -

-

Building the future of event-driven architectures

-
We're on a mission to standardize message-based communication and increase interoperability of the different systems out there.
+[![AsyncAPI Logo](../assets/logo.png)](https://www.asyncapi.com) -> ⚠️ This project doesn't support AsyncAPI 1.x +

Building the future of event-driven architectures

+
We're on a mission to standardize message-based communication and increase interoperability of the different systems out there.
This submodule stores projection of AsyncAPI specification to java classes. Each class is being properly annotated with `jsr-305` annotations, which allows to use it in null-safety languages like `kotlin` without extra headache. @@ -14,7 +10,7 @@ which allows to use it in null-safety languages like `kotlin` without extra head com.asyncapi asyncapi-core - 1.0.0-EAP-2 + 1.0.0-RC2 ``` @@ -25,9 +21,4 @@ For manual working with AsyncAPI specification from java/kotlin code: ```kotlin var asyncApi = objectMapper.readValue(model, AsyncAPI::class.java) -``` - -### Generating of AsyncAPI Specification while building: -For generating of AsyncAPI specification from hand-crafted AsyncAPI class at choosed build cycle step use one of implemented plugins: -* [Gradle plugin](../asyncapi-plugin/asyncapi-plugin-gradle) -* [Maven plugin](../asyncapi-plugin/asyncapi-plugin-maven) +``` \ No newline at end of file diff --git a/asyncapi-core/pom.xml b/asyncapi-core/pom.xml index c9292752..41befac9 100644 --- a/asyncapi-core/pom.xml +++ b/asyncapi-core/pom.xml @@ -6,7 +6,7 @@ asyncapi com.asyncapi - 1.0.0-RC + 1.0.0-RC2 4.0.0 @@ -27,14 +27,10 @@ provided - - org.jetbrains.kotlin - kotlin-stdlib-jdk8 - test - org.jetbrains.kotlin kotlin-test + test com.fasterxml.jackson.module diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/BindingsMapDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/BindingsMapDeserializer.java new file mode 100644 index 00000000..ab5d3f38 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/BindingsMapDeserializer.java @@ -0,0 +1,47 @@ +package com.asyncapi.bindings; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +/** + * Deserializes AsyncAPI bindings map. + * + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +public abstract class BindingsMapDeserializer extends JsonDeserializer> { + + public abstract Object chooseKnownPojo(String bindingKey, JsonNode binding, ObjectCodec objectCodec) throws IOException; + + @Override + public Map deserialize( + JsonParser p, + DeserializationContext ctxt + ) throws IOException, JsonProcessingException { + ObjectCodec objectCodec = p.getCodec(); + JsonNode node = objectCodec.readTree(p); + + Map bindings = new HashMap<>(); + + node.fieldNames().forEachRemaining( + fieldName -> { + try { + bindings.put(fieldName, chooseKnownPojo(fieldName, node.get(fieldName), objectCodec)); + } catch (IOException e) { + e.printStackTrace(); + } + } + ); + + return bindings; + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/ChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/ChannelBinding.java new file mode 100644 index 00000000..dbd6e2be --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/ChannelBinding.java @@ -0,0 +1,32 @@ +package com.asyncapi.bindings; + +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.jetbrains.annotations.Nullable; + +/** + * Describes protocol-specific definition for a channel. + *

+ * This object MAY be extended with {@link ExtendableObject}. + * + * @see Specification Extensions + * @see Channel Binding + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class ChannelBinding extends ExtendableObject { + + /** + * The version of this binding. + *

+ * If omitted, 'latest' MUST be assumed. + */ + @Nullable + @JsonProperty("bindingVersion") + private String bindingVersion; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/ChannelBindingsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/ChannelBindingsDeserializer.java new file mode 100644 index 00000000..72c06300 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/ChannelBindingsDeserializer.java @@ -0,0 +1,68 @@ +package com.asyncapi.bindings; + +import com.asyncapi.bindings.amqp.AMQPChannelBinding; +import com.asyncapi.bindings.amqp1.AMQP1ChannelBinding; +import com.asyncapi.bindings.anypointmq.AnypointMQChannelBinding; +import com.asyncapi.bindings.googlepubsub.GooglePubSubChannelBinding; +import com.asyncapi.bindings.http.HTTPChannelBinding; +import com.asyncapi.bindings.ibmmq.IBMMQChannelBinding; +import com.asyncapi.bindings.jms.JMSChannelBinding; +import com.asyncapi.bindings.kafka.KafkaChannelBinding; +import com.asyncapi.bindings.mercure.MercureChannelBinding; +import com.asyncapi.bindings.mqtt.MQTTChannelBinding; +import com.asyncapi.bindings.mqtt5.MQTT5ChannelBinding; +import com.asyncapi.bindings.nats.NATSChannelBinding; +import com.asyncapi.bindings.pulsar.PulsarChannelBinding; +import com.asyncapi.bindings.redis.RedisChannelBinding; +import com.asyncapi.bindings.sns.SNSChannelBinding; +import com.asyncapi.bindings.solace.SolaceChannelBinding; +import com.asyncapi.bindings.sqs.SQSChannelBinding; +import com.asyncapi.bindings.stomp.STOMPChannelBinding; +import com.asyncapi.bindings.websockets.WebSocketsChannelBinding; +import com.asyncapi.schemas.asyncapi.Reference; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +/** + * Serializes channel bindings map. + * + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +public class ChannelBindingsDeserializer extends BindingsMapDeserializer { + + public Object chooseKnownPojo(String bindingKey, JsonNode binding, ObjectCodec objectCodec) throws IOException { + try (JsonParser jsonParser = binding.traverse(objectCodec)) { + if (binding.get("$ref" ) != null) { + return jsonParser.readValueAs(Reference.class); + } + + switch (bindingKey) { + case "amqp": return jsonParser.readValueAs(AMQPChannelBinding.class); + case "amqp1": return jsonParser.readValueAs(AMQP1ChannelBinding.class); + case "anypointmq": return jsonParser.readValueAs(AnypointMQChannelBinding.class); + case "googlepubsub": return jsonParser.readValueAs(GooglePubSubChannelBinding.class); + case "http": return jsonParser.readValueAs(HTTPChannelBinding.class); + case "ibmmq": return jsonParser.readValueAs(IBMMQChannelBinding.class); + case "jms": return jsonParser.readValueAs(JMSChannelBinding.class); + case "kafka": return jsonParser.readValueAs(KafkaChannelBinding.class); + case "mercure": return jsonParser.readValueAs(MercureChannelBinding.class); + case "mqtt": return jsonParser.readValueAs(MQTTChannelBinding.class); + case "mqtt5": return jsonParser.readValueAs(MQTT5ChannelBinding.class); + case "nats": return jsonParser.readValueAs(NATSChannelBinding.class); + case "pulsar": return jsonParser.readValueAs(PulsarChannelBinding.class); + case "redis": return jsonParser.readValueAs(RedisChannelBinding.class); + case "sns": return jsonParser.readValueAs(SNSChannelBinding.class); + case "solace": return jsonParser.readValueAs(SolaceChannelBinding.class); + case "sqs": return jsonParser.readValueAs(SQSChannelBinding.class); + case "stomp": return jsonParser.readValueAs(STOMPChannelBinding.class); + case "ws": return jsonParser.readValueAs(WebSocketsChannelBinding.class); + default: return null; + } + } + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/MessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/MessageBinding.java new file mode 100644 index 00000000..5cedaa93 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/MessageBinding.java @@ -0,0 +1,32 @@ +package com.asyncapi.bindings; + +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.jetbrains.annotations.Nullable; + +/** + * Describes AsyncAPI message binding. + *

+ * This object MAY be extended with {@link ExtendableObject}. + * + * @see Specification Extensions + * @see Message Binding + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MessageBinding extends ExtendableObject { + + /** + * The version of this binding. + *

+ * If omitted, 'latest' MUST be assumed. + */ + @Nullable + @JsonProperty("bindingVersion") + private String bindingVersion; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/MessageBindingsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/MessageBindingsDeserializer.java new file mode 100644 index 00000000..c3b8af0a --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/MessageBindingsDeserializer.java @@ -0,0 +1,68 @@ +package com.asyncapi.bindings; + +import com.asyncapi.bindings.amqp.AMQPMessageBinding; +import com.asyncapi.bindings.amqp1.AMQP1MessageBinding; +import com.asyncapi.bindings.anypointmq.AnypointMQMessageBinding; +import com.asyncapi.bindings.googlepubsub.GooglePubSubMessageBinding; +import com.asyncapi.bindings.http.HTTPMessageBinding; +import com.asyncapi.bindings.ibmmq.IBMMQMessageBinding; +import com.asyncapi.bindings.jms.JMSMessageBinding; +import com.asyncapi.bindings.kafka.KafkaMessageBinding; +import com.asyncapi.bindings.mercure.MercureMessageBinding; +import com.asyncapi.bindings.mqtt.MQTTMessageBinding; +import com.asyncapi.bindings.mqtt5.MQTT5MessageBinding; +import com.asyncapi.bindings.nats.NATSMessageBinding; +import com.asyncapi.bindings.pulsar.PulsarMessageBinding; +import com.asyncapi.bindings.redis.RedisMessageBinding; +import com.asyncapi.bindings.sns.SNSMessageBinding; +import com.asyncapi.bindings.solace.SolaceMessageBinding; +import com.asyncapi.bindings.sqs.SQSMessageBinding; +import com.asyncapi.bindings.stomp.STOMPMessageBinding; +import com.asyncapi.bindings.websockets.WebSocketsMessageBinding; +import com.asyncapi.schemas.asyncapi.Reference; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +/** + * Serializes message bindings map. + * + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +public class MessageBindingsDeserializer extends BindingsMapDeserializer { + + public Object chooseKnownPojo(String bindingKey, JsonNode binding, ObjectCodec objectCodec) throws IOException { + try (JsonParser jsonParser = binding.traverse(objectCodec)) { + if (binding.get("$ref" ) != null) { + return jsonParser.readValueAs(Reference.class); + } + + switch (bindingKey) { + case "amqp": return jsonParser.readValueAs(AMQPMessageBinding.class); + case "amqp1": return jsonParser.readValueAs(AMQP1MessageBinding.class); + case "anypointmq": return jsonParser.readValueAs(AnypointMQMessageBinding.class); + case "googlepubsub": return jsonParser.readValueAs(GooglePubSubMessageBinding.class); + case "http": return jsonParser.readValueAs(HTTPMessageBinding.class); + case "ibmmq": return jsonParser.readValueAs(IBMMQMessageBinding.class); + case "jms": return jsonParser.readValueAs(JMSMessageBinding.class); + case "kafka": return jsonParser.readValueAs(KafkaMessageBinding.class); + case "mercure": return jsonParser.readValueAs(MercureMessageBinding.class); + case "mqtt": return jsonParser.readValueAs(MQTTMessageBinding.class); + case "mqtt5": return jsonParser.readValueAs(MQTT5MessageBinding.class); + case "nats": return jsonParser.readValueAs(NATSMessageBinding.class); + case "pulsar": return jsonParser.readValueAs(PulsarMessageBinding.class); + case "redis": return jsonParser.readValueAs(RedisMessageBinding.class); + case "sns": return jsonParser.readValueAs(SNSMessageBinding.class); + case "solace": return jsonParser.readValueAs(SolaceMessageBinding.class); + case "sqs": return jsonParser.readValueAs(SQSMessageBinding.class); + case "stomp": return jsonParser.readValueAs(STOMPMessageBinding.class); + case "ws": return jsonParser.readValueAs(WebSocketsMessageBinding.class); + default: return null; + } + } + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/OperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/OperationBinding.java new file mode 100644 index 00000000..0b9ba524 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/OperationBinding.java @@ -0,0 +1,32 @@ +package com.asyncapi.bindings; + +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.jetbrains.annotations.Nullable; + +/** + * Describes protocol-specific definition for an operation. + *

+ * This object MAY be extended with {@link ExtendableObject}. + * + * @see Specification Extensions + * @see Operation Binding + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class OperationBinding extends ExtendableObject { + + /** + * The version of this binding. + *

+ * If omitted, 'latest' MUST be assumed. + */ + @Nullable + @JsonProperty("bindingVersion") + private String bindingVersion; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/OperationBindingsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/OperationBindingsDeserializer.java new file mode 100644 index 00000000..bffe1602 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/OperationBindingsDeserializer.java @@ -0,0 +1,68 @@ +package com.asyncapi.bindings; + +import com.asyncapi.bindings.amqp.AMQPOperationBinding; +import com.asyncapi.bindings.amqp1.AMQP1OperationBinding; +import com.asyncapi.bindings.anypointmq.AnypointMQOperationBinding; +import com.asyncapi.bindings.googlepubsub.GooglePubSubOperationBinding; +import com.asyncapi.bindings.http.HTTPOperationBinding; +import com.asyncapi.bindings.ibmmq.IBMMQOperationBinding; +import com.asyncapi.bindings.jms.JMSOperationBinding; +import com.asyncapi.bindings.kafka.KafkaOperationBinding; +import com.asyncapi.bindings.mercure.MercureOperationBinding; +import com.asyncapi.bindings.mqtt.MQTTOperationBinding; +import com.asyncapi.bindings.mqtt5.MQTT5OperationBinding; +import com.asyncapi.bindings.nats.NATSOperationBinding; +import com.asyncapi.bindings.pulsar.PulsarOperationBinding; +import com.asyncapi.bindings.redis.RedisOperationBinding; +import com.asyncapi.bindings.sns.SNSOperationBinding; +import com.asyncapi.bindings.solace.SolaceOperationBinding; +import com.asyncapi.bindings.sqs.SQSOperationBinding; +import com.asyncapi.bindings.stomp.STOMPOperationBinding; +import com.asyncapi.bindings.websockets.WebSocketsOperationBinding; +import com.asyncapi.schemas.asyncapi.Reference; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +/** + * Serializes operation bindings map. + * + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +public class OperationBindingsDeserializer extends BindingsMapDeserializer { + + public Object chooseKnownPojo(String bindingKey, JsonNode binding, ObjectCodec objectCodec) throws IOException { + try (JsonParser jsonParser = binding.traverse(objectCodec)) { + if (binding.get("$ref" ) != null) { + return jsonParser.readValueAs(Reference.class); + } + + switch (bindingKey) { + case "amqp": return jsonParser.readValueAs(AMQPOperationBinding.class); + case "amqp1": return jsonParser.readValueAs(AMQP1OperationBinding.class); + case "anypointmq": return jsonParser.readValueAs(AnypointMQOperationBinding.class); + case "googlepubsub": return jsonParser.readValueAs(GooglePubSubOperationBinding.class); + case "http": return jsonParser.readValueAs(HTTPOperationBinding.class); + case "ibmmq": return jsonParser.readValueAs(IBMMQOperationBinding.class); + case "jms": return jsonParser.readValueAs(JMSOperationBinding.class); + case "kafka": return jsonParser.readValueAs(KafkaOperationBinding.class); + case "mercure": return jsonParser.readValueAs(MercureOperationBinding.class); + case "mqtt": return jsonParser.readValueAs(MQTTOperationBinding.class); + case "mqtt5": return jsonParser.readValueAs(MQTT5OperationBinding.class); + case "nats": return jsonParser.readValueAs(NATSOperationBinding.class); + case "pulsar": return jsonParser.readValueAs(PulsarOperationBinding.class); + case "redis": return jsonParser.readValueAs(RedisOperationBinding.class); + case "sns": return jsonParser.readValueAs(SNSOperationBinding.class); + case "solace": return jsonParser.readValueAs(SolaceOperationBinding.class); + case "sqs": return jsonParser.readValueAs(SQSOperationBinding.class); + case "stomp": return jsonParser.readValueAs(STOMPOperationBinding.class); + case "ws": return jsonParser.readValueAs(WebSocketsOperationBinding.class); + default: return null; + } + } + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/ServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/ServerBinding.java new file mode 100644 index 00000000..eb378ec2 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/ServerBinding.java @@ -0,0 +1,32 @@ +package com.asyncapi.bindings; + +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.jetbrains.annotations.Nullable; + +/** + * Describes protocol-specific definition for a server. + *

+ * This object MAY be extended with {@link ExtendableObject}. + * + * @see Specification Extensions + * @see Server Binding + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class ServerBinding extends ExtendableObject { + + /** + * The version of this binding. + *

+ * If omitted, 'latest' MUST be assumed. + */ + @Nullable + @JsonProperty("bindingVersion") + private String bindingVersion; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/ServerBindingsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/ServerBindingsDeserializer.java new file mode 100644 index 00000000..ae7157bd --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/ServerBindingsDeserializer.java @@ -0,0 +1,69 @@ +package com.asyncapi.bindings; + +import com.asyncapi.bindings.amqp.AMQPServerBinding; +import com.asyncapi.bindings.amqp1.AMQP1ServerBinding; +import com.asyncapi.bindings.anypointmq.AnypointMQServerBinding; +import com.asyncapi.bindings.googlepubsub.GooglePubSubServerBinding; +import com.asyncapi.bindings.http.HTTPServerBinding; +import com.asyncapi.bindings.ibmmq.IBMMQServerBinding; +import com.asyncapi.bindings.jms.JMSServerBinding; +import com.asyncapi.bindings.kafka.KafkaServerBinding; +import com.asyncapi.bindings.mercure.MercureServerBinding; +import com.asyncapi.bindings.mqtt.MQTTServerBinding; +import com.asyncapi.bindings.mqtt5.MQTT5ServerBinding; +import com.asyncapi.bindings.nats.NATSServerBinding; +import com.asyncapi.bindings.pulsar.PulsarServerBinding; +import com.asyncapi.bindings.redis.RedisServerBinding; +import com.asyncapi.bindings.sns.SNSServerBinding; +import com.asyncapi.bindings.solace.SolaceServerBinding; +import com.asyncapi.bindings.sqs.SQSServerBinding; +import com.asyncapi.bindings.stomp.STOMPServerBinding; +import com.asyncapi.bindings.websockets.WebSocketsServerBinding; +import com.asyncapi.schemas.asyncapi.Reference; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +/** + * Serializes server bindings map. + * + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +public class ServerBindingsDeserializer extends BindingsMapDeserializer { + + @Override + public Object chooseKnownPojo(String bindingKey, JsonNode binding, ObjectCodec objectCodec) throws IOException { + try (JsonParser jsonParser = binding.traverse(objectCodec)) { + if (binding.get("$ref" ) != null) { + return jsonParser.readValueAs(Reference.class); + } + + switch (bindingKey) { + case "amqp": return jsonParser.readValueAs(AMQPServerBinding.class); + case "amqp1": return jsonParser.readValueAs(AMQP1ServerBinding.class); + case "anypointmq": return jsonParser.readValueAs(AnypointMQServerBinding.class); + case "googlepubsub": return jsonParser.readValueAs(GooglePubSubServerBinding.class); + case "http": return jsonParser.readValueAs(HTTPServerBinding.class); + case "ibmmq": return jsonParser.readValueAs(IBMMQServerBinding.class); + case "jms": return jsonParser.readValueAs(JMSServerBinding.class); + case "kafka": return jsonParser.readValueAs(KafkaServerBinding.class); + case "mercure": return jsonParser.readValueAs(MercureServerBinding.class); + case "mqtt": return jsonParser.readValueAs(MQTTServerBinding.class); + case "mqtt5": return jsonParser.readValueAs(MQTT5ServerBinding.class); + case "nats": return jsonParser.readValueAs(NATSServerBinding.class); + case "pulsar": return jsonParser.readValueAs(PulsarServerBinding.class); + case "redis": return jsonParser.readValueAs(RedisServerBinding.class); + case "sns": return jsonParser.readValueAs(SNSServerBinding.class); + case "solace": return jsonParser.readValueAs(SolaceServerBinding.class); + case "sqs": return jsonParser.readValueAs(SQSServerBinding.class); + case "stomp": return jsonParser.readValueAs(STOMPServerBinding.class); + case "ws": return jsonParser.readValueAs(WebSocketsServerBinding.class); + default: return null; + } + } + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/AMQPChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/AMQPChannelBinding.java new file mode 100644 index 00000000..2f151e52 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/AMQPChannelBinding.java @@ -0,0 +1,36 @@ +package com.asyncapi.bindings.amqp; + +import com.asyncapi.bindings.ChannelBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Describes AMQP 0-9-1 channel binding. + *

+ * Contains information about the channel representation in AMQP. + * + * @see AMQP channel binding + * @see AMQP + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.amqp.v0._1_0.channel.AMQPChannelBinding.class, name = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.amqp.v0._2_0.channel.AMQPChannelBinding.class, name = "0.2.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelBinding.class, names = { + "0.3.0", + "latest" + }), +}) +@Data +@EqualsAndHashCode(callSuper = true) +public abstract class AMQPChannelBinding extends ChannelBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/AMQPMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/AMQPMessageBinding.java new file mode 100644 index 00000000..66001f8d --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/AMQPMessageBinding.java @@ -0,0 +1,36 @@ +package com.asyncapi.bindings.amqp; + +import com.asyncapi.bindings.MessageBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Describes AMQP 0-9-1 message binding. + *

+ * Contains information about the message representation in AMQP. + * + * @see AMQP message binding + * @see AMQP + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.amqp.v0._3_0.message.AMQPMessageBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.amqp.v0._1_0.message.AMQPMessageBinding.class, name = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.amqp.v0._2_0.message.AMQPMessageBinding.class, name = "0.2.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.amqp.v0._3_0.message.AMQPMessageBinding.class, names = { + "0.3.0", + "latest" + }), +}) +@Data +@EqualsAndHashCode(callSuper = true) +public abstract class AMQPMessageBinding extends MessageBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/AMQPOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/AMQPOperationBinding.java new file mode 100644 index 00000000..5e306f90 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/AMQPOperationBinding.java @@ -0,0 +1,36 @@ +package com.asyncapi.bindings.amqp; + +import com.asyncapi.bindings.OperationBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Describes AMQP 0-9-1 operation binding. + *

+ * Contains information about the operation representation in AMQP. + * + * @see AMQP operation binding + * @see AMQP + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.amqp.v0._3_0.operation.AMQPOperationBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.amqp.v0._1_0.operation.AMQPOperationBinding.class, name = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.amqp.v0._2_0.operation.AMQPOperationBinding.class, name = "0.2.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.amqp.v0._3_0.operation.AMQPOperationBinding.class, names = { + "0.3.0", + "latest" + }), +}) +@Data +@EqualsAndHashCode(callSuper = true) +public abstract class AMQPOperationBinding extends OperationBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/AMQPServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/AMQPServerBinding.java new file mode 100644 index 00000000..f605b79b --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/AMQPServerBinding.java @@ -0,0 +1,36 @@ +package com.asyncapi.bindings.amqp; + +import com.asyncapi.bindings.ServerBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Describes AMQP 0-9-1 server binding. + *

+ * Contains information about the server representation in AMQP. + * + * @see AMQP server binding + * @see AMQP + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.amqp.v0._3_0.server.AMQPServerBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.amqp.v0._1_0.server.AMQPServerBinding.class, name = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.amqp.v0._2_0.server.AMQPServerBinding.class, name = "0.2.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.amqp.v0._3_0.server.AMQPServerBinding.class, names = { + "0.3.0", + "latest" + }), +}) +@Data +@EqualsAndHashCode(callSuper = true) +public abstract class AMQPServerBinding extends ServerBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/channel/AMQPChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/channel/AMQPChannelBinding.java new file mode 100644 index 00000000..826b5fd5 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/channel/AMQPChannelBinding.java @@ -0,0 +1,71 @@ +package com.asyncapi.bindings.amqp.v0._1_0.channel; + +import com.asyncapi.bindings.amqp.v0._1_0.channel.exchange.AMQPChannelExchangeProperties; +import com.asyncapi.bindings.amqp.v0._1_0.channel.queue.AMQPChannelQueueProperties; +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * Describes AMQP 0-9-1 channel binding. + *

+ * Contains information about the channel representation in AMQP. + * + * @see AMQP channel binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes AMQP 0-9-1 channel binding.") +public class AMQPChannelBinding extends com.asyncapi.bindings.amqp.AMQPChannelBinding { + + /** + * Defines what type of channel is it. Can be either queue or routingKey (default). + */ + @NotNull + @Builder.Default + @javax.validation.constraints.NotNull + @JsonProperty(value = "is", required = true, defaultValue = "routingKey") + @JsonPropertyDescription("Defines what type of channel is it. Can be either queue or routingKey (default).") + private AMQPChannelType is = AMQPChannelType.ROUTING_KEY; + + /** + * When is=routingKey, this object defines the exchange properties. + */ + @Nullable + @JsonProperty("exchange") + @JsonPropertyDescription("When is=routingKey, this object defines the exchange properties.") + private AMQPChannelExchangeProperties exchange; + + /** + * When is=queue, this object defines the queue properties. + */ + @Nullable + @JsonProperty("queue") + @JsonPropertyDescription("When is=queue, this object defines the queue properties.") + private AMQPChannelQueueProperties queue; + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/channel/AMQPChannelType.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/channel/AMQPChannelType.java new file mode 100644 index 00000000..e0214410 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/channel/AMQPChannelType.java @@ -0,0 +1,26 @@ +package com.asyncapi.bindings.amqp.v0._1_0.channel; + +import com.fasterxml.jackson.annotation.JsonAlias; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Describes AMQP 0-9-1 channel type. + *

+ * Contains information about the type of channel in AMQP. + * + * @see AMQP channel binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +public enum AMQPChannelType { + + @JsonProperty("queue") + QUEUE, + + @JsonProperty("routingKey") + @JsonAlias("routingKey") + ROUTING_KEY + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/channel/exchange/AMQPChannelExchangeProperties.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/channel/exchange/AMQPChannelExchangeProperties.java new file mode 100644 index 00000000..86aabe36 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/channel/exchange/AMQPChannelExchangeProperties.java @@ -0,0 +1,68 @@ +package com.asyncapi.bindings.amqp.v0._1_0.channel.exchange; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes AMQP 0-9-1 channel exchange properties. + *

+ * Contains information about the channel exchange properties in AMQP. + * + * @see AMQP channel binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode +@JsonClassDescription("Describes AMQP 0-9-1 channel exchange properties.") +public class AMQPChannelExchangeProperties { + + /** + * The name of the exchange. It MUST NOT exceed 255 characters long. + */ + @Nullable + @javax.validation.constraints.Size( + max = 255, + message = "Exchange name must not exceed 255 characters long." + ) + @JsonProperty("name") + @JsonPropertyDescription("The name of the exchange. It MUST NOT exceed 255 characters long.") + private String name; + + /** + * The type of the exchange. Can be either topic, direct, fanout, default or headers. + */ + @Nullable + @JsonProperty("type") + @JsonPropertyDescription("The type of the exchange. Can be either topic, direct, fanout, default or headers.") + private AMQPChannelExchangeType type; + + /** + * Whether the exchange should survive broker restarts or not. + */ + @Nullable + @JsonProperty("durable") + @JsonPropertyDescription("Whether the exchange should survive broker restarts or not.") + private Boolean durable; + + /** + * Whether the exchange should be deleted when the last queue is unbound from it. + */ + @Nullable + @JsonProperty("autoDelete") + @JsonPropertyDescription("Whether the exchange should be deleted when the last queue is unbound from it.") + private Boolean autoDelete; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/channel/exchange/AMQPChannelExchangeType.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/channel/exchange/AMQPChannelExchangeType.java new file mode 100644 index 00000000..e3966497 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/channel/exchange/AMQPChannelExchangeType.java @@ -0,0 +1,35 @@ +package com.asyncapi.bindings.amqp.v0._1_0.channel.exchange; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Describes AMQP 0-9-1 channel exchange type. + *

+ * Contains information about the channel exchange type in AMQP. + * + * @see AMQP channel binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@JsonClassDescription("Describes AMQP 0-9-1 channel exchange type.") +public enum AMQPChannelExchangeType { + + @JsonProperty("topic") + TOPIC, + + @JsonProperty("direct") + DIRECT, + + @JsonProperty("fanout") + FANOUT, + + @JsonProperty("default") + DEFAULT, + + @JsonProperty("headers") + HEADERS + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/channel/queue/AMQPChannelQueueProperties.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/channel/queue/AMQPChannelQueueProperties.java new file mode 100644 index 00000000..28b56b26 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/channel/queue/AMQPChannelQueueProperties.java @@ -0,0 +1,68 @@ +package com.asyncapi.bindings.amqp.v0._1_0.channel.queue; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes AMQP 0-9-1 channel queue properties. + *

+ * Contains information about the queue exchange properties in AMQP. + * + * @see AMQP channel binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode +@JsonClassDescription("Describes AMQP 0-9-1 channel queue properties.") +public class AMQPChannelQueueProperties { + + /** + * The name of the queue. It MUST NOT exceed 255 characters long. + */ + @Nullable + @javax.validation.constraints.Size( + max = 255, + message = "Queue name must not exceed 255 characters long." + ) + @JsonProperty("name") + @JsonPropertyDescription("The name of the queue. It MUST NOT exceed 255 characters long.") + private String name; + + /** + * Whether the queue should survive broker restarts or not. + */ + @Nullable + @JsonProperty("durable") + @JsonPropertyDescription("Whether the queue should survive broker restarts or not.") + private Boolean durable; + + /** + * Whether the queue should be used only by one connection or not. + */ + @Nullable + @JsonProperty("exclusive") + @JsonPropertyDescription("Whether the queue should be used only by one connection or not.") + private Boolean exclusive; + + /** + * Whether the queue should be deleted when the last consumer unsubscribes. + */ + @Nullable + @JsonProperty("autoDelete") + @JsonPropertyDescription("Whether the queue should be deleted when the last consumer unsubscribes.") + private Boolean autoDelete; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/message/AMQPMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/message/AMQPMessageBinding.java new file mode 100644 index 00000000..249dd59f --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/message/AMQPMessageBinding.java @@ -0,0 +1,58 @@ +package com.asyncapi.bindings.amqp.v0._1_0.message; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes AMQP 0-9-1 message binding. + *

+ * Contains information about the message representation in AMQP. + * + * @see AMQP message binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes AMQP 0-9-1 message binding.") +public class AMQPMessageBinding extends com.asyncapi.bindings.amqp.AMQPMessageBinding { + + /** + * A MIME encoding for the message content. + */ + @Nullable + @JsonProperty("contentEncoding") + @JsonPropertyDescription("A MIME encoding for the message content.") + private String contentEncoding; + + /** + * Application-specific message type. + */ + @Nullable + @JsonProperty("messageType") + @JsonPropertyDescription("Application-specific message type.") + private String messageType; + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/operation/AMQPOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/operation/AMQPOperationBinding.java new file mode 100644 index 00000000..e4a15fe3 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/operation/AMQPOperationBinding.java @@ -0,0 +1,156 @@ +package com.asyncapi.bindings.amqp.v0._1_0.operation; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +/** + * Describes AMQP 0-9-1 operation binding. + *

+ * Contains information about the operation representation in AMQP. + * + * @see AMQP operation binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes AMQP 0-9-1 operation binding.") +public class AMQPOperationBinding extends com.asyncapi.bindings.amqp.AMQPOperationBinding { + + /** + * TTL (Time-To-Live) for the message. It MUST be greater than or equal to zero. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @javax.validation.constraints.Min( + value = 0, + message = "TTL (Time-To-Live) for the message must be greater than or equal to zero" + ) + @JsonProperty("expiration") + @JsonPropertyDescription("TTL (Time-To-Live) for the message. It MUST be greater than or equal to zero.") + private Integer expiration; + + /** + * Identifies the user who has sent the message. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @JsonProperty("userId") + @JsonPropertyDescription("Identifies the user who has sent the message.") + private String userId; + + /** + * The routing keys the message should be routed to at the time of publishing. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @JsonProperty("cc") + @JsonPropertyDescription("The routing keys the message should be routed to at the time of publishing.") + private List cc; + + /** + * A priority for the message. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @JsonProperty("priority") + @JsonPropertyDescription("A priority for the message.") + private Integer priority; + + /** + * Delivery mode of the message. Its value MUST be either 1 (transient) or 2 (persistent). + *

+ * Applies to: publish, subscribe + */ + @Nullable + @javax.validation.constraints.Min( + value = 1, + message = "Delivery mode of the message must be either 1 (transient) or 2 (persistent)" + ) + @javax.validation.constraints.Max( + value = 2, + message = "Delivery mode of the message must be either 1 (transient) or 2 (persistent)" + ) + @JsonProperty("deliveryMode") + @JsonPropertyDescription("Delivery mode of the message. Its value MUST be either 1 (transient) or 2 (persistent).") + private Integer deliveryMode; + + /** + * Whether the message is mandatory or not. + *

+ * Applies to: publish + */ + @Nullable + @JsonProperty("mandatory") + @JsonPropertyDescription("Whether the message is mandatory or not.") + private Boolean mandatory; + + /** + * Like {@link #cc} but consumers will not receive this information. + *

+ * Applies to: publish + */ + @Nullable + @JsonProperty("bcc") + @JsonPropertyDescription("Like cc but consumers will not receive this information.") + private List bcc; + + /** + * Name of the queue where the consumer should send the response. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @JsonProperty("replyTo") + @JsonPropertyDescription("Name of the queue where the consumer should send the response.") + private String replyTo; + + /** + * Whether the message should include a timestamp or not. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @JsonProperty("timestamp") + @JsonPropertyDescription("Whether the message should include a timestamp or not.") + private Boolean timestamp; + + /** + * Whether the consumer should ack the message or not. + *

+ * Applies to: subscribe + */ + @Nullable + @JsonProperty("ack") + @JsonPropertyDescription("Whether the consumer should ack the message or not.") + private Boolean ack; + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/server/AMQPServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/server/AMQPServerBinding.java new file mode 100644 index 00000000..1347bdc4 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_1_0/server/AMQPServerBinding.java @@ -0,0 +1,32 @@ +package com.asyncapi.bindings.amqp.v0._1_0.server; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + * + * @see AMQP server binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class AMQPServerBinding extends com.asyncapi.bindings.amqp.AMQPServerBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/channel/AMQPChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/channel/AMQPChannelBinding.java new file mode 100644 index 00000000..6ff30319 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/channel/AMQPChannelBinding.java @@ -0,0 +1,71 @@ +package com.asyncapi.bindings.amqp.v0._2_0.channel; + +import com.asyncapi.bindings.amqp.v0._2_0.channel.exchange.AMQPChannelExchangeProperties; +import com.asyncapi.bindings.amqp.v0._2_0.channel.queue.AMQPChannelQueueProperties; +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * Describes AMQP 0-9-1 channel binding. + *

+ * Contains information about the channel representation in AMQP. + * + * @see AMQP channel binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes AMQP 0-9-1 channel binding.") +public class AMQPChannelBinding extends com.asyncapi.bindings.amqp.AMQPChannelBinding { + + /** + * Defines what type of channel is it. Can be either queue or routingKey (default). + */ + @NotNull + @Builder.Default + @javax.validation.constraints.NotNull + @JsonProperty(value = "is", required = true, defaultValue = "routingKey") + @JsonPropertyDescription("Defines what type of channel is it. Can be either queue or routingKey (default).") + private AMQPChannelType is = AMQPChannelType.ROUTING_KEY; + + /** + * When is=routingKey, this object defines the exchange properties. + */ + @Nullable + @JsonProperty("exchange") + @JsonPropertyDescription("When is=routingKey, this object defines the exchange properties.") + private AMQPChannelExchangeProperties exchange; + + /** + * When is=queue, this object defines the queue properties. + */ + @Nullable + @JsonProperty("queue") + @JsonPropertyDescription("When is=queue, this object defines the queue properties.") + private AMQPChannelQueueProperties queue; + + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/channel/AMQPChannelType.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/channel/AMQPChannelType.java new file mode 100644 index 00000000..6df297bb --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/channel/AMQPChannelType.java @@ -0,0 +1,26 @@ +package com.asyncapi.bindings.amqp.v0._2_0.channel; + +import com.fasterxml.jackson.annotation.JsonAlias; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Describes AMQP 0-9-1 channel type. + *

+ * Contains information about the type of channel in AMQP. + * + * @see AMQP channel binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +public enum AMQPChannelType { + + @JsonProperty("queue") + QUEUE, + + @JsonProperty("routingKey") + @JsonAlias("routingKey") + ROUTING_KEY + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/channel/exchange/AMQPChannelExchangeProperties.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/channel/exchange/AMQPChannelExchangeProperties.java new file mode 100644 index 00000000..18471275 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/channel/exchange/AMQPChannelExchangeProperties.java @@ -0,0 +1,77 @@ +package com.asyncapi.bindings.amqp.v0._2_0.channel.exchange; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes AMQP 0-9-1 channel exchange properties. + *

+ * Contains information about the channel exchange properties in AMQP. + * + * @see AMQP channel binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode +@JsonClassDescription("Describes AMQP 0-9-1 channel exchange properties.") +public class AMQPChannelExchangeProperties { + + /** + * The name of the exchange. It MUST NOT exceed 255 characters long. + */ + @Nullable + @javax.validation.constraints.Size( + max = 255, + message = "Exchange name must not exceed 255 characters long." + ) + @JsonProperty("name") + @JsonPropertyDescription("The name of the exchange. It MUST NOT exceed 255 characters long.") + private String name; + + /** + * The type of the exchange. Can be either topic, direct, fanout, default or headers. + */ + @Nullable + @JsonProperty("type") + @JsonPropertyDescription("The type of the exchange. Can be either topic, direct, fanout, default or headers.") + private AMQPChannelExchangeType type; + + /** + * Whether the exchange should survive broker restarts or not. + */ + @Nullable + @JsonProperty("durable") + @JsonPropertyDescription("Whether the exchange should survive broker restarts or not.") + private Boolean durable; + + /** + * Whether the exchange should be deleted when the last queue is unbound from it. + */ + @Nullable + @JsonProperty("autoDelete") + @JsonPropertyDescription("Whether the exchange should be deleted when the last queue is unbound from it.") + private Boolean autoDelete; + + /** + * The virtual host of the exchange. Defaults to /. + */ + @Nullable + @Builder.Default + @JsonProperty(value = "vhost", defaultValue = "/") + @JsonPropertyDescription("The virtual host of the exchange. Defaults to /.") + private String vhost = "/"; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/channel/exchange/AMQPChannelExchangeType.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/channel/exchange/AMQPChannelExchangeType.java new file mode 100644 index 00000000..c6c1c4de --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/channel/exchange/AMQPChannelExchangeType.java @@ -0,0 +1,35 @@ +package com.asyncapi.bindings.amqp.v0._2_0.channel.exchange; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Describes AMQP 0-9-1 channel exchange type. + *

+ * Contains information about the channel exchange type in AMQP. + * + * @see AMQP channel binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@JsonClassDescription("Describes AMQP 0-9-1 channel exchange type.") +public enum AMQPChannelExchangeType { + + @JsonProperty("topic") + TOPIC, + + @JsonProperty("direct") + DIRECT, + + @JsonProperty("fanout") + FANOUT, + + @JsonProperty("default") + DEFAULT, + + @JsonProperty("headers") + HEADERS + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/channel/queue/AMQPChannelQueueProperties.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/channel/queue/AMQPChannelQueueProperties.java new file mode 100644 index 00000000..8a55855c --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/channel/queue/AMQPChannelQueueProperties.java @@ -0,0 +1,77 @@ +package com.asyncapi.bindings.amqp.v0._2_0.channel.queue; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes AMQP 0-9-1 channel queue properties. + *

+ * Contains information about the queue exchange properties in AMQP. + * + * @see AMQP channel binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode +@JsonClassDescription("Describes AMQP 0-9-1 channel queue properties.") +public class AMQPChannelQueueProperties { + + /** + * The name of the queue. It MUST NOT exceed 255 characters long. + */ + @Nullable + @javax.validation.constraints.Size( + max = 255, + message = "Queue name must not exceed 255 characters long." + ) + @JsonProperty("name") + @JsonPropertyDescription("The name of the queue. It MUST NOT exceed 255 characters long.") + private String name; + + /** + * Whether the queue should survive broker restarts or not. + */ + @Nullable + @JsonProperty("durable") + @JsonPropertyDescription("Whether the queue should survive broker restarts or not.") + private Boolean durable; + + /** + * Whether the queue should be used only by one connection or not. + */ + @Nullable + @JsonProperty("exclusive") + @JsonPropertyDescription("Whether the queue should be used only by one connection or not.") + private Boolean exclusive; + + /** + * Whether the queue should be deleted when the last consumer unsubscribes. + */ + @Nullable + @JsonProperty("autoDelete") + @JsonPropertyDescription("Whether the queue should be deleted when the last consumer unsubscribes.") + private Boolean autoDelete; + + /** + * The virtual host of the queue. Defaults to /. + */ + @Nullable + @Builder.Default + @JsonProperty(value = "vhost", defaultValue = "/") + @JsonPropertyDescription("The virtual host of the queue. Defaults to /.") + private String vhost = "/"; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/message/AMQPMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/message/AMQPMessageBinding.java new file mode 100644 index 00000000..5a1b0b8b --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/message/AMQPMessageBinding.java @@ -0,0 +1,58 @@ +package com.asyncapi.bindings.amqp.v0._2_0.message; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes AMQP 0-9-1 message binding. + *

+ * Contains information about the message representation in AMQP. + * + * @see AMQP message binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes AMQP 0-9-1 message binding.") +public class AMQPMessageBinding extends com.asyncapi.bindings.amqp.AMQPMessageBinding { + + /** + * A MIME encoding for the message content. + */ + @Nullable + @JsonProperty("contentEncoding") + @JsonPropertyDescription("A MIME encoding for the message content.") + private String contentEncoding; + + /** + * Application-specific message type. + */ + @Nullable + @JsonProperty("messageType") + @JsonPropertyDescription("Application-specific message type.") + private String messageType; + + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/operation/AMQPOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/operation/AMQPOperationBinding.java new file mode 100644 index 00000000..6c5f26ed --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/operation/AMQPOperationBinding.java @@ -0,0 +1,156 @@ +package com.asyncapi.bindings.amqp.v0._2_0.operation; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +/** + * Describes AMQP 0-9-1 operation binding. + *

+ * Contains information about the operation representation in AMQP. + * + * @see AMQP operation binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes AMQP 0-9-1 operation binding.") +public class AMQPOperationBinding extends com.asyncapi.bindings.amqp.AMQPOperationBinding { + + /** + * TTL (Time-To-Live) for the message. It MUST be greater than or equal to zero. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @javax.validation.constraints.Min( + value = 0, + message = "TTL (Time-To-Live) for the message must be greater than or equal to zero" + ) + @JsonProperty("expiration") + @JsonPropertyDescription("TTL (Time-To-Live) for the message. It MUST be greater than or equal to zero.") + private Integer expiration; + + /** + * Identifies the user who has sent the message. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @JsonProperty("userId") + @JsonPropertyDescription("Identifies the user who has sent the message.") + private String userId; + + /** + * The routing keys the message should be routed to at the time of publishing. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @JsonProperty("cc") + @JsonPropertyDescription("The routing keys the message should be routed to at the time of publishing.") + private List cc; + + /** + * A priority for the message. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @JsonProperty("priority") + @JsonPropertyDescription("A priority for the message.") + private Integer priority; + + /** + * Delivery mode of the message. Its value MUST be either 1 (transient) or 2 (persistent). + *

+ * Applies to: publish, subscribe + */ + @Nullable + @javax.validation.constraints.Min( + value = 1, + message = "Delivery mode of the message must be either 1 (transient) or 2 (persistent)" + ) + @javax.validation.constraints.Max( + value = 2, + message = "Delivery mode of the message must be either 1 (transient) or 2 (persistent)" + ) + @JsonProperty("deliveryMode") + @JsonPropertyDescription("Delivery mode of the message. Its value MUST be either 1 (transient) or 2 (persistent).") + private Integer deliveryMode; + + /** + * Whether the message is mandatory or not. + *

+ * Applies to: publish + */ + @Nullable + @JsonProperty("mandatory") + @JsonPropertyDescription("Whether the message is mandatory or not.") + private Boolean mandatory; + + /** + * Like {@link #cc} but consumers will not receive this information. + *

+ * Applies to: publish + */ + @Nullable + @JsonProperty("bcc") + @JsonPropertyDescription("Like cc but consumers will not receive this information.") + private List bcc; + + /** + * Name of the queue where the consumer should send the response. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @JsonProperty("replyTo") + @JsonPropertyDescription("Name of the queue where the consumer should send the response.") + private String replyTo; + + /** + * Whether the message should include a timestamp or not. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @JsonProperty("timestamp") + @JsonPropertyDescription("Whether the message should include a timestamp or not.") + private Boolean timestamp; + + /** + * Whether the consumer should ack the message or not. + *

+ * Applies to: subscribe + */ + @Nullable + @JsonProperty("ack") + @JsonPropertyDescription("Whether the consumer should ack the message or not.") + private Boolean ack; + + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/server/AMQPServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/server/AMQPServerBinding.java new file mode 100644 index 00000000..305e7df9 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_2_0/server/AMQPServerBinding.java @@ -0,0 +1,32 @@ +package com.asyncapi.bindings.amqp.v0._2_0.server; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + * + * @see AMQP server binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class AMQPServerBinding extends com.asyncapi.bindings.amqp.AMQPServerBinding { + + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/channel/AMQPChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/channel/AMQPChannelBinding.java new file mode 100644 index 00000000..2edb0f0b --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/channel/AMQPChannelBinding.java @@ -0,0 +1,71 @@ +package com.asyncapi.bindings.amqp.v0._3_0.channel; + +import com.asyncapi.bindings.amqp.v0._3_0.channel.exchange.AMQPChannelExchangeProperties; +import com.asyncapi.bindings.amqp.v0._3_0.channel.queue.AMQPChannelQueueProperties; +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * Describes AMQP 0-9-1 channel binding. + *

+ * Contains information about the channel representation in AMQP. + * + * @see AMQP channel binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.3.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes AMQP 0-9-1 channel binding.") +public class AMQPChannelBinding extends com.asyncapi.bindings.amqp.AMQPChannelBinding { + + /** + * Defines what type of channel is it. Can be either queue or routingKey (default). + */ + @NotNull + @Builder.Default + @javax.validation.constraints.NotNull + @JsonProperty(value = "is", required = true, defaultValue = "routingKey") + @JsonPropertyDescription("Defines what type of channel is it. Can be either queue or routingKey (default).") + private AMQPChannelType is = AMQPChannelType.ROUTING_KEY; + + /** + * When is=routingKey, this object defines the exchange properties. + */ + @Nullable + @JsonProperty("exchange") + @JsonPropertyDescription("When is=routingKey, this object defines the exchange properties.") + private AMQPChannelExchangeProperties exchange; + + /** + * When is=queue, this object defines the queue properties. + */ + @Nullable + @JsonProperty("queue") + @JsonPropertyDescription("When is=queue, this object defines the queue properties.") + private AMQPChannelQueueProperties queue; + + @Override + public String getBindingVersion() { + return "0.3.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.3.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/channel/AMQPChannelType.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/channel/AMQPChannelType.java new file mode 100644 index 00000000..9e5aeed9 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/channel/AMQPChannelType.java @@ -0,0 +1,26 @@ +package com.asyncapi.bindings.amqp.v0._3_0.channel; + +import com.fasterxml.jackson.annotation.JsonAlias; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Describes AMQP 0-9-1 channel type. + *

+ * Contains information about the type of channel in AMQP. + * + * @see AMQP channel binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.3.0 + * @since 1.0.0-RC2 + */ +public enum AMQPChannelType { + + @JsonProperty("queue") + QUEUE, + + @JsonProperty("routingKey") + @JsonAlias("routingKey") + ROUTING_KEY + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/channel/exchange/AMQPChannelExchangeProperties.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/channel/exchange/AMQPChannelExchangeProperties.java new file mode 100644 index 00000000..5eb623df --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/channel/exchange/AMQPChannelExchangeProperties.java @@ -0,0 +1,77 @@ +package com.asyncapi.bindings.amqp.v0._3_0.channel.exchange; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes AMQP 0-9-1 channel exchange properties. + *

+ * Contains information about the channel exchange properties in AMQP. + * + * @see AMQP channel binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.3.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode +@JsonClassDescription("Describes AMQP 0-9-1 channel exchange properties.") +public class AMQPChannelExchangeProperties { + + /** + * The name of the exchange. It MUST NOT exceed 255 characters long. + */ + @Nullable + @javax.validation.constraints.Size( + max = 255, + message = "Exchange name must not exceed 255 characters long." + ) + @JsonProperty("name") + @JsonPropertyDescription("The name of the exchange. It MUST NOT exceed 255 characters long.") + private String name; + + /** + * The type of the exchange. Can be either topic, direct, fanout, default or headers. + */ + @Nullable + @JsonProperty("type") + @JsonPropertyDescription("The type of the exchange. Can be either topic, direct, fanout, default or headers.") + private AMQPChannelExchangeType type; + + /** + * Whether the exchange should survive broker restarts or not. + */ + @Nullable + @JsonProperty("durable") + @JsonPropertyDescription("Whether the exchange should survive broker restarts or not.") + private Boolean durable; + + /** + * Whether the exchange should be deleted when the last queue is unbound from it. + */ + @Nullable + @JsonProperty("autoDelete") + @JsonPropertyDescription("Whether the exchange should be deleted when the last queue is unbound from it.") + private Boolean autoDelete; + + /** + * The virtual host of the exchange. Defaults to /. + */ + @Nullable + @Builder.Default + @JsonProperty(value = "vhost", defaultValue = "/") + @JsonPropertyDescription("The virtual host of the exchange. Defaults to /.") + private String vhost = "/"; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/channel/exchange/AMQPChannelExchangeType.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/channel/exchange/AMQPChannelExchangeType.java new file mode 100644 index 00000000..a314b112 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/channel/exchange/AMQPChannelExchangeType.java @@ -0,0 +1,35 @@ +package com.asyncapi.bindings.amqp.v0._3_0.channel.exchange; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Describes AMQP 0-9-1 channel exchange type. + *

+ * Contains information about the channel exchange type in AMQP. + * + * @see AMQP channel binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.3.0 + * @since 1.0.0-RC2 + */ +@JsonClassDescription("Describes AMQP 0-9-1 channel exchange type.") +public enum AMQPChannelExchangeType { + + @JsonProperty("topic") + TOPIC, + + @JsonProperty("direct") + DIRECT, + + @JsonProperty("fanout") + FANOUT, + + @JsonProperty("default") + DEFAULT, + + @JsonProperty("headers") + HEADERS + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/channel/queue/AMQPChannelQueueProperties.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/channel/queue/AMQPChannelQueueProperties.java new file mode 100644 index 00000000..a84f0183 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/channel/queue/AMQPChannelQueueProperties.java @@ -0,0 +1,77 @@ +package com.asyncapi.bindings.amqp.v0._3_0.channel.queue; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes AMQP 0-9-1 channel queue properties. + *

+ * Contains information about the queue exchange properties in AMQP. + * + * @see AMQP channel binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.3.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode +@JsonClassDescription("Describes AMQP 0-9-1 channel queue properties.") +public class AMQPChannelQueueProperties { + + /** + * The name of the queue. It MUST NOT exceed 255 characters long. + */ + @Nullable + @javax.validation.constraints.Size( + max = 255, + message = "Queue name must not exceed 255 characters long." + ) + @JsonProperty("name") + @JsonPropertyDescription("The name of the queue. It MUST NOT exceed 255 characters long.") + private String name; + + /** + * Whether the queue should survive broker restarts or not. + */ + @Nullable + @JsonProperty("durable") + @JsonPropertyDescription("Whether the queue should survive broker restarts or not.") + private Boolean durable; + + /** + * Whether the queue should be used only by one connection or not. + */ + @Nullable + @JsonProperty("exclusive") + @JsonPropertyDescription("Whether the queue should be used only by one connection or not.") + private Boolean exclusive; + + /** + * Whether the queue should be deleted when the last consumer unsubscribes. + */ + @Nullable + @JsonProperty("autoDelete") + @JsonPropertyDescription("Whether the queue should be deleted when the last consumer unsubscribes.") + private Boolean autoDelete; + + /** + * The virtual host of the queue. Defaults to /. + */ + @Nullable + @Builder.Default + @JsonProperty(value = "vhost", defaultValue = "/") + @JsonPropertyDescription("The virtual host of the queue. Defaults to /.") + private String vhost = "/"; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/message/AMQPMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/message/AMQPMessageBinding.java new file mode 100644 index 00000000..7cad35c5 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/message/AMQPMessageBinding.java @@ -0,0 +1,58 @@ +package com.asyncapi.bindings.amqp.v0._3_0.message; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes AMQP 0-9-1 message binding. + *

+ * Contains information about the message representation in AMQP. + * + * @see AMQP message binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.3.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes AMQP 0-9-1 message binding.") +public class AMQPMessageBinding extends com.asyncapi.bindings.amqp.AMQPMessageBinding { + + /** + * A MIME encoding for the message content. + */ + @Nullable + @JsonProperty("contentEncoding") + @JsonPropertyDescription("A MIME encoding for the message content.") + private String contentEncoding; + + /** + * Application-specific message type. + */ + @Nullable + @JsonProperty("messageType") + @JsonPropertyDescription("Application-specific message type.") + private String messageType; + + @Override + public String getBindingVersion() { + return "0.3.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.3.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/operation/AMQPOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/operation/AMQPOperationBinding.java new file mode 100644 index 00000000..d5d3a181 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/operation/AMQPOperationBinding.java @@ -0,0 +1,146 @@ +package com.asyncapi.bindings.amqp.v0._3_0.operation; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +/** + * Describes AMQP 0-9-1 operation binding. + *

+ * Contains information about the operation representation in AMQP. + * + * @see AMQP operation binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.3.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes AMQP 0-9-1 operation binding.") +public class AMQPOperationBinding extends com.asyncapi.bindings.amqp.AMQPOperationBinding { + + /** + * TTL (Time-To-Live) for the message. It MUST be greater than or equal to zero. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @javax.validation.constraints.Min( + value = 0, + message = "TTL (Time-To-Live) for the message must be greater than or equal to zero" + ) + @JsonProperty("expiration") + @JsonPropertyDescription("TTL (Time-To-Live) for the message. It MUST be greater than or equal to zero.") + private Integer expiration; + + /** + * Identifies the user who has sent the message. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @JsonProperty("userId") + @JsonPropertyDescription("Identifies the user who has sent the message.") + private String userId; + + /** + * The routing keys the message should be routed to at the time of publishing. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @JsonProperty("cc") + @JsonPropertyDescription("The routing keys the message should be routed to at the time of publishing.") + private List cc; + + /** + * A priority for the message. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @JsonProperty("priority") + @JsonPropertyDescription("A priority for the message.") + private Integer priority; + + /** + * Delivery mode of the message. Its value MUST be either 1 (transient) or 2 (persistent). + *

+ * Applies to: publish, subscribe + */ + @Nullable + @javax.validation.constraints.Min( + value = 1, + message = "Delivery mode of the message must be either 1 (transient) or 2 (persistent)" + ) + @javax.validation.constraints.Max( + value = 2, + message = "Delivery mode of the message must be either 1 (transient) or 2 (persistent)" + ) + @JsonProperty("deliveryMode") + @JsonPropertyDescription("Delivery mode of the message. Its value MUST be either 1 (transient) or 2 (persistent).") + private Integer deliveryMode; + + /** + * Whether the message is mandatory or not. + *

+ * Applies to: publish + */ + @Nullable + @JsonProperty("mandatory") + @JsonPropertyDescription("Whether the message is mandatory or not.") + private Boolean mandatory; + + /** + * Like {@link #cc} but consumers will not receive this information. + *

+ * Applies to: publish + */ + @Nullable + @JsonProperty("bcc") + @JsonPropertyDescription("Like cc but consumers will not receive this information.") + private List bcc; + + /** + * Whether the message should include a timestamp or not. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @JsonProperty("timestamp") + @JsonPropertyDescription("Whether the message should include a timestamp or not.") + private Boolean timestamp; + + /** + * Whether the consumer should ack the message or not. + *

+ * Applies to: subscribe + */ + @Nullable + @JsonProperty("ack") + @JsonPropertyDescription("Whether the consumer should ack the message or not.") + private Boolean ack; + + @Override + public String getBindingVersion() { + return "0.3.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.3.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/server/AMQPServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/server/AMQPServerBinding.java new file mode 100644 index 00000000..3afea40f --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp/v0/_3_0/server/AMQPServerBinding.java @@ -0,0 +1,32 @@ +package com.asyncapi.bindings.amqp.v0._3_0.server; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + * + * @see AMQP server binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.3.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class AMQPServerBinding extends com.asyncapi.bindings.amqp.AMQPServerBinding { + + @Override + public String getBindingVersion() { + return "0.3.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.3.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp1/AMQP1ChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp1/AMQP1ChannelBinding.java new file mode 100644 index 00000000..46f32db3 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp1/AMQP1ChannelBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.amqp1; + +import com.asyncapi.bindings.ChannelBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes AMQP 1.0 channel binding. + * + * @see AMQP 1.0 channel binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.amqp1.v0._1_0.channel.AMQP1ChannelBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.amqp1.v0._1_0.channel.AMQP1ChannelBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class AMQP1ChannelBinding extends ChannelBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp1/AMQP1MessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp1/AMQP1MessageBinding.java new file mode 100644 index 00000000..cdd91e95 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp1/AMQP1MessageBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.amqp1; + +import com.asyncapi.bindings.MessageBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes AMQP 1.0 message binding. + * + * @see AMQP message binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.amqp1.v0._1_0.message.AMQP1MessageBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.amqp1.v0._1_0.message.AMQP1MessageBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class AMQP1MessageBinding extends MessageBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp1/AMQP1OperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp1/AMQP1OperationBinding.java new file mode 100644 index 00000000..82d62a19 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp1/AMQP1OperationBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.amqp1; + +import com.asyncapi.bindings.OperationBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes AMQP 1.0 operation binding. + * + * @see AMQP operation binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.amqp1.v0._1_0.operation.AMQP1OperationBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.amqp1.v0._1_0.operation.AMQP1OperationBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class AMQP1OperationBinding extends OperationBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp1/AMQP1ServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp1/AMQP1ServerBinding.java new file mode 100644 index 00000000..aa008765 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp1/AMQP1ServerBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.amqp1; + +import com.asyncapi.bindings.ServerBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes AMQP 1.0 server binding. + * + * @see AMQP server binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.amqp1.v0._1_0.server.AMQP1ServerBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.amqp1.v0._1_0.server.AMQP1ServerBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class AMQP1ServerBinding extends ServerBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp1/v0/_1_0/channel/AMQP1ChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp1/v0/_1_0/channel/AMQP1ChannelBinding.java new file mode 100644 index 00000000..91cbe858 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp1/v0/_1_0/channel/AMQP1ChannelBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.amqp1.v0._1_0.channel; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes AMQP 1.0 channel binding. + * + * @see AMQP 1.0 channel binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class AMQP1ChannelBinding extends com.asyncapi.bindings.amqp1.AMQP1ChannelBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp1/v0/_1_0/message/AMQP1MessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp1/v0/_1_0/message/AMQP1MessageBinding.java new file mode 100644 index 00000000..204a9083 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp1/v0/_1_0/message/AMQP1MessageBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.amqp1.v0._1_0.message; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes AMQP 1.0 message binding. + * + * @see AMQP message binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class AMQP1MessageBinding extends com.asyncapi.bindings.amqp1.AMQP1MessageBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp1/v0/_1_0/operation/AMQP1OperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp1/v0/_1_0/operation/AMQP1OperationBinding.java new file mode 100644 index 00000000..93e622e2 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp1/v0/_1_0/operation/AMQP1OperationBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.amqp1.v0._1_0.operation; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes AMQP 1.0 operation binding. + * + * @see AMQP operation binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class AMQP1OperationBinding extends com.asyncapi.bindings.amqp1.AMQP1OperationBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp1/v0/_1_0/server/AMQP1ServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp1/v0/_1_0/server/AMQP1ServerBinding.java new file mode 100644 index 00000000..ff31fdc1 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/amqp1/v0/_1_0/server/AMQP1ServerBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.amqp1.v0._1_0.server; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes AMQP 1.0 server binding. + * + * @see AMQP server binding + * @see AMQP + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class AMQP1ServerBinding extends com.asyncapi.bindings.amqp1.AMQP1ServerBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/anypointmq/AnypointMQChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/anypointmq/AnypointMQChannelBinding.java new file mode 100644 index 00000000..b8dc4baf --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/anypointmq/AnypointMQChannelBinding.java @@ -0,0 +1,30 @@ +package com.asyncapi.bindings.anypointmq; + +import com.asyncapi.bindings.ChannelBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes Anypoint MQ channel binding. + * + * @see Anypoint MQ channel binding + * @see Anypoint MQ + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.anypointmq.v0._0_1.channel.AnypointMQChannelBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.anypointmq.v0._0_1.channel.AnypointMQChannelBinding.class, names = { + "0.0.1", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class AnypointMQChannelBinding extends ChannelBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/anypointmq/AnypointMQMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/anypointmq/AnypointMQMessageBinding.java new file mode 100644 index 00000000..8ccfb13e --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/anypointmq/AnypointMQMessageBinding.java @@ -0,0 +1,30 @@ +package com.asyncapi.bindings.anypointmq; + +import com.asyncapi.bindings.MessageBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes Anypoint MQ message binding. + * + * @see Anypoint MQ message binding + * @see Anypoint MQ + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.anypointmq.v0._0_1.message.AnypointMQMessageBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.anypointmq.v0._0_1.message.AnypointMQMessageBinding.class, names = { + "0.0.1", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class AnypointMQMessageBinding extends MessageBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/anypointmq/AnypointMQOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/anypointmq/AnypointMQOperationBinding.java new file mode 100644 index 00000000..f3f3da75 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/anypointmq/AnypointMQOperationBinding.java @@ -0,0 +1,30 @@ +package com.asyncapi.bindings.anypointmq; + +import com.asyncapi.bindings.OperationBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes Anypoint MQ operation binding. + * + * @see Anypoint MQ operation binding + * @see Anypoint MQ + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.anypointmq.v0._0_1.operation.AnypointMQOperationBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.anypointmq.v0._0_1.operation.AnypointMQOperationBinding.class, names = { + "0.0.1", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class AnypointMQOperationBinding extends OperationBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/anypointmq/AnypointMQServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/anypointmq/AnypointMQServerBinding.java new file mode 100644 index 00000000..34568af7 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/anypointmq/AnypointMQServerBinding.java @@ -0,0 +1,30 @@ +package com.asyncapi.bindings.anypointmq; + +import com.asyncapi.bindings.ServerBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes Anypoint MQ server binding. + * + * @see Anypoint MQ server binding + * @see Anypoint MQ + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.anypointmq.v0._0_1.server.AnypointMQServerBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.anypointmq.v0._0_1.server.AnypointMQServerBinding.class, names = { + "0.0.1", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class AnypointMQServerBinding extends ServerBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/anypointmq/v0/_0_1/channel/AnypointMQChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/anypointmq/v0/_0_1/channel/AnypointMQChannelBinding.java new file mode 100644 index 00000000..1d8d38e1 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/anypointmq/v0/_0_1/channel/AnypointMQChannelBinding.java @@ -0,0 +1,64 @@ +package com.asyncapi.bindings.anypointmq.v0._0_1.channel; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Anypoint MQ channel binding. + * + * @see Anypoint MQ channel binding + * @see Anypoint MQ + * @author Pavel Bodiachevskii + * @version 0.0.1 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes Anypoint MQ channel binding.") +public class AnypointMQChannelBinding extends com.asyncapi.bindings.anypointmq.AnypointMQChannelBinding { + + /** + * OPTIONAL, defaults to the channel name. + *

+ * 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. + */ + @Nullable + @JsonProperty("destination") + @JsonPropertyDescription("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.") + private String destination; + + /** + * OPTIONAL, defaults to queue. + *

+ * The type of destination, which MUST be either exchange or queue or fifo-queue. + * SHOULD be specified to document the messaging model (publish/subscribe, point-to-point, strict message ordering) + * supported by this channel. + */ + @Nullable + @Builder.Default + @JsonProperty(value = "destinationType", defaultValue = "queue") + @JsonPropertyDescription("The type of destination, which MUST be either exchange or queue or fifo-queue. SHOULD be specified to document the messaging model (publish/subscribe, point-to-point, strict message ordering) supported by this channel.") + private AnypointMQChannelDestinationType destinationType = AnypointMQChannelDestinationType.QUEUE; + + @Override + public String getBindingVersion() { + return "0.0.1"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.0.1"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/anypointmq/v0/_0_1/channel/AnypointMQChannelDestinationType.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/anypointmq/v0/_0_1/channel/AnypointMQChannelDestinationType.java new file mode 100644 index 00000000..c8e8b233 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/anypointmq/v0/_0_1/channel/AnypointMQChannelDestinationType.java @@ -0,0 +1,27 @@ +package com.asyncapi.bindings.anypointmq.v0._0_1.channel; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Describes Anypoint MQ channel destination type. + * + * @see Anypoint MQ channel binding + * @see Anypoint MQ + * @author Pavel Bodiachevskii + * @version 0.0.1 + * @since 1.0.0-RC2 + */ +@JsonClassDescription("Describes Anypoint MQ channel destination type.") +public enum AnypointMQChannelDestinationType { + + @JsonProperty("exchange") + EXCHANGE, + + @JsonProperty("queue") + QUEUE, + + @JsonProperty("fifo-queue") + FIFO_QUEUE + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/anypointmq/v0/_0_1/message/AnypointMQMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/anypointmq/v0/_0_1/message/AnypointMQMessageBinding.java new file mode 100644 index 00000000..6b4ae45a --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/anypointmq/v0/_0_1/message/AnypointMQMessageBinding.java @@ -0,0 +1,51 @@ +package com.asyncapi.bindings.anypointmq.v0._0_1.message; + +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Anypoint MQ message binding. + * + * @see Anypoint MQ message binding + * @see Anypoint MQ + * @author Pavel Bodiachevskii + * @version 0.0.1 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes Anypoint MQ message binding.") +public class AnypointMQMessageBinding extends com.asyncapi.bindings.anypointmq.AnypointMQMessageBinding { + + /** + * A Schema object containing the definitions for Anypoint MQ-specific headers (so-called protocol headers). + * This schema MUST be of type object and have a properties key. Examples of Anypoint MQ protocol headers are + * messageId and messageGroupId. + */ + @Nullable + @JsonProperty("headers") + @JsonPropertyDescription("A Schema object containing the definitions for Anypoint MQ-specific headers (so-called protocol headers). This schema MUST be of type object and have a properties key. Examples of Anypoint MQ protocol headers are messageId and messageGroupId.") + private AsyncAPISchema headers; + + @Override + public String getBindingVersion() { + return "0.0.1"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.0.1"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/anypointmq/v0/_0_1/operation/AnypointMQOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/anypointmq/v0/_0_1/operation/AnypointMQOperationBinding.java new file mode 100644 index 00000000..c5a29ce0 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/anypointmq/v0/_0_1/operation/AnypointMQOperationBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.anypointmq.v0._0_1.operation; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes Anypoint MQ operation binding. + * + * @see Anypoint MQ operation binding + * @see Anypoint MQ + * @author Pavel Bodiachevskii + * @version 0.0.1 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class AnypointMQOperationBinding extends com.asyncapi.bindings.anypointmq.AnypointMQOperationBinding { + + @Override + public String getBindingVersion() { + return "0.0.1"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.0.1"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/anypointmq/v0/_0_1/server/AnypointMQServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/anypointmq/v0/_0_1/server/AnypointMQServerBinding.java new file mode 100644 index 00000000..78292eff --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/anypointmq/v0/_0_1/server/AnypointMQServerBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.anypointmq.v0._0_1.server; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes Anypoint MQ server binding. + * + * @see Anypoint MQ server binding + * @see Anypoint MQ + * @author Pavel Bodiachevskii + * @version 0.0.1 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class AnypointMQServerBinding extends com.asyncapi.bindings.anypointmq.AnypointMQServerBinding { + + @Override + public String getBindingVersion() { + return "0.0.1"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.0.1"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/GooglePubSubChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/GooglePubSubChannelBinding.java new file mode 100644 index 00000000..803cca7d --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/GooglePubSubChannelBinding.java @@ -0,0 +1,33 @@ +package com.asyncapi.bindings.googlepubsub; + +import com.asyncapi.bindings.ChannelBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes Google Cloud Pub/Sub channel binding. + *

+ * The Channel Bindings Object is used to describe the Google Cloud Pub/Sub specific Topic details with AsyncAPI. + * + * @see Google Cloud Pub/Sub channel binding + * @see Google Cloud Pub/Sub + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.googlepubsub.v0._2_0.channel.GooglePubSubChannelBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.googlepubsub.v0._1_0.channel.GooglePubSubChannelBinding.class, names = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.googlepubsub.v0._2_0.channel.GooglePubSubChannelBinding.class, names = { + "0.2.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class GooglePubSubChannelBinding extends ChannelBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/GooglePubSubMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/GooglePubSubMessageBinding.java new file mode 100644 index 00000000..c3ae3246 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/GooglePubSubMessageBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.googlepubsub; + +import com.asyncapi.bindings.MessageBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes Google Cloud Pub/Sub message binding. + *

+ * The Message Binding Object is used to describe the Google Cloud Pub/Sub specific PubsubMessage details, alongside with + * pertintent parts of the Google Cloud Pub/Sub Schema Object, with AsyncAPI. + * + * @see Google Cloud Pub/Sub message binding + * @see Google Cloud Pub/Sub + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.googlepubsub.v0._2_0.message.GooglePubSubMessageBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.googlepubsub.v0._1_0.message.GooglePubSubMessageBinding.class, names = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.googlepubsub.v0._2_0.message.GooglePubSubMessageBinding.class, names = { + "0.2.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class GooglePubSubMessageBinding extends MessageBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/GooglePubSubOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/GooglePubSubOperationBinding.java new file mode 100644 index 00000000..d7bd0a93 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/GooglePubSubOperationBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.googlepubsub; + +import com.asyncapi.bindings.OperationBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes Google Cloud Pub/Sub operation binding. + * + * @see Google Cloud Pub/Sub operation binding + * @see Google Cloud Pub/Sub + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.googlepubsub.v0._2_0.operation.GooglePubSubOperationBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.googlepubsub.v0._1_0.operation.GooglePubSubOperationBinding.class, names = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.googlepubsub.v0._2_0.operation.GooglePubSubOperationBinding.class, names = { + "0.2.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class GooglePubSubOperationBinding extends OperationBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/GooglePubSubServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/GooglePubSubServerBinding.java new file mode 100644 index 00000000..bd771f4c --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/GooglePubSubServerBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.googlepubsub; + +import com.asyncapi.bindings.ServerBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes Google Cloud Pub/Sub server binding. + * + * @see Google Cloud Pub/Sub server binding + * @see Google Cloud Pub/Sub + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.googlepubsub.v0._2_0.server.GooglePubSubServerBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.googlepubsub.v0._1_0.server.GooglePubSubServerBinding.class, names = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.googlepubsub.v0._2_0.server.GooglePubSubServerBinding.class, names = { + "0.2.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class GooglePubSubServerBinding extends ServerBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_1_0/channel/GooglePubSubChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_1_0/channel/GooglePubSubChannelBinding.java new file mode 100644 index 00000000..e5cdfecc --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_1_0/channel/GooglePubSubChannelBinding.java @@ -0,0 +1,89 @@ +package com.asyncapi.bindings.googlepubsub.v0._1_0.channel; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Map; + +/** + * Describes Google Cloud Pub/Sub channel binding. + *

+ * The Channel Bindings Object is used to describe the Google Cloud Pub/Sub specific Topic details with AsyncAPI. + * + * @see Google Cloud Pub/Sub channel binding + * @see Google Cloud Pub/Sub + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes Google Cloud Pub/Sub channel binding.") +public class GooglePubSubChannelBinding extends com.asyncapi.bindings.googlepubsub.GooglePubSubChannelBinding { + + /** + * The Google Cloud Pub/Sub Topic name. + */ + @NotNull + @Builder.Default + @javax.validation.constraints.NotNull + @JsonProperty(value = "topic", required = true) + @JsonPropertyDescription("The Google Cloud Pub/Sub Topic name.") + private String topic = ""; + + /** + * An object of key-value pairs (These are used to categorize Cloud Resources like Cloud Pub/Sub Topics.) + */ + @Nullable + @JsonProperty("labels") + @JsonPropertyDescription("An object of key-value pairs (These are used to categorize Cloud Resources like Cloud Pub/Sub Topics.)") + private Map labels; + + /** + * Indicates the minimum duration to retain a message after it is published to the topic (Must be a valid Duration.) + */ + @Nullable + @JsonProperty("messageRetentionDuration") + @JsonPropertyDescription("Indicates the minimum duration to retain a message after it is published to the topic (Must be a valid https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Duration.)") + private String messageRetentionDuration; + + /** + * Policy constraining the set of Google Cloud Platform regions where messages published to the topic may be stored + */ + @Nullable + @JsonProperty("messageStoragePolicy") + @JsonPropertyDescription("Policy constraining the set of Google Cloud Platform regions where messages published to the topic may be stored") + private GooglePubSubChannelMessageStoragePolicy messageStoragePolicy; + + /** + * Settings for validating messages published against a schema + */ + @NotNull + @Builder.Default + @javax.validation.constraints.NotNull + @JsonProperty(value = "schemaSettings", required = true) + @JsonPropertyDescription("Settings for validating messages published against a schema") + private GooglePubSubChannelSchemaSettings schemaSettings = new GooglePubSubChannelSchemaSettings(); + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_1_0/channel/GooglePubSubChannelMessageStoragePolicy.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_1_0/channel/GooglePubSubChannelMessageStoragePolicy.java new file mode 100644 index 00000000..1077649b --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_1_0/channel/GooglePubSubChannelMessageStoragePolicy.java @@ -0,0 +1,42 @@ +package com.asyncapi.bindings.googlepubsub.v0._1_0.channel; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +/** + * Describes Google Cloud Pub/Sub MessageStoragePolicy. + *

+ * The Message Storage Policy Object is used to describe the Google Cloud Pub/Sub MessageStoragePolicy Object with AsyncAPI. + * + * @see Google Cloud Pub/Sub channel binding + * @see Google Cloud Pub/Sub + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode +@JsonClassDescription("Describe the Google Cloud Pub/Sub MessageStoragePolicy") +public class GooglePubSubChannelMessageStoragePolicy { + + /** + * A list of IDs of GCP regions where messages that are published to the topic may be persisted in storage + */ + @Nullable + @JsonProperty("allowedPersistenceRegions") + @JsonPropertyDescription("A list of IDs of GCP regions where messages that are published to the topic may be persisted in storage") + private List allowedPersistenceRegions; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_1_0/channel/GooglePubSubChannelSchemaSettings.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_1_0/channel/GooglePubSubChannelSchemaSettings.java new file mode 100644 index 00000000..96d6f646 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_1_0/channel/GooglePubSubChannelSchemaSettings.java @@ -0,0 +1,68 @@ +package com.asyncapi.bindings.googlepubsub.v0._1_0.channel; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Google Cloud Pub/Sub SchemaSettings. + *

+ * The Schema Settings Object is used to describe the Google Cloud Pub/Sub SchemaSettings Object with AsyncAPI. + * + * @see Google Cloud Pub/Sub + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode +@JsonClassDescription("Describe the Google Cloud Pub/Sub SchemaSettings") +public class GooglePubSubChannelSchemaSettings { + + /** + * The encoding of the message (Must be one of the possible Encoding values.) + */ + @NotNull + @Builder.Default + @javax.validation.constraints.NotNull + @JsonProperty(value = "encoding", required = true) + @JsonPropertyDescription("The encoding of the message (Must be one of the possible https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.topics#encoding values.)") + private String encoding = ""; + + /** + * The minimum (inclusive) revision allowed for validating messages + */ + @Nullable + @JsonProperty("firstRevisionId") + @JsonPropertyDescription("The minimum (inclusive) revision allowed for validating messages") + private String firstRevisionId; + + /** + * The maximum (inclusive) revision allowed for validating messages + */ + @Nullable + @JsonProperty("lastRevisionId") + @JsonPropertyDescription("The maximum (inclusive) revision allowed for validating messages") + private String lastRevisionId; + + /** + * The name of the schema that messages published should be validated against (The format is projects/{project}/schemas/{schema}.) + */ + @NotNull + @Builder.Default + @javax.validation.constraints.NotNull + @JsonProperty(value = "name", required = true) + @JsonPropertyDescription("The name of the schema that messages published should be validated against (The format is projects/{project}/schemas/{schema}.)") + private String name = ""; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_1_0/message/GooglePubSubMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_1_0/message/GooglePubSubMessageBinding.java new file mode 100644 index 00000000..80795b1b --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_1_0/message/GooglePubSubMessageBinding.java @@ -0,0 +1,68 @@ +package com.asyncapi.bindings.googlepubsub.v0._1_0.message; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Google Cloud Pub/Sub message binding. + *

+ * The Message Binding Object is used to describe the Google Cloud Pub/Sub specific PubsubMessage details, alongside with + * pertintent parts of the Google Cloud Pub/Sub Schema Object, with AsyncAPI. + * + * @see Google Cloud Pub/Sub message binding + * @see Google Cloud Pub/Sub + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes Google Cloud Pub/Sub message binding.") +public class GooglePubSubMessageBinding extends com.asyncapi.bindings.googlepubsub.GooglePubSubMessageBinding { + + /** + * If non-empty, identifies related messages for which publish order should be respected (For more information, see ordering messages.) + */ + @Nullable + @JsonProperty("orderingKey") + @JsonPropertyDescription("If non-empty, identifies related messages for which publish order should be respected (For more information, see https://cloud.google.com/pubsub/docs/ordering messages") + private String orderingKey; + + /** + * Attributes for this message (If this field is empty, the message must contain non-empty data. This can be used to + * filter messages on the subscription.) + */ + @Nullable + @JsonProperty("attributes") + @JsonPropertyDescription("Attributes for this message (If this field is empty, the message must contain non-empty data. This can be used to filter messages on the subscription.)") + private Object attributes; + + /** + * Describes the schema used to validate the payload of this message + */ + @Nullable + @JsonProperty("schema") + @JsonPropertyDescription("Describes the schema used to validate the payload of this message") + private GooglePubSubMessageSchemaDefinition schema; + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_1_0/message/GooglePubSubMessageSchemaDefinition.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_1_0/message/GooglePubSubMessageSchemaDefinition.java new file mode 100644 index 00000000..db017077 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_1_0/message/GooglePubSubMessageSchemaDefinition.java @@ -0,0 +1,55 @@ +package com.asyncapi.bindings.googlepubsub.v0._1_0.message; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; + +/** + * Describes Google Cloud Pub/Sub message schema definition. + *

+ * The Schema Definition Object is used to describe the Google Cloud Pub/Sub Schema Object with AsyncAPI. + * While some of this information could be, or is, described using native AsyncAPI, for consistency it makes sense to + * provide this information here at all times, especially for cases where AsyncAPI does not natively support describing + * payloads using a supported Google Cloud Pub/Sub schema format like Protobuf. + * + * @see Google Cloud Pub/Sub message binding + * @see Google Cloud Pub/Sub + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode +@JsonClassDescription("Describes Google Cloud Pub/Sub message schema definition.") +public class GooglePubSubMessageSchemaDefinition { + + /** + * The name of the schema + */ + @NotNull + @Builder.Default + @javax.validation.constraints.NotNull + @JsonProperty(value = "name", required = true) + @JsonPropertyDescription("The name of the schema") + private String name = ""; + + /** + * The type of the schema + */ + @NotNull + @Builder.Default + @javax.validation.constraints.NotNull + @JsonProperty(value = "type", required = true) + @JsonPropertyDescription("The type of the schema") + private GooglePubSubMessageSchemaDefinitionType type = GooglePubSubMessageSchemaDefinitionType.PROTOBUF; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_1_0/message/GooglePubSubMessageSchemaDefinitionType.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_1_0/message/GooglePubSubMessageSchemaDefinitionType.java new file mode 100644 index 00000000..0e053924 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_1_0/message/GooglePubSubMessageSchemaDefinitionType.java @@ -0,0 +1,25 @@ +package com.asyncapi.bindings.googlepubsub.v0._1_0.message; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Describes Google Cloud Pub/Sub message schema definition type. + * + * @see Google Cloud Pub/Sub message binding + * @see Types of schemas + * @see Google Cloud Pub/Sub + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@JsonClassDescription("Describes Google Cloud Pub/Sub message schema definition type.") +public enum GooglePubSubMessageSchemaDefinitionType { + + @JsonProperty("avro") + AVRO, + + @JsonProperty("protobuf") + PROTOBUF + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_1_0/operation/GooglePubSubOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_1_0/operation/GooglePubSubOperationBinding.java new file mode 100644 index 00000000..7d3f844c --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_1_0/operation/GooglePubSubOperationBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.googlepubsub.v0._1_0.operation; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes Google Cloud Pub/Sub operation binding. + * + * @see Google Cloud Pub/Sub operation binding + * @see Google Cloud Pub/Sub + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class GooglePubSubOperationBinding extends com.asyncapi.bindings.googlepubsub.GooglePubSubOperationBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_1_0/server/GooglePubSubServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_1_0/server/GooglePubSubServerBinding.java new file mode 100644 index 00000000..a6817995 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_1_0/server/GooglePubSubServerBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.googlepubsub.v0._1_0.server; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes Google Cloud Pub/Sub server binding. + * + * @see Google Cloud Pub/Sub server binding + * @see Google Cloud Pub/Sub + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class GooglePubSubServerBinding extends com.asyncapi.bindings.googlepubsub.GooglePubSubServerBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_2_0/channel/GooglePubSubChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_2_0/channel/GooglePubSubChannelBinding.java new file mode 100644 index 00000000..94761ffe --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_2_0/channel/GooglePubSubChannelBinding.java @@ -0,0 +1,79 @@ +package com.asyncapi.bindings.googlepubsub.v0._2_0.channel; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Map; + +/** + * Describes Google Cloud Pub/Sub channel binding. + *

+ * The Channel Bindings Object is used to describe the Google Cloud Pub/Sub specific Topic details with AsyncAPI. + * + * @see Google Cloud Pub/Sub channel binding + * @see Google Cloud Pub/Sub + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes Google Cloud Pub/Sub channel binding.") +public class GooglePubSubChannelBinding extends com.asyncapi.bindings.googlepubsub.GooglePubSubChannelBinding { + + /** + * An object of key-value pairs (These are used to categorize Cloud Resources like Cloud Pub/Sub Topics.) + */ + @Nullable + @JsonProperty("labels") + @JsonPropertyDescription("An object of key-value pairs (These are used to categorize Cloud Resources like Cloud Pub/Sub Topics.)") + private Map labels; + + /** + * Indicates the minimum duration to retain a message after it is published to the topic (Must be a valid Duration.) + */ + @Nullable + @JsonProperty("messageRetentionDuration") + @JsonPropertyDescription("Indicates the minimum duration to retain a message after it is published to the topic (Must be a valid https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Duration.)") + private String messageRetentionDuration; + + /** + * Policy constraining the set of Google Cloud Platform regions where messages published to the topic may be stored + */ + @Nullable + @JsonProperty("messageStoragePolicy") + @JsonPropertyDescription("Policy constraining the set of Google Cloud Platform regions where messages published to the topic may be stored") + private GooglePubSubChannelMessageStoragePolicy messageStoragePolicy; + + /** + * Settings for validating messages published against a schema + */ + @NotNull + @Builder.Default + @javax.validation.constraints.NotNull + @JsonProperty(value = "schemaSettings", required = true) + @JsonPropertyDescription("Settings for validating messages published against a schema") + private GooglePubSubChannelSchemaSettings schemaSettings = new GooglePubSubChannelSchemaSettings(); + + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_2_0/channel/GooglePubSubChannelMessageStoragePolicy.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_2_0/channel/GooglePubSubChannelMessageStoragePolicy.java new file mode 100644 index 00000000..173538d7 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_2_0/channel/GooglePubSubChannelMessageStoragePolicy.java @@ -0,0 +1,42 @@ +package com.asyncapi.bindings.googlepubsub.v0._2_0.channel; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +/** + * Describes Google Cloud Pub/Sub MessageStoragePolicy. + *

+ * The Message Storage Policy Object is used to describe the Google Cloud Pub/Sub MessageStoragePolicy Object with AsyncAPI. + * + * @see Google Cloud Pub/Sub channel binding + * @see Google Cloud Pub/Sub + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode +@JsonClassDescription("Describe the Google Cloud Pub/Sub MessageStoragePolicy") +public class GooglePubSubChannelMessageStoragePolicy { + + /** + * A list of IDs of GCP regions where messages that are published to the topic may be persisted in storage + */ + @Nullable + @JsonProperty("allowedPersistenceRegions") + @JsonPropertyDescription("A list of IDs of GCP regions where messages that are published to the topic may be persisted in storage") + private List allowedPersistenceRegions; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_2_0/channel/GooglePubSubChannelSchemaSettings.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_2_0/channel/GooglePubSubChannelSchemaSettings.java new file mode 100644 index 00000000..a62aa1e4 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_2_0/channel/GooglePubSubChannelSchemaSettings.java @@ -0,0 +1,68 @@ +package com.asyncapi.bindings.googlepubsub.v0._2_0.channel; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Google Cloud Pub/Sub SchemaSettings. + *

+ * The Schema Settings Object is used to describe the Google Cloud Pub/Sub SchemaSettings Object with AsyncAPI. + * + * @see Google Cloud Pub/Sub + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode +@JsonClassDescription("Describe the Google Cloud Pub/Sub SchemaSettings") +public class GooglePubSubChannelSchemaSettings { + + /** + * The encoding of the message (Must be one of the possible Encoding values.) + */ + @NotNull + @Builder.Default + @javax.validation.constraints.NotNull + @JsonProperty(value = "encoding", required = true) + @JsonPropertyDescription("The encoding of the message (Must be one of the possible https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.topics#encoding values.)") + private String encoding = ""; + + /** + * The minimum (inclusive) revision allowed for validating messages + */ + @Nullable + @JsonProperty("firstRevisionId") + @JsonPropertyDescription("The minimum (inclusive) revision allowed for validating messages") + private String firstRevisionId; + + /** + * The maximum (inclusive) revision allowed for validating messages + */ + @Nullable + @JsonProperty("lastRevisionId") + @JsonPropertyDescription("The maximum (inclusive) revision allowed for validating messages") + private String lastRevisionId; + + /** + * The name of the schema that messages published should be validated against (The format is projects/{project}/schemas/{schema}.) + */ + @NotNull + @Builder.Default + @javax.validation.constraints.NotNull + @JsonProperty(value = "name", required = true) + @JsonPropertyDescription("The name of the schema that messages published should be validated against (The format is projects/{project}/schemas/{schema}.)") + private String name = ""; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_2_0/message/GooglePubSubMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_2_0/message/GooglePubSubMessageBinding.java new file mode 100644 index 00000000..a563310b --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_2_0/message/GooglePubSubMessageBinding.java @@ -0,0 +1,68 @@ +package com.asyncapi.bindings.googlepubsub.v0._2_0.message; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Google Cloud Pub/Sub message binding. + *

+ * The Message Binding Object is used to describe the Google Cloud Pub/Sub specific PubsubMessage details, alongside with + * pertintent parts of the Google Cloud Pub/Sub Schema Object, with AsyncAPI. + * + * @see Google Cloud Pub/Sub message binding + * @see Google Cloud Pub/Sub + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes Google Cloud Pub/Sub message binding.") +public class GooglePubSubMessageBinding extends com.asyncapi.bindings.googlepubsub.GooglePubSubMessageBinding { + + /** + * If non-empty, identifies related messages for which publish order should be respected (For more information, see ordering messages.) + */ + @Nullable + @JsonProperty("orderingKey") + @JsonPropertyDescription("If non-empty, identifies related messages for which publish order should be respected (For more information, see https://cloud.google.com/pubsub/docs/ordering messages") + private String orderingKey; + + /** + * Attributes for this message (If this field is empty, the message must contain non-empty data. This can be used to + * filter messages on the subscription.) + */ + @Nullable + @JsonProperty("attributes") + @JsonPropertyDescription("Attributes for this message (If this field is empty, the message must contain non-empty data. This can be used to filter messages on the subscription.)") + private Object attributes; + + /** + * Describes the schema used to validate the payload of this message + */ + @Nullable + @JsonProperty("schema") + @JsonPropertyDescription("Describes the schema used to validate the payload of this message") + private GooglePubSubMessageSchemaDefinition schema; + + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_2_0/message/GooglePubSubMessageSchemaDefinition.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_2_0/message/GooglePubSubMessageSchemaDefinition.java new file mode 100644 index 00000000..84d10108 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_2_0/message/GooglePubSubMessageSchemaDefinition.java @@ -0,0 +1,45 @@ +package com.asyncapi.bindings.googlepubsub.v0._2_0.message; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; + +/** + * Describes Google Cloud Pub/Sub message schema definition. + *

+ * The Schema Definition Object is used to describe the Google Cloud Pub/Sub Schema Object with AsyncAPI. + * While some of this information could be, or is, described using native AsyncAPI, for consistency it makes sense to + * provide this information here at all times, especially for cases where AsyncAPI does not natively support describing + * payloads using a supported Google Cloud Pub/Sub schema format like Protobuf. + * + * @see Google Cloud Pub/Sub message binding + * @see Google Cloud Pub/Sub + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode +@JsonClassDescription("Describes Google Cloud Pub/Sub message schema definition.") +public class GooglePubSubMessageSchemaDefinition { + + /** + * The name of the schema + */ + @NotNull + @Builder.Default + @javax.validation.constraints.NotNull + @JsonProperty(value = "name", required = true) + @JsonPropertyDescription("The name of the schema") + private String name = ""; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_2_0/operation/GooglePubSubOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_2_0/operation/GooglePubSubOperationBinding.java new file mode 100644 index 00000000..6135702d --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_2_0/operation/GooglePubSubOperationBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.googlepubsub.v0._2_0.operation; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes Google Cloud Pub/Sub operation binding. + * + * @see Google Cloud Pub/Sub operation binding + * @see Google Cloud Pub/Sub + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class GooglePubSubOperationBinding extends com.asyncapi.bindings.googlepubsub.GooglePubSubOperationBinding { + + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_2_0/server/GooglePubSubServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_2_0/server/GooglePubSubServerBinding.java new file mode 100644 index 00000000..b85703f4 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/googlepubsub/v0/_2_0/server/GooglePubSubServerBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.googlepubsub.v0._2_0.server; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes Google Cloud Pub/Sub server binding. + * + * @see Google Cloud Pub/Sub server binding + * @see Google Cloud Pub/Sub + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class GooglePubSubServerBinding extends com.asyncapi.bindings.googlepubsub.GooglePubSubServerBinding { + + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/http/HTTPChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/HTTPChannelBinding.java new file mode 100644 index 00000000..866e1db8 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/HTTPChannelBinding.java @@ -0,0 +1,32 @@ +package com.asyncapi.bindings.http; + +import com.asyncapi.bindings.ChannelBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes HTTP channel binding. + * + * @see HTTP channel binding + * @see MDN HTTP overview + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.http.v0._3_0.channel.HTTPChannelBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.http.v0._1_0.channel.HTTPChannelBinding.class, names = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.http.v0._2_0.channel.HTTPChannelBinding.class, names = "0.2.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.http.v0._3_0.channel.HTTPChannelBinding.class, names = { + "0.3.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class HTTPChannelBinding extends ChannelBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/http/HTTPMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/HTTPMessageBinding.java new file mode 100644 index 00000000..95f588bc --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/HTTPMessageBinding.java @@ -0,0 +1,32 @@ +package com.asyncapi.bindings.http; + +import com.asyncapi.bindings.MessageBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Contains information about the message representation in HTTP. + * + * @see HTTP message binding + * @see MDN HTTP overview + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.http.v0._3_0.message.HTTPMessageBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.http.v0._1_0.message.HTTPMessageBinding.class, names = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.http.v0._2_0.message.HTTPMessageBinding.class, names = "0.2.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.http.v0._3_0.message.HTTPMessageBinding.class, names = { + "0.3.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class HTTPMessageBinding extends MessageBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/http/HTTPOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/HTTPOperationBinding.java new file mode 100644 index 00000000..f624c5b6 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/HTTPOperationBinding.java @@ -0,0 +1,32 @@ +package com.asyncapi.bindings.http; + +import com.asyncapi.bindings.OperationBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Contains information about the operation representation in HTTP. + * + * @see HTTP operation binding + * @see MDN HTTP overview + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.http.v0._3_0.operation.HTTPOperationBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.http.v0._1_0.operation.HTTPOperationBinding.class, names = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.http.v0._2_0.operation.HTTPOperationBinding.class, names = "0.2.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.http.v0._3_0.operation.HTTPOperationBinding.class, names = { + "0.3.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class HTTPOperationBinding extends OperationBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/http/HTTPServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/HTTPServerBinding.java new file mode 100644 index 00000000..2f97bc67 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/HTTPServerBinding.java @@ -0,0 +1,32 @@ +package com.asyncapi.bindings.http; + +import com.asyncapi.bindings.ServerBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes HTTP server binding. + * + * @see HTTP server binding + * @see MDN HTTP overview + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.http.v0._3_0.server.HTTPServerBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.http.v0._1_0.server.HTTPServerBinding.class, names = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.http.v0._2_0.server.HTTPServerBinding.class, names = "0.2.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.http.v0._3_0.server.HTTPServerBinding.class, names = { + "0.3.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class HTTPServerBinding extends ServerBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_1_0/channel/HTTPChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_1_0/channel/HTTPChannelBinding.java new file mode 100644 index 00000000..72cf50dc --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_1_0/channel/HTTPChannelBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.http.v0._1_0.channel; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes HTTP channel binding. + * + * @see HTTP channel binding + * @see MDN HTTP overview + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class HTTPChannelBinding extends com.asyncapi.bindings.http.HTTPChannelBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_1_0/message/HTTPMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_1_0/message/HTTPMessageBinding.java new file mode 100644 index 00000000..8cf67315 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_1_0/message/HTTPMessageBinding.java @@ -0,0 +1,50 @@ +package com.asyncapi.bindings.http.v0._1_0.message; + +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes HTTP message binding. + *

+ * Contains information about the message representation in HTTP. + * + * @see HTTP message binding + * @see MDN HTTP overview + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class HTTPMessageBinding extends com.asyncapi.bindings.http.HTTPMessageBinding { + + /** + * A Schema object containing the definitions for each query parameter. This schema MUST be of type object + * and have a properties key.* + */ + @Nullable + @JsonProperty("headers") + @JsonPropertyDescription("A Schema object containing the definitions for each query parameter. This schema MUST be of type object and have a properties key.") + private AsyncAPISchema headers; + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_1_0/operation/HTTPOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_1_0/operation/HTTPOperationBinding.java new file mode 100644 index 00000000..171e750f --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_1_0/operation/HTTPOperationBinding.java @@ -0,0 +1,72 @@ +package com.asyncapi.bindings.http.v0._1_0.operation; + +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * Describes HTTP operation binding. + *

+ * Contains information about the operation representation in HTTP. + * + * @see HTTP operation binding + * @see MDN HTTP overview + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class HTTPOperationBinding extends com.asyncapi.bindings.http.HTTPOperationBinding { + + /** + * Required. + *

+ * Type of operation. Its value MUST be either request or response. + */ + @NotNull + @Builder.Default + @javax.validation.constraints.NotNull + @JsonProperty(value = "type", required = true) + @JsonPropertyDescription("Type of operation. Its value MUST be either request or response.") + private HTTPOperationType type = HTTPOperationType.REQUEST; + + /** + * 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. + */ + @Nullable + @JsonProperty("method") + @JsonPropertyDescription("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.") + private HTTPOperationMethod method; + + /** + * A Schema object containing the definitions for each query parameter. This schema MUST be of type object + * and have a properties key. + */ + @Nullable + @JsonProperty("query") + @JsonPropertyDescription("A Schema object containing the definitions for each query parameter. This schema MUST be of type object and have a properties key.") + private AsyncAPISchema query; + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_1_0/operation/HTTPOperationMethod.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_1_0/operation/HTTPOperationMethod.java new file mode 100644 index 00000000..40082e68 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_1_0/operation/HTTPOperationMethod.java @@ -0,0 +1,24 @@ +package com.asyncapi.bindings.http.v0._1_0.operation; + +/** + * Describes HTTP operation method type. + *

+ * Contains information about the operation method. + * + * @see HTTP operation binding + * @see MDN HTTP overview + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +public enum HTTPOperationMethod { + GET, + PUT, + POST, + PATCH, + DELETE, + HEAD, + OPTIONS, + CONNECT, + TRACE +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_1_0/operation/HTTPOperationType.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_1_0/operation/HTTPOperationType.java new file mode 100644 index 00000000..a3808c52 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_1_0/operation/HTTPOperationType.java @@ -0,0 +1,24 @@ +package com.asyncapi.bindings.http.v0._1_0.operation; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Describes HTTP operation type. + *

+ * Contains information about the operation type. + * + * @see HTTP operation binding + * @see MDN HTTP overview + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +public enum HTTPOperationType { + + @JsonProperty("request") + REQUEST, + + @JsonProperty("response") + RESPONSE + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_1_0/server/HTTPServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_1_0/server/HTTPServerBinding.java new file mode 100644 index 00000000..62e22ffa --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_1_0/server/HTTPServerBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.http.v0._1_0.server; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes HTTP server binding. + * + * @see HTTP server binding + * @see MDN HTTP overview + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class HTTPServerBinding extends com.asyncapi.bindings.http.HTTPServerBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_2_0/channel/HTTPChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_2_0/channel/HTTPChannelBinding.java new file mode 100644 index 00000000..31294116 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_2_0/channel/HTTPChannelBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.http.v0._2_0.channel; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes HTTP channel binding. + * + * @see HTTP channel binding + * @see MDN HTTP overview + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class HTTPChannelBinding extends com.asyncapi.bindings.http.HTTPChannelBinding { + + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_2_0/message/HTTPMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_2_0/message/HTTPMessageBinding.java new file mode 100644 index 00000000..757b0e73 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_2_0/message/HTTPMessageBinding.java @@ -0,0 +1,50 @@ +package com.asyncapi.bindings.http.v0._2_0.message; + +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes HTTP message binding. + *

+ * Contains information about the message representation in HTTP. + * + * @see HTTP message binding + * @see MDN HTTP overview + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class HTTPMessageBinding extends com.asyncapi.bindings.http.HTTPMessageBinding { + + /** + * A Schema object containing the definitions for each query parameter. This schema MUST be of type object + * and have a properties key.* + */ + @Nullable + @JsonProperty("headers") + @JsonPropertyDescription("A Schema object containing the definitions for each query parameter. This schema MUST be of type object and have a properties key.") + private AsyncAPISchema headers; + + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_2_0/operation/HTTPOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_2_0/operation/HTTPOperationBinding.java new file mode 100644 index 00000000..a913b63b --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_2_0/operation/HTTPOperationBinding.java @@ -0,0 +1,59 @@ +package com.asyncapi.bindings.http.v0._2_0.operation; + +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes HTTP operation binding. + *

+ * Contains information about the operation representation in HTTP. + * + * @see HTTP operation binding + * @see MDN HTTP overview + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class HTTPOperationBinding extends com.asyncapi.bindings.http.HTTPOperationBinding { + + /** + * 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. + */ + @Nullable + @JsonProperty("method") + @JsonPropertyDescription("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.") + private HTTPOperationMethod method; + + /** + * A Schema object containing the definitions for each query parameter. This schema MUST be of type object + * and have a properties key. + */ + @Nullable + @JsonProperty("query") + @JsonPropertyDescription("A Schema object containing the definitions for each query parameter. This schema MUST be of type object and have a properties key.") + private AsyncAPISchema query; + + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_2_0/operation/HTTPOperationMethod.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_2_0/operation/HTTPOperationMethod.java new file mode 100644 index 00000000..682d2846 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_2_0/operation/HTTPOperationMethod.java @@ -0,0 +1,24 @@ +package com.asyncapi.bindings.http.v0._2_0.operation; + +/** + * Describes HTTP operation method. + *

+ * Contains information about the operation method. + * + * @see HTTP operation binding + * @see MDN HTTP overview + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +public enum HTTPOperationMethod { + GET, + PUT, + POST, + PATCH, + DELETE, + HEAD, + OPTIONS, + CONNECT, + TRACE +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_2_0/server/HTTPServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_2_0/server/HTTPServerBinding.java new file mode 100644 index 00000000..05d26b0f --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_2_0/server/HTTPServerBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.http.v0._2_0.server; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes HTTP server binding. + * + * @see HTTP server binding + * @see MDN HTTP overview + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class HTTPServerBinding extends com.asyncapi.bindings.http.HTTPServerBinding { + + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_3_0/channel/HTTPChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_3_0/channel/HTTPChannelBinding.java new file mode 100644 index 00000000..3fc20cc7 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_3_0/channel/HTTPChannelBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.http.v0._3_0.channel; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes HTTP channel binding. + * + * @see HTTP channel binding + * @see MDN HTTP overview + * @author Pavel Bodiachevskii + * @version 0.3.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class HTTPChannelBinding extends com.asyncapi.bindings.http.HTTPChannelBinding { + + @Override + public String getBindingVersion() { + return "0.3.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.3.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_3_0/message/HTTPMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_3_0/message/HTTPMessageBinding.java new file mode 100644 index 00000000..1eb13ed9 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_3_0/message/HTTPMessageBinding.java @@ -0,0 +1,62 @@ +package com.asyncapi.bindings.http.v0._3_0.message; + +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes HTTP message binding. + *

+ * Contains information about the message representation in HTTP. + * + * @see HTTP message binding + * @see MDN HTTP overview + * @author Pavel Bodiachevskii + * @version 0.3.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class HTTPMessageBinding extends com.asyncapi.bindings.http.HTTPMessageBinding { + + /** + * A Schema object containing the definitions for each query parameter. This schema MUST be of type object + * and have a properties key.* + */ + @Nullable + @JsonProperty("headers") + @JsonPropertyDescription("A Schema object containing the definitions for each query parameter. This schema MUST be of type object and have a properties key.") + private AsyncAPISchema headers; + + /** + * The HTTP response status code according to RFC 9110. + *

+ * `statusCode` is only relevant for messages referenced by the Operation Reply Object, + * as it defines the status code for the response. + *

+ * In all other cases, this value can be safely ignored. + */ + @Nullable + @JsonProperty("statusCode") + private Integer statusCode; + + @Override + public String getBindingVersion() { + return "0.3.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.3.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_3_0/operation/HTTPOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_3_0/operation/HTTPOperationBinding.java new file mode 100644 index 00000000..a6244877 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_3_0/operation/HTTPOperationBinding.java @@ -0,0 +1,59 @@ +package com.asyncapi.bindings.http.v0._3_0.operation; + +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes HTTP operation binding. + *

+ * Contains information about the operation representation in HTTP. + * + * @see HTTP operation binding + * @see MDN HTTP overview + * @author Pavel Bodiachevskii + * @version 0.3.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class HTTPOperationBinding extends com.asyncapi.bindings.http.HTTPOperationBinding { + + /** + * 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. + */ + @Nullable + @JsonProperty("method") + @JsonPropertyDescription("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.") + private HTTPOperationMethod method; + + /** + * A Schema object containing the definitions for each query parameter. This schema MUST be of type object + * and have a properties key. + */ + @Nullable + @JsonProperty("query") + @JsonPropertyDescription("A Schema object containing the definitions for each query parameter. This schema MUST be of type object and have a properties key.") + private AsyncAPISchema query; + + @Override + public String getBindingVersion() { + return "0.3.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.3.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_3_0/operation/HTTPOperationMethod.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_3_0/operation/HTTPOperationMethod.java new file mode 100644 index 00000000..d0d167a5 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_3_0/operation/HTTPOperationMethod.java @@ -0,0 +1,24 @@ +package com.asyncapi.bindings.http.v0._3_0.operation; + +/** + * Describes HTTP operation type. + *

+ * Contains information about the operation type. + * + * @see HTTP operation binding + * @see MDN HTTP overview + * @author Pavel Bodiachevskii + * @version 0.3.0 + * @since 1.0.0-RC2 + */ +public enum HTTPOperationMethod { + GET, + PUT, + POST, + PATCH, + DELETE, + HEAD, + OPTIONS, + CONNECT, + TRACE +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_3_0/server/HTTPServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_3_0/server/HTTPServerBinding.java new file mode 100644 index 00000000..a1fbe94b --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/http/v0/_3_0/server/HTTPServerBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.http.v0._3_0.server; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes HTTP server binding. + * + * @see HTTP server binding + * @see MDN HTTP overview + * @author Pavel Bodiachevskii + * @version 0.3.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class HTTPServerBinding extends com.asyncapi.bindings.http.HTTPServerBinding { + + @Override + public String getBindingVersion() { + return "0.3.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.3.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/IBMMQChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/IBMMQChannelBinding.java new file mode 100644 index 00000000..620fa9ee --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/IBMMQChannelBinding.java @@ -0,0 +1,30 @@ +package com.asyncapi.bindings.ibmmq; + +import com.asyncapi.bindings.ChannelBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes IBM MQ channel binding. + * + * @see IBM MQ channel binding + * @see IBM MQ + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.ibmmq.v0._1_0.channel.IBMMQChannelBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.ibmmq.v0._1_0.channel.IBMMQChannelBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class IBMMQChannelBinding extends ChannelBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/IBMMQMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/IBMMQMessageBinding.java new file mode 100644 index 00000000..12120a58 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/IBMMQMessageBinding.java @@ -0,0 +1,30 @@ +package com.asyncapi.bindings.ibmmq; + +import com.asyncapi.bindings.MessageBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes IBM MQ message binding. + * + * @see IBM MQ message binding + * @see IBM MQ + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.ibmmq.v0._1_0.message.IBMMQMessageBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.ibmmq.v0._1_0.message.IBMMQMessageBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class IBMMQMessageBinding extends MessageBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/IBMMQOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/IBMMQOperationBinding.java new file mode 100644 index 00000000..d2745adc --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/IBMMQOperationBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.ibmmq; + +import com.asyncapi.bindings.OperationBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes IBM MQ operation binding. + * + * @see IBM MQ operation binding + * @see IBM MQ + * @author Pavel Bodiachevskii + * @version 0.3.0 + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.ibmmq.v0._1_0.operation.IBMMQOperationBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.ibmmq.v0._1_0.operation.IBMMQOperationBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class IBMMQOperationBinding extends OperationBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/IBMMQServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/IBMMQServerBinding.java new file mode 100644 index 00000000..45cab57e --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/IBMMQServerBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.ibmmq; + +import com.asyncapi.bindings.ServerBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes IBM MQ server binding. + *

+ * 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. + * + * @see IBM MQ server binding + * @see IBM MQ + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.ibmmq.v0._1_0.server.IBMMQServerBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.ibmmq.v0._1_0.server.IBMMQServerBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class IBMMQServerBinding extends ServerBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/v0/_1_0/channel/IBMMQChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/v0/_1_0/channel/IBMMQChannelBinding.java new file mode 100644 index 00000000..382ca084 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/v0/_1_0/channel/IBMMQChannelBinding.java @@ -0,0 +1,95 @@ +package com.asyncapi.bindings.ibmmq.v0._1_0.channel; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes IBM MQ channel binding. + *

+ * This object contains information about the channel representation in IBM MQ. Each channel corresponds to a Queue or Topic within IBM MQ. + * + * @see IBM MQ channel binding + * @see IBM MQ + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes IBM MQ channel binding.") +public class IBMMQChannelBinding extends com.asyncapi.bindings.ibmmq.IBMMQChannelBinding { + + /** + * Defines the type of AsyncAPI channel. + *

+ * MUST be either topic or queue. For type topic, the AsyncAPI channel name MUST be assumed for the IBM MQ topic string unless overridden. + */ + @Nullable + @Builder.Default + @JsonProperty(value = "destinationType", defaultValue = "topic") + @JsonPropertyDescription("Defines the type of AsyncAPI channel.") + private IBMMQChannelDestinationType destinationType = IBMMQChannelDestinationType.TOPIC; + + /** + * REQUIRED if destinationType = queue + *

+ * queue and topic fields MUST NOT coexist within a channel binding + */ + @Nullable + @JsonProperty("queue") + @JsonPropertyDescription("Defines the properties of a queue.") + private IBMMQChannelQueueProperties queue; + + /** + * Defines the properties of a topic. + *

+ * OPTIONAL if destinationType = topic + *

+ * queue and topic fields MUST NOT coexist within a channel binding. + */ + @Nullable + @JsonProperty("topic") + @JsonPropertyDescription("Defines the properties of a topic.") + private IBMMQChannelTopicProperties topic; + + /** + * 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 in the IBM MQ Knowledge Center. + *

+ * MUST be 0-104,857,600 bytes (100 MB). + */ + @Nullable + @javax.validation.constraints.Min( + value = 0, + message = "Maximum length of the physical message (in bytes) must be greater or equals to 0" + ) + @javax.validation.constraints.Max( + value = 104857600, + message = "Maximum length of the physical message (in bytes) must be lower or equals to 104857600" + ) + @JsonProperty("maxMsgLength") + @JsonPropertyDescription("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.") + private Integer maxMsgLength; + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/v0/_1_0/channel/IBMMQChannelDestinationType.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/v0/_1_0/channel/IBMMQChannelDestinationType.java new file mode 100644 index 00000000..157d0117 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/v0/_1_0/channel/IBMMQChannelDestinationType.java @@ -0,0 +1,22 @@ +package com.asyncapi.bindings.ibmmq.v0._1_0.channel; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Describes IBM MQ channel destination type. + * + * @see IBM MQ channel binding + * @see IBM MQ + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +public enum IBMMQChannelDestinationType { + + @JsonProperty("topic") + TOPIC, + + @JsonProperty("queue") + QUEUE + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/v0/_1_0/channel/IBMMQChannelQueueProperties.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/v0/_1_0/channel/IBMMQChannelQueueProperties.java new file mode 100644 index 00000000..0298cfae --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/v0/_1_0/channel/IBMMQChannelQueueProperties.java @@ -0,0 +1,68 @@ +package com.asyncapi.bindings.ibmmq.v0._1_0.channel; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * Describes IBM MQ channel queue properties. + * + * @see IBM MQ channel binding + * @see IBM MQ + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode +@JsonClassDescription("Describes IBM MQ channel queue properties.") +public class IBMMQChannelQueueProperties { + + /** + * Defines the name of the IBM MQ queue associated with the channel. + *

+ * A value MUST be specified. MUST NOT exceed 48 characters in length. MUST be a valid IBM MQ queue name + */ + @NotNull + @javax.validation.constraints.NotNull + @javax.validation.constraints.Size( + max = 48, + message = "Name of the IBM MQ queue must be less or equals to 48" + ) + @Builder.Default + @JsonProperty("objectName") + @JsonPropertyDescription("Defines the name of the IBM MQ queue associated with the channel.") + private String objectName = ""; + + /** + * 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. + *

+ * If false, binding options SHOULD NOT be specified when accessing the queue. + */ + @Nullable + @Builder.Default + @JsonProperty(value = "isPartitioned", defaultValue = "false") + @JsonPropertyDescription("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.") + private Boolean isPartitioned = false; + + /** + * Specifies if it is recommended to open the queue exclusively. + */ + @Nullable + @Builder.Default + @JsonProperty(value = "exclusive", defaultValue = "false") + @JsonPropertyDescription("Specifies if it is recommended to open the queue exclusively.") + private Boolean exclusive = false; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/v0/_1_0/channel/IBMMQChannelTopicProperties.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/v0/_1_0/channel/IBMMQChannelTopicProperties.java new file mode 100644 index 00000000..cf2a35aa --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/v0/_1_0/channel/IBMMQChannelTopicProperties.java @@ -0,0 +1,80 @@ +package com.asyncapi.bindings.ibmmq.v0._1_0.channel; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes IBM MQ channel topic properties. + * + * @see IBM MQ channel binding + * @see IBM MQ + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode +public class IBMMQChannelTopicProperties { + + /** + * The value of the IBM MQ topic string to be used. + *

+ * OPTIONAL + * Note: if specified, SHALL override AsyncAPI channel name. + *

+ * MUST NOT exceed 10240 characters in length. MAY coexist with topic.objectName + */ + @Nullable + @javax.validation.constraints.Max( + value = 10240, + message = "Maximum length of topic string must be lower or equals to 10240" + ) + @JsonProperty("string") + @JsonPropertyDescription("The value of the IBM MQ topic string to be used.") + private String string; + + /** + * The name of the IBM MQ topic object. + *

+ * OPTIONAL + * Note: if specified, SHALL override AsyncAPI channel name. + *

+ * MUST NOT exceed 48 characters in length. MAY coexist with topic.string + */ + @Nullable + @javax.validation.constraints.Max( + value = 48, + message = "Maximum length of topic name must be lower or equals to 48" + ) + @JsonProperty("objectName") + @JsonPropertyDescription("The name of the IBM MQ topic object.") + private String objectName; + + /** + * Defines if the subscription may be durable. + */ + @Nullable + @Builder.Default + @JsonProperty(value = "durablePermitted", defaultValue = "true") + @JsonPropertyDescription("Defines if the subscription may be durable.") + private Boolean durablePermitted = true; + + /** + * Defines if the last message published will be made available to new subscriptions. + */ + @Nullable + @Builder.Default + @JsonProperty(value = "lastMsgRetained", defaultValue = "false") + @JsonPropertyDescription("Defines if the last message published will be made available to new subscriptions.") + private Boolean lastMsgRetained = false; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/v0/_1_0/message/IBMMQMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/v0/_1_0/message/IBMMQMessageBinding.java new file mode 100644 index 00000000..b82ba5f9 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/v0/_1_0/message/IBMMQMessageBinding.java @@ -0,0 +1,95 @@ +package com.asyncapi.bindings.ibmmq.v0._1_0.message; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes IBM MQ message binding. + *

+ * This object contains information about the message representation in IBM MQ. + * + * @see IBM MQ message binding + * @see IBM MQ + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes IBM MQ message binding.") +public class IBMMQMessageBinding extends com.asyncapi.bindings.ibmmq.IBMMQMessageBinding { + + /** + * The type of the message. + *

+ * MUST be either string, jms or binary + */ + @Nullable + @Builder.Default + @JsonProperty(value = "type", defaultValue = "string") + @JsonPropertyDescription("The type of the message.") + private IBMMQMessageType type = IBMMQMessageType.STRING; + + /** + * 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 in the IBM MQ Knowledge Center. + *

+ * OPTIONAL if type = binary + *

+ * headers MUST NOT be specified if type = string or jms + */ + @Nullable + @JsonProperty("headers") + @JsonPropertyDescription("Defines the IBM MQ message headers to include with this message. More than one header can be specified as a comma separated list.") + private String headers; + + /** + * Provides additional information for application developers: describes the message type or format. + *

+ * The description field of the IBM MQ message binding object MAY include CommonMark markdown formatting. + * A minimum markdown syntax as described by CommonMark 0.27 is assumed. + */ + @Nullable + @JsonProperty("description") + @JsonPropertyDescription("Provides additional information for application developers: describes the message type or format.") + private String 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 in the IBM MQ Knowledge Center. + *

+ * expiry value MUST be either zero (unlimited) or greater than zero. + */ + @Nullable + @Builder.Default + @javax.validation.constraints.Min( + value = 0, + message = "Expiry must be greater or equals to 0" + ) + @JsonProperty(value = "expiry", defaultValue = "0") + @JsonPropertyDescription("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.") + private Integer expiry = 0; + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/v0/_1_0/message/IBMMQMessageType.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/v0/_1_0/message/IBMMQMessageType.java new file mode 100644 index 00000000..808b5aa3 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/v0/_1_0/message/IBMMQMessageType.java @@ -0,0 +1,27 @@ +package com.asyncapi.bindings.ibmmq.v0._1_0.message; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Describes IBM MQ message type. + *

+ * This object contains information about the message type in IBM MQ. + * + * @see IBM MQ message binding + * @see IBM MQ + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +public enum IBMMQMessageType { + + @JsonProperty("string") + STRING, + + @JsonProperty("jms") + JMS, + + @JsonProperty("binary") + BINARY + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/v0/_1_0/operation/IBMMQOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/v0/_1_0/operation/IBMMQOperationBinding.java new file mode 100644 index 00000000..4d869547 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/v0/_1_0/operation/IBMMQOperationBinding.java @@ -0,0 +1,36 @@ +package com.asyncapi.bindings.ibmmq.v0._1_0.operation; + +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes IBM MQ operation binding. + *

+ * This object MUST NOT contain any properties. Its name is reserved for future use. + * + * @see IBM MQ operation binding + * @see IBM MQ + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class IBMMQOperationBinding extends com.asyncapi.bindings.ibmmq.IBMMQOperationBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/v0/_1_0/server/IBMMQServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/v0/_1_0/server/IBMMQServerBinding.java new file mode 100644 index 00000000..865ee718 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/ibmmq/v0/_1_0/server/IBMMQServerBinding.java @@ -0,0 +1,109 @@ +package com.asyncapi.bindings.ibmmq.v0._1_0.server; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes IBM MQ server binding. + *

+ * 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. + * + * @see IBM MQ server binding + * @see IBM MQ + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes IBM MQ server binding.") +public class IBMMQServerBinding extends com.asyncapi.bindings.ibmmq.IBMMQServerBinding { + + /** + * 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. + *

+ * MUST NOT be specified for URI Scheme http:// or file:// + */ + @Nullable + @JsonProperty("groupId") + @JsonPropertyDescription("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.") + private String groupId; + + /** + * The name of the IBM MQ queue manager to bind to in the CCDT file. + *

+ * MUST NOT be specified for URI Scheme ibmmq:// + */ + @Nullable + @Builder.Default + @JsonProperty(value = "ccdtQueueManagerName", defaultValue = "*") + @JsonPropertyDescription("The name of the IBM MQ queue manager to bind to in the CCDT file.") + private String ccdtQueueManagerName = "*"; + + /** + * 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. + *

+ * MUST NOT be specified for protocol ibmmq or URI Scheme file:// or http:// + */ + @Nullable + @Builder.Default + @JsonProperty(value = "cipherSpec", defaultValue = "ANY") + @JsonPropertyDescription("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.") + private String cipherSpec = "ANY"; + + /** + * 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. + *

+ * MUST NOT be specified for URI Scheme file:// or http:// + */ + @Builder.Default + @JsonProperty(value = "multiEndpointServer", defaultValue = "false") + @JsonPropertyDescription("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. MUST NOT be specified for URI Scheme file:// or http://") + private Boolean multiEndpointServer = false; + + /** + * 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. + *

+ * MUST be 0-999999 + */ + @Builder.Default + @javax.validation.constraints.Min( + value = 0, + message = "Heart beat interval must be greater or equals to 0" + ) + @javax.validation.constraints.Max( + value = 999999, + message = "Heart beat interval must be less or equals to 999999" + ) + @JsonProperty(value = "heartBeatInterval", defaultValue = "300") + @JsonPropertyDescription("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.") + private int heartBeatInterval = 300; + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/jms/JMSChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/jms/JMSChannelBinding.java new file mode 100644 index 00000000..fbf91796 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/jms/JMSChannelBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.jms; + +import com.asyncapi.bindings.ChannelBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes JMS channel binding. + * + * @see JMS channel binding + * @see Java Message Service + * @author Pavel Bodiachevskii + * @version 0.0.1 + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.jms.v0._0_1.channel.JMSChannelBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.jms.v0._0_1.channel.JMSChannelBinding.class, names = { + "0.0.1", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class JMSChannelBinding extends ChannelBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/jms/JMSMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/jms/JMSMessageBinding.java new file mode 100644 index 00000000..614a6795 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/jms/JMSMessageBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.jms; + +import com.asyncapi.bindings.MessageBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes JMS message binding. + * + * @see JMS message binding + * @see Java Message Service + * @author Pavel Bodiachevskii + * @version 0.0.1 + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.jms.v0._0_1.message.JMSMessageBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.jms.v0._0_1.message.JMSMessageBinding.class, names = { + "0.0.1", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class JMSMessageBinding extends MessageBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/jms/JMSOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/jms/JMSOperationBinding.java new file mode 100644 index 00000000..defd14de --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/jms/JMSOperationBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.jms; + +import com.asyncapi.bindings.OperationBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes JMS operation binding. + * + * @see JMS operation binding + * @see Java Message Service + * @author Pavel Bodiachevskii + * @version 0.0.1 + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.jms.v0._0_1.operation.JMSOperationBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.jms.v0._0_1.operation.JMSOperationBinding.class, names = { + "0.0.1", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class JMSOperationBinding extends OperationBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/jms/JMSServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/jms/JMSServerBinding.java new file mode 100644 index 00000000..01c97710 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/jms/JMSServerBinding.java @@ -0,0 +1,30 @@ +package com.asyncapi.bindings.jms; + +import com.asyncapi.bindings.ServerBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes JMS server binding. + * + * @see JMS server binding + * @see Java Message Service + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.jms.v0._0_1.server.JMSServerBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.jms.v0._0_1.server.JMSServerBinding.class, names = { + "0.0.1", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class JMSServerBinding extends ServerBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/jms/v0/_0_1/channel/JMSChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/jms/v0/_0_1/channel/JMSChannelBinding.java new file mode 100644 index 00000000..e6333ed4 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/jms/v0/_0_1/channel/JMSChannelBinding.java @@ -0,0 +1,53 @@ +package com.asyncapi.bindings.jms.v0._0_1.channel; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes JMS channel binding. + * + * @see JMS channel binding + * @see Java Message Service + * @author Pavel Bodiachevskii + * @version 0.0.1 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class JMSChannelBinding extends com.asyncapi.bindings.jms.JMSChannelBinding { + + /** + * 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. + */ + @Nullable + @JsonProperty("destination") + private String destination; + + @Nullable + @JsonProperty("destinationType") + private JMSChannelDestinationType destinationType; + + @Override + public String getBindingVersion() { + return "0.0.1"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.0.1"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/jms/v0/_0_1/channel/JMSChannelDestinationType.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/jms/v0/_0_1/channel/JMSChannelDestinationType.java new file mode 100644 index 00000000..f9ed4411 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/jms/v0/_0_1/channel/JMSChannelDestinationType.java @@ -0,0 +1,22 @@ +package com.asyncapi.bindings.jms.v0._0_1.channel; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Describes JMS channel destination type. + * + * @see JMS channel binding + * @see Java Message Service + * @author Pavel Bodiachevskii + * @version 0.0.1 + * @since 1.0.0-RC2 + */ +public enum JMSChannelDestinationType { + + @JsonProperty("queue") + QUEUE, + + @JsonProperty("fifo-queue") + FIFO_QUEUE + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/jms/v0/_0_1/message/JMSMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/jms/v0/_0_1/message/JMSMessageBinding.java new file mode 100644 index 00000000..9c4dfeac --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/jms/v0/_0_1/message/JMSMessageBinding.java @@ -0,0 +1,48 @@ +package com.asyncapi.bindings.jms.v0._0_1.message; + +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes JMS message binding. + * + * @see Java Message Service + * @author Pavel Bodiachevskii + * @version 0.0.1 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class JMSMessageBinding extends com.asyncapi.bindings.jms.JMSMessageBinding { + + /** + * 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'. + */ + @Nullable + @JsonProperty("headers") + public AsyncAPISchema headers; + + @Override + public String getBindingVersion() { + return "0.0.1"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.0.1"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/jms/v0/_0_1/operation/JMSOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/jms/v0/_0_1/operation/JMSOperationBinding.java new file mode 100644 index 00000000..d63f0d00 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/jms/v0/_0_1/operation/JMSOperationBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.jms.v0._0_1.operation; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes JMS operation binding. + * + * @see JMS operation binding + * @see Java Message Service + * @author Pavel Bodiachevskii + * @version 0.0.1 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class JMSOperationBinding extends com.asyncapi.bindings.jms.JMSOperationBinding { + + @Override + public String getBindingVersion() { + return "0.0.1"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.0.1"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/jms/v0/_0_1/server/JMSServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/jms/v0/_0_1/server/JMSServerBinding.java new file mode 100644 index 00000000..ea3232a4 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/jms/v0/_0_1/server/JMSServerBinding.java @@ -0,0 +1,65 @@ +package com.asyncapi.bindings.jms.v0._0_1.server; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +/** + * Describes JMS server binding. + * + * @see JMS server binding + * @see Java Message Service + * @author Pavel Bodiachevskii + * @version 0.0.1 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class JMSServerBinding extends com.asyncapi.bindings.jms.JMSServerBinding { + + /** + * The classname of the ConnectionFactory implementation for the JMS Provider. + */ + @NotNull + @JsonProperty("jmsConnectionFactory") + private String jmsConnectionFactory = ""; + + /** + * Additional properties to set on the JMS ConnectionFactory implementation for the JMS Provider. + */ + @Nullable + @JsonProperty("properties") + private List<@NotNull JMSServerProperty> properties; + + /** + * 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. + */ + @Nullable + @JsonProperty("clientID") + private String clientID; + + @Override + public String getBindingVersion() { + return "0.0.1"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.0.1"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/jms/v0/_0_1/server/JMSServerProperty.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/jms/v0/_0_1/server/JMSServerProperty.java new file mode 100644 index 00000000..7a7d310a --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/jms/v0/_0_1/server/JMSServerProperty.java @@ -0,0 +1,42 @@ +package com.asyncapi.bindings.jms.v0._0_1.server; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; + +/** + * Describes JMS server property. + * + * @see JMS server binding + * @see Java Message Service + * @author Pavel Bodiachevskii + * @version 0.0.1 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class JMSServerProperty { + + /** + * The name of a property + */ + @NotNull + private String name; + + /** + * The value of a property + * + * MUST BE: + *

    + *
  • string
  • + *
  • boolean
  • + *
  • number
  • + *
  • null
  • + *
+ */ + @NotNull + private Object value; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/KafkaChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/KafkaChannelBinding.java new file mode 100644 index 00000000..b7740ef8 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/KafkaChannelBinding.java @@ -0,0 +1,33 @@ +package com.asyncapi.bindings.kafka; + +import com.asyncapi.bindings.ChannelBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes Kafka channel binding. + * + * @see Kafka channel binding + * @see Kafka + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.kafka.v0._5_0.channel.KafkaChannelBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.kafka.v0._1_0.channel.KafkaChannelBinding.class, name = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.kafka.v0._3_0.channel.KafkaChannelBinding.class, name = "0.3.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.kafka.v0._4_0.channel.KafkaChannelBinding.class, name = "0.4.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.kafka.v0._5_0.channel.KafkaChannelBinding.class, names = { + "0.5.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class KafkaChannelBinding extends ChannelBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/KafkaMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/KafkaMessageBinding.java new file mode 100644 index 00000000..8b63f12b --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/KafkaMessageBinding.java @@ -0,0 +1,33 @@ +package com.asyncapi.bindings.kafka; + +import com.asyncapi.bindings.MessageBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes Kafka message binding. + * + * @see Kafka message binding + * @see Kafka + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.kafka.v0._5_0.message.KafkaMessageBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.kafka.v0._1_0.message.KafkaMessageBinding.class, name = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.kafka.v0._3_0.message.KafkaMessageBinding.class, name = "0.3.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.kafka.v0._4_0.message.KafkaMessageBinding.class, name = "0.4.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.kafka.v0._5_0.message.KafkaMessageBinding.class, names = { + "0.5.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class KafkaMessageBinding extends MessageBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/KafkaOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/KafkaOperationBinding.java new file mode 100644 index 00000000..647a65d7 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/KafkaOperationBinding.java @@ -0,0 +1,33 @@ +package com.asyncapi.bindings.kafka; + +import com.asyncapi.bindings.OperationBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes Kafka operation binding. + * + * @see Kafka operation binding + * @see Kafka + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.kafka.v0._5_0.operation.KafkaOperationBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.kafka.v0._1_0.operation.KafkaOperationBinding.class, name = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.kafka.v0._3_0.operation.KafkaOperationBinding.class, name = "0.3.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.kafka.v0._4_0.operation.KafkaOperationBinding.class, name = "0.4.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.kafka.v0._5_0.operation.KafkaOperationBinding.class, names = { + "0.5.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class KafkaOperationBinding extends OperationBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/KafkaServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/KafkaServerBinding.java new file mode 100644 index 00000000..e5bdac4b --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/KafkaServerBinding.java @@ -0,0 +1,33 @@ +package com.asyncapi.bindings.kafka; + +import com.asyncapi.bindings.ServerBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes Kafka server binding. + * + * @see Kafka server binding + * @see Kafka + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.kafka.v0._5_0.server.KafkaServerBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.kafka.v0._1_0.server.KafkaServerBinding.class, name = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.kafka.v0._3_0.server.KafkaServerBinding.class, name = "0.3.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.kafka.v0._4_0.server.KafkaServerBinding.class, name = "0.4.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.kafka.v0._5_0.server.KafkaServerBinding.class, names = { + "0.5.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class KafkaServerBinding extends ServerBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_1_0/channel/KafkaChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_1_0/channel/KafkaChannelBinding.java new file mode 100644 index 00000000..03ee470c --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_1_0/channel/KafkaChannelBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.kafka.v0._1_0.channel; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Kafka channel binding. + * + * @see Kafka channel binding + * @see Kafka + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes Kafka channel binding.") +public class KafkaChannelBinding extends com.asyncapi.bindings.kafka.KafkaChannelBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_1_0/message/KafkaMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_1_0/message/KafkaMessageBinding.java new file mode 100644 index 00000000..be54ca33 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_1_0/message/KafkaMessageBinding.java @@ -0,0 +1,47 @@ +package com.asyncapi.bindings.kafka.v0._1_0.message; + +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Kafka message binding. + * + * @see Kafka message binding + * @see Kafka + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class KafkaMessageBinding extends com.asyncapi.bindings.kafka.KafkaMessageBinding { + + /** + * The message key. + */ + @Nullable + @JsonProperty("key") + @JsonPropertyDescription("The message key.") + private AsyncAPISchema key; + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_1_0/operation/KafkaOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_1_0/operation/KafkaOperationBinding.java new file mode 100644 index 00000000..2ec8d6df --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_1_0/operation/KafkaOperationBinding.java @@ -0,0 +1,55 @@ +package com.asyncapi.bindings.kafka.v0._1_0.operation; + +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Kafka operation binding. + * + * @see Kafka operation binding + * @see Kafka + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class KafkaOperationBinding extends com.asyncapi.bindings.kafka.KafkaOperationBinding { + + /** + * Id of the consumer group. + */ + @Nullable + @JsonProperty("groupId") + @JsonPropertyDescription("Id of the consumer group.") + private AsyncAPISchema groupId; + + /** + * Id of the consumer inside a consumer group. + */ + @Nullable + @JsonProperty("clientId") + @JsonPropertyDescription("Id of the consumer inside a consumer group.") + private AsyncAPISchema clientId; + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_1_0/server/KafkaServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_1_0/server/KafkaServerBinding.java new file mode 100644 index 00000000..58849664 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_1_0/server/KafkaServerBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.kafka.v0._1_0.server; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Kafka server binding. + * + * @see Kafka server binding + * @see Kafka + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes Kafka server binding.") +public class KafkaServerBinding extends com.asyncapi.bindings.kafka.KafkaServerBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_3_0/channel/KafkaChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_3_0/channel/KafkaChannelBinding.java new file mode 100644 index 00000000..238f777c --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_3_0/channel/KafkaChannelBinding.java @@ -0,0 +1,76 @@ +package com.asyncapi.bindings.kafka.v0._3_0.channel; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Kafka channel binding. + * + * @see Kafka channel binding + * @see Kafka + * @author Pavel Bodiachevskii + * @version 0.3.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes Kafka channel binding.") +public class KafkaChannelBinding extends com.asyncapi.bindings.kafka.KafkaChannelBinding { + + /** + * Kafka topic name if different from channel name. + */ + @Nullable + @JsonProperty("topic") + @JsonPropertyDescription("Kafka topic name if different from channel name.") + private String topic; + + /** + * Number of partitions configured on this topic (useful to know how many parallel consumers you may run). + *

+ * MUST be positive. + */ + @Nullable + @javax.validation.constraints.Min( + value = 1, + message = "Number of partitions must be greater or equals to 1" + ) + @JsonProperty("partitions") + @JsonPropertyDescription("Number of partitions configured on this topic (useful to know how many parallel consumers you may run).") + private Integer partitions; + + /** + * Number of replicas configured on this topic. + *

+ * MUST be positive. + */ + @Nullable + @javax.validation.constraints.Min( + value = 1, + message = "Number of replicas must be greater or equals to 1" + ) + @JsonProperty("replicas") + @JsonPropertyDescription("Number of replicas configured on this topic.") + private Integer replicas; + + @Override + public String getBindingVersion() { + return "0.3.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.3.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_3_0/message/KafkaMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_3_0/message/KafkaMessageBinding.java new file mode 100644 index 00000000..2c38844d --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_3_0/message/KafkaMessageBinding.java @@ -0,0 +1,71 @@ +package com.asyncapi.bindings.kafka.v0._3_0.message; + +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Kafka message binding. + * + * @see Kafka message binding + * @see Kafka + * @author Pavel Bodiachevskii + * @version 0.3.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class KafkaMessageBinding extends com.asyncapi.bindings.kafka.KafkaMessageBinding { + + /** + * The message key. + */ + @Nullable + @JsonProperty("key") + @JsonPropertyDescription("The message key.") + private AsyncAPISchema key; + + /** + * If a Schema Registry is used when performing this operation, tells where the id of schema is stored (e.g. header or payload). + */ + @Nullable + @JsonProperty("schemaIdLocation") + @JsonPropertyDescription("If a Schema Registry is used when performing this operation, tells where the id of schema is stored (e.g. header or payload).") + private KafkaMessageSchemaIdLocation schemaIdLocation; + + /** + * Number of bytes or vendor specific values when schema id is encoded in payload (e.g confluent/ apicurio-legacy / apicurio-new). + */ + @Nullable + @JsonProperty("schemaIdPayloadEncoding") + @JsonPropertyDescription("Number of bytes or vendor specific values when schema id is encoded in payload (e.g confluent/ apicurio-legacy / apicurio-new).") + private String schemaIdPayloadEncoding; + + /** + * Freeform string for any naming strategy class to use. Clients should default to the vendor default if not supplied. + */ + @Nullable + @JsonProperty("schemaLookupStrategy") + @JsonPropertyDescription("Freeform string for any naming strategy class to use. Clients should default to the vendor default if not supplied.") + private String schemaLookupStrategy; + + @Override + public String getBindingVersion() { + return "0.3.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.3.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_3_0/message/KafkaMessageSchemaIdLocation.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_3_0/message/KafkaMessageSchemaIdLocation.java new file mode 100644 index 00000000..5be49c3c --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_3_0/message/KafkaMessageSchemaIdLocation.java @@ -0,0 +1,22 @@ +package com.asyncapi.bindings.kafka.v0._3_0.message; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Describes Kafka message schema id location. + * + * @see Kafka message binding + * @see Kafka + * @author Pavel Bodiachevskii + * @version 0.3.0 + * @since 1.0.0-RC2 + */ +public enum KafkaMessageSchemaIdLocation { + + @JsonProperty("header") + HEADER, + + @JsonProperty("payload") + PAYLOAD + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_3_0/operation/KafkaOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_3_0/operation/KafkaOperationBinding.java new file mode 100644 index 00000000..f001d703 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_3_0/operation/KafkaOperationBinding.java @@ -0,0 +1,55 @@ +package com.asyncapi.bindings.kafka.v0._3_0.operation; + +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Kafka operation binding. + * + * @see Kafka operation binding + * @see Kafka + * @author Pavel Bodiachevskii + * @version 0.3.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class KafkaOperationBinding extends com.asyncapi.bindings.kafka.KafkaOperationBinding { + + /** + * Id of the consumer group. + */ + @Nullable + @JsonProperty("groupId") + @JsonPropertyDescription("Id of the consumer group.") + private AsyncAPISchema groupId; + + /** + * Id of the consumer inside a consumer group. + */ + @Nullable + @JsonProperty("clientId") + @JsonPropertyDescription("Id of the consumer inside a consumer group.") + private AsyncAPISchema clientId; + + @Override + public String getBindingVersion() { + return "0.3.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.3.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_3_0/server/KafkaServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_3_0/server/KafkaServerBinding.java new file mode 100644 index 00000000..c6ef13fb --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_3_0/server/KafkaServerBinding.java @@ -0,0 +1,58 @@ +package com.asyncapi.bindings.kafka.v0._3_0.server; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Kafka server binding. + * + * @see Kafka server binding + * @see Kafka + * @author Pavel Bodiachevskii + * @version 0.3.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes Kafka server binding.") +public class KafkaServerBinding extends com.asyncapi.bindings.kafka.KafkaServerBinding { + + /** + * API URL for the Schema Registry used when producing Kafka messages (if a Schema Registry was used) + */ + @Nullable + @JsonProperty("schemaRegistryUrl") + @JsonPropertyDescription("API URL for the Schema Registry used when producing Kafka messages (if a Schema Registry was used)") + private String schemaRegistryUrl; + + /** + * MUST NOT be specified if schemaRegistryUrl is not specified + *

+ * The vendor of Schema Registry and Kafka serdes library that should be used (e.g. apicurio, confluent, ibm, or karapace) + */ + @Nullable + @JsonProperty("schemaRegistryVendor") + @JsonPropertyDescription("The vendor of Schema Registry and Kafka serdes library that should be used (e.g. apicurio, confluent, ibm, or karapace)") + private String schemaRegistryVendor; + + @Override + public String getBindingVersion() { + return "0.3.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.3.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_4_0/channel/KafkaChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_4_0/channel/KafkaChannelBinding.java new file mode 100644 index 00000000..99185e84 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_4_0/channel/KafkaChannelBinding.java @@ -0,0 +1,82 @@ +package com.asyncapi.bindings.kafka.v0._4_0.channel; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Kafka channel binding. + * + * @version 0.4.0 + * @see Kafka channel binding + * @author Pavel Bodiachevskii + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes Kafka channel binding.") +public class KafkaChannelBinding extends com.asyncapi.bindings.kafka.KafkaChannelBinding { + + /** + * Kafka topic name if different from channel name. + */ + @Nullable + @JsonProperty("topic") + @JsonPropertyDescription("Kafka topic name if different from channel name.") + private String topic; + + /** + * Number of partitions configured on this topic (useful to know how many parallel consumers you may run). + *

+ * MUST be positive. + */ + @Nullable + @javax.validation.constraints.Min( + value = 1, + message = "Number of partitions must be greater or equals to 1" + ) + @JsonProperty("partitions") + @JsonPropertyDescription("Number of partitions configured on this topic (useful to know how many parallel consumers you may run).") + private Integer partitions; + + /** + * Number of replicas configured on this topic. + *

+ * MUST be positive. + */ + @Nullable + @javax.validation.constraints.Min( + value = 1, + message = "Number of replicas must be greater or equals to 1" + ) + @JsonProperty("replicas") + @JsonPropertyDescription("Number of replicas configured on this topic.") + private Integer replicas; + + /** + * Topic configuration properties that are relevant for the API. + */ + @Nullable + @JsonProperty("topicConfiguration") + @JsonPropertyDescription("Topic configuration properties that are relevant for the API.") + private KafkaChannelTopicConfiguration topicConfiguration; + + @Override + public String getBindingVersion() { + return "0.4.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.4.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_4_0/channel/KafkaChannelTopicCleanupPolicy.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_4_0/channel/KafkaChannelTopicCleanupPolicy.java new file mode 100644 index 00000000..814aca64 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_4_0/channel/KafkaChannelTopicCleanupPolicy.java @@ -0,0 +1,13 @@ +package com.asyncapi.bindings.kafka.v0._4_0.channel; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public enum KafkaChannelTopicCleanupPolicy { + + @JsonProperty("compact") + COMPACT, + + @JsonProperty("delete") + DELETE + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_4_0/channel/KafkaChannelTopicConfiguration.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_4_0/channel/KafkaChannelTopicConfiguration.java new file mode 100644 index 00000000..44fb919f --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_4_0/channel/KafkaChannelTopicConfiguration.java @@ -0,0 +1,83 @@ +package com.asyncapi.bindings.kafka.v0._4_0.channel; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +/** + * This objects contains information about the API relevant topic configuration in Kafka. + * + * @version 0.4.0 + * @see Kafka channel binding + * @author Pavel Bodiachevskii + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class KafkaChannelTopicConfiguration { + + /** + * The cleanup.policy configuration option. + *

+ * array may only contain delete and/or compact + */ + @Nullable + @JsonProperty("cleanup.policy") + private List cleanupPolicy; + + /** + * The retention.ms configuration option. + */ + @Nullable + @javax.validation.constraints.Min( + value = -1, + message = "retention.ms must be greater or equals to -1" + ) + @JsonProperty("retention.ms") + @JsonPropertyDescription("The [`retention.ms`](https://kafka.apache.org/documentation/#topicconfigs_retention.ms) configuration option.") + private Integer retentionMs; + + /** + * The retention.bytes configuration option. + */ + @Nullable + @javax.validation.constraints.Min( + value = -1, + message = "retention.bytes must be greater or equals to -1" + ) + @JsonProperty("retention.bytes") + @JsonPropertyDescription("The [`retention.bytes`](https://kafka.apache.org/documentation/#topicconfigs_retention.bytes) configuration option.") + private Integer retentionBytes; + + /** + * The delete.retention.ms configuration option. + */ + @Nullable + @javax.validation.constraints.Min( + value = 0, + message = "delete.retention.ms must be greater or equals to 0" + ) + @JsonProperty("delete.retention.ms") + @JsonPropertyDescription("The [`delete.retention.ms`](https://kafka.apache.org/documentation/#topicconfigs_delete.retention.ms) configuration option.") + private Integer deleteRetentionMs; + + /** + * The max.message.bytes configuration option. + */ + @Nullable + @javax.validation.constraints.Min( + value = 0, + message = "max.message.bytes must be greater or equals to 0" + ) + @JsonProperty("max.message.bytes") + @JsonPropertyDescription("The [`max.message.bytes`](https://kafka.apache.org/documentation/#topicconfigs_max.message.bytes) configuration option.") + private Integer maxMessageBytes; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_4_0/message/KafkaMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_4_0/message/KafkaMessageBinding.java new file mode 100644 index 00000000..04b4cfb0 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_4_0/message/KafkaMessageBinding.java @@ -0,0 +1,72 @@ +package com.asyncapi.bindings.kafka.v0._4_0.message; + +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Kafka message binding. + *

+ * Contains information about the message representation in Kafka. + * + * @version 0.1.0 + * @see Kafka message binding + * @author Pavel Bodiachevskii + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class KafkaMessageBinding extends com.asyncapi.bindings.kafka.KafkaMessageBinding { + + /** + * The message key. + */ + // TODO: Reference, AsyncAPISchema, AvroSchema + @Nullable + @JsonProperty("key") + @JsonPropertyDescription("The message key.") + private AsyncAPISchema key; + + /** + * If a Schema Registry is used when performing this operation, tells where the id of schema is stored (e.g. header or payload). + */ + @Nullable + @JsonProperty("schemaIdLocation") + @JsonPropertyDescription("If a Schema Registry is used when performing this operation, tells where the id of schema is stored (e.g. header or payload).") + private KafkaMessageSchemaIdLocation schemaIdLocation; + + /** + * Number of bytes or vendor specific values when schema id is encoded in payload (e.g confluent/ apicurio-legacy / apicurio-new). + */ + @Nullable + @JsonProperty("schemaIdPayloadEncoding") + @JsonPropertyDescription("Number of bytes or vendor specific values when schema id is encoded in payload (e.g confluent/ apicurio-legacy / apicurio-new).") + private String schemaIdPayloadEncoding; + + /** + * Freeform string for any naming strategy class to use. Clients should default to the vendor default if not supplied. + */ + @Nullable + @JsonProperty("schemaLookupStrategy") + @JsonPropertyDescription("Freeform string for any naming strategy class to use. Clients should default to the vendor default if not supplied.") + private String schemaLookupStrategy; + + @Override + public String getBindingVersion() { + return "0.4.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.4.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_4_0/message/KafkaMessageSchemaIdLocation.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_4_0/message/KafkaMessageSchemaIdLocation.java new file mode 100644 index 00000000..d4b59df9 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_4_0/message/KafkaMessageSchemaIdLocation.java @@ -0,0 +1,20 @@ +package com.asyncapi.bindings.kafka.v0._4_0.message; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Describes Kafka message schema id location. + * + * @version 0.1.0 + * @see Kafka message binding + * @author Pavel Bodiachevskii + */ +public enum KafkaMessageSchemaIdLocation { + + @JsonProperty("header") + HEADER, + + @JsonProperty("payload") + PAYLOAD + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_4_0/operation/KafkaOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_4_0/operation/KafkaOperationBinding.java new file mode 100644 index 00000000..e635670a --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_4_0/operation/KafkaOperationBinding.java @@ -0,0 +1,55 @@ +package com.asyncapi.bindings.kafka.v0._4_0.operation; + +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Kafka operation binding. + *

+ * Contains information about the operation representation in Kafka. + * + * @version 0.1.0 + * @see Kafka operation binding + * @author Pavel Bodiachevskii + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class KafkaOperationBinding extends com.asyncapi.bindings.kafka.KafkaOperationBinding { + + /** + * Id of the consumer group. + */ + @Nullable + @JsonProperty("groupId") + @JsonPropertyDescription("Id of the consumer group.") + private AsyncAPISchema groupId; + + /** + * Id of the consumer inside a consumer group. + */ + @Nullable + @JsonProperty("clientId") + @JsonPropertyDescription("Id of the consumer inside a consumer group.") + private AsyncAPISchema clientId; + + @Override + public String getBindingVersion() { + return "0.4.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.4.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_4_0/server/KafkaServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_4_0/server/KafkaServerBinding.java new file mode 100644 index 00000000..ab2b2678 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_4_0/server/KafkaServerBinding.java @@ -0,0 +1,56 @@ +package com.asyncapi.bindings.kafka.v0._4_0.server; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Kafka server binding. + * + * @version 0.4.0 + * @see Kafka server binding + * @author Pavel Bodiachevskii + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes Kafka server binding.") +public class KafkaServerBinding extends com.asyncapi.bindings.kafka.KafkaServerBinding { + + /** + * API URL for the Schema Registry used when producing Kafka messages (if a Schema Registry was used) + */ + @Nullable + @JsonProperty("schemaRegistryUrl") + @JsonPropertyDescription("API URL for the Schema Registry used when producing Kafka messages (if a Schema Registry was used)") + private String schemaRegistryUrl; + + /** + * MUST NOT be specified if schemaRegistryUrl is not specified + *

+ * The vendor of Schema Registry and Kafka serdes library that should be used (e.g. apicurio, confluent, ibm, or karapace) + */ + @Nullable + @JsonProperty("schemaRegistryVendor") + @JsonPropertyDescription("The vendor of Schema Registry and Kafka serdes library that should be used (e.g. apicurio, confluent, ibm, or karapace)") + private String schemaRegistryVendor; + + @Override + public String getBindingVersion() { + return "0.4.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.4.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_5_0/channel/KafkaChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_5_0/channel/KafkaChannelBinding.java new file mode 100644 index 00000000..e7c8f475 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_5_0/channel/KafkaChannelBinding.java @@ -0,0 +1,84 @@ +package com.asyncapi.bindings.kafka.v0._5_0.channel; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Kafka channel binding. + * + * @see Kafka channel binding + * @see Kafka + * @author Pavel Bodiachevskii + * @version 0.5.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes Kafka channel binding.") +public class KafkaChannelBinding extends com.asyncapi.bindings.kafka.KafkaChannelBinding { + + /** + * Kafka topic name if different from channel name. + */ + @Nullable + @JsonProperty("topic") + @JsonPropertyDescription("Kafka topic name if different from channel name.") + private String topic; + + /** + * Number of partitions configured on this topic (useful to know how many parallel consumers you may run). + *

+ * MUST be positive. + */ + @Nullable + @javax.validation.constraints.Min( + value = 1, + message = "Number of partitions must be greater or equals to 1" + ) + @JsonProperty("partitions") + @JsonPropertyDescription("Number of partitions configured on this topic (useful to know how many parallel consumers you may run).") + private Integer partitions; + + /** + * Number of replicas configured on this topic. + *

+ * MUST be positive. + */ + @Nullable + @javax.validation.constraints.Min( + value = 1, + message = "Number of replicas must be greater or equals to 1" + ) + @JsonProperty("replicas") + @JsonPropertyDescription("Number of replicas configured on this topic.") + private Integer replicas; + + /** + * Topic configuration properties that are relevant for the API. + */ + @Nullable + @JsonProperty("topicConfiguration") + @JsonPropertyDescription("Topic configuration properties that are relevant for the API.") + private KafkaChannelTopicConfiguration topicConfiguration; + + @Override + public String getBindingVersion() { + return "0.5.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.5.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_5_0/channel/KafkaChannelTopicCleanupPolicy.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_5_0/channel/KafkaChannelTopicCleanupPolicy.java new file mode 100644 index 00000000..80aab245 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_5_0/channel/KafkaChannelTopicCleanupPolicy.java @@ -0,0 +1,21 @@ +package com.asyncapi.bindings.kafka.v0._5_0.channel; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Kafka channel cleanup policy. + * + * @see Kafka + * @author Pavel Bodiachevskii + * @version 0.5.0 + * @since 1.0.0-RC2 + */ +public enum KafkaChannelTopicCleanupPolicy { + + @JsonProperty("compact") + COMPACT, + + @JsonProperty("delete") + DELETE + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_5_0/channel/KafkaChannelTopicConfiguration.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_5_0/channel/KafkaChannelTopicConfiguration.java new file mode 100644 index 00000000..8159dfcb --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_5_0/channel/KafkaChannelTopicConfiguration.java @@ -0,0 +1,125 @@ +package com.asyncapi.bindings.kafka.v0._5_0.channel; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +/** + * This objects contains information about the API relevant topic configuration in Kafka. + * + * @see Kafka channel binding + * @see Kafka + * @author Pavel Bodiachevskii + * @version 0.5.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class KafkaChannelTopicConfiguration { + + /** + * The cleanup.policy configuration option. + *

+ * array may only contain delete and/or compact + */ + @Nullable + @JsonProperty("cleanup.policy") + private List cleanupPolicy; + + /** + * The retention.ms configuration option. + */ + @Nullable + @javax.validation.constraints.Min( + value = -1, + message = "retention.ms must be greater or equals to -1" + ) + @JsonProperty("retention.ms") + @JsonPropertyDescription("The [`retention.ms`](https://kafka.apache.org/documentation/#topicconfigs_retention.ms) configuration option.") + private Integer retentionMs; + + /** + * The retention.bytes configuration option. + */ + @Nullable + @javax.validation.constraints.Min( + value = -1, + message = "retention.bytes must be greater or equals to -1" + ) + @JsonProperty("retention.bytes") + @JsonPropertyDescription("The [`retention.bytes`](https://kafka.apache.org/documentation/#topicconfigs_retention.bytes) configuration option.") + private Integer retentionBytes; + + /** + * The delete.retention.ms configuration option. + */ + @Nullable + @javax.validation.constraints.Min( + value = 0, + message = "delete.retention.ms must be greater or equals to 0" + ) + @JsonProperty("delete.retention.ms") + @JsonPropertyDescription("The [`delete.retention.ms`](https://kafka.apache.org/documentation/#topicconfigs_delete.retention.ms) configuration option.") + private Integer deleteRetentionMs; + + /** + * The max.message.bytes configuration option. + */ + @Nullable + @javax.validation.constraints.Min( + value = 0, + message = "max.message.bytes must be greater or equals to 0" + ) + @JsonProperty("max.message.bytes") + @JsonPropertyDescription("The [`max.message.bytes`](https://kafka.apache.org/documentation/#topicconfigs_max.message.bytes) configuration option.") + private Integer maxMessageBytes; + + /** + * It shows whether the schema validation for the message key is enabled. + *

+ * Vendor specific config. + * For more details: confluent.key.schema.validation + */ + @Nullable + @JsonProperty("confluent.key.schema.validation") + private Boolean confluentKeySchemaValidation; + + /** + * The name of the schema lookup strategy for the message key. + *

+ * Vendor specific config. + * For more details: confluent.key.subject.name.strategy + */ + @Nullable + @JsonProperty("confluent.key.subject.name.strategy") + private String confluentKeySubjectNameStrategy; + + /** + * It shows whether the schema validation for the message value is enabled. + *

+ * Vendor specific config. + * For more details: confluent.value.schema.validation + */ + @Nullable + @JsonProperty("confluent.value.schema.validation") + private Boolean confluentValueSchemaValidation; + + /** + * The name of the schema lookup strategy for the message value. + *

+ * Vendor specific config. + * For more details: confluent.value.subject.name.strategy + */ + @Nullable + @JsonProperty("confluent.value.subject.name.strategy") + private String confluentValueSubjectNameStrategy; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_5_0/message/KafkaMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_5_0/message/KafkaMessageBinding.java new file mode 100644 index 00000000..5fbc6220 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_5_0/message/KafkaMessageBinding.java @@ -0,0 +1,72 @@ +package com.asyncapi.bindings.kafka.v0._5_0.message; + +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Kafka message binding. + * + * @see Kafka message binding + * @see Kafka + * @author Pavel Bodiachevskii + * @version 0.5.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class KafkaMessageBinding extends com.asyncapi.bindings.kafka.KafkaMessageBinding { + + /** + * The message key. + */ + // TODO: Reference, AsyncAPISchema + @Nullable + @JsonProperty("key") + @JsonPropertyDescription("The message key.") + private AsyncAPISchema key; + + /** + * If a Schema Registry is used when performing this operation, tells where the id of schema is stored (e.g. header or payload). + */ + @Nullable + @JsonProperty("schemaIdLocation") + @JsonPropertyDescription("If a Schema Registry is used when performing this operation, tells where the id of schema is stored (e.g. header or payload).") + private KafkaMessageSchemaIdLocation schemaIdLocation; + + /** + * Number of bytes or vendor specific values when schema id is encoded in payload (e.g confluent/ apicurio-legacy / apicurio-new). + */ + @Nullable + @JsonProperty("schemaIdPayloadEncoding") + @JsonPropertyDescription("Number of bytes or vendor specific values when schema id is encoded in payload (e.g confluent/ apicurio-legacy / apicurio-new).") + private String schemaIdPayloadEncoding; + + /** + * Freeform string for any naming strategy class to use. Clients should default to the vendor default if not supplied. + */ + @Nullable + @JsonProperty("schemaLookupStrategy") + @JsonPropertyDescription("Freeform string for any naming strategy class to use. Clients should default to the vendor default if not supplied.") + private String schemaLookupStrategy; + + @Override + public String getBindingVersion() { + return "0.5.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.5.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_5_0/message/KafkaMessageSchemaIdLocation.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_5_0/message/KafkaMessageSchemaIdLocation.java new file mode 100644 index 00000000..034511f2 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_5_0/message/KafkaMessageSchemaIdLocation.java @@ -0,0 +1,22 @@ +package com.asyncapi.bindings.kafka.v0._5_0.message; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Describes Kafka message schema id location. + * + * @see Kafka message binding + * @see Kafka + * @author Pavel Bodiachevskii + * @version 0.5.0 + * @since 1.0.0-RC2 + */ +public enum KafkaMessageSchemaIdLocation { + + @JsonProperty("header") + HEADER, + + @JsonProperty("payload") + PAYLOAD + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_5_0/operation/KafkaOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_5_0/operation/KafkaOperationBinding.java new file mode 100644 index 00000000..46b68882 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_5_0/operation/KafkaOperationBinding.java @@ -0,0 +1,55 @@ +package com.asyncapi.bindings.kafka.v0._5_0.operation; + +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Kafka operation binding. + * + * @see Kafka operation binding + * @see Kafka + * @author Pavel Bodiachevskii + * @version 0.5.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class KafkaOperationBinding extends com.asyncapi.bindings.kafka.KafkaOperationBinding { + + /** + * Id of the consumer group. + */ + @Nullable + @JsonProperty("groupId") + @JsonPropertyDescription("Id of the consumer group.") + private AsyncAPISchema groupId; + + /** + * Id of the consumer inside a consumer group. + */ + @Nullable + @JsonProperty("clientId") + @JsonPropertyDescription("Id of the consumer inside a consumer group.") + private AsyncAPISchema clientId; + + @Override + public String getBindingVersion() { + return "0.5.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.5.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_5_0/server/KafkaServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_5_0/server/KafkaServerBinding.java new file mode 100644 index 00000000..7aafff0e --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/kafka/v0/_5_0/server/KafkaServerBinding.java @@ -0,0 +1,58 @@ +package com.asyncapi.bindings.kafka.v0._5_0.server; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Kafka server binding. + * + * @see Kafka server binding + * @see Kafka + * @author Pavel Bodiachevskii + * @version 0.5.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes Kafka server binding.") +public class KafkaServerBinding extends com.asyncapi.bindings.kafka.KafkaServerBinding { + + /** + * API URL for the Schema Registry used when producing Kafka messages (if a Schema Registry was used) + */ + @Nullable + @JsonProperty("schemaRegistryUrl") + @JsonPropertyDescription("API URL for the Schema Registry used when producing Kafka messages (if a Schema Registry was used)") + private String schemaRegistryUrl; + + /** + * MUST NOT be specified if schemaRegistryUrl is not specified + *

+ * The vendor of Schema Registry and Kafka serdes library that should be used (e.g. apicurio, confluent, ibm, or karapace) + */ + @Nullable + @JsonProperty("schemaRegistryVendor") + @JsonPropertyDescription("The vendor of Schema Registry and Kafka serdes library that should be used (e.g. apicurio, confluent, ibm, or karapace)") + private String schemaRegistryVendor; + + @Override + public String getBindingVersion() { + return "0.5.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.5.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mercure/MercureChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mercure/MercureChannelBinding.java new file mode 100644 index 00000000..e4a5ea6b --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mercure/MercureChannelBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.mercure; + +import com.asyncapi.bindings.ChannelBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes Mercure channel binding. + * + * @see Mercure channel binding + * @see Mercure + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.mercure.v0._1_0.channel.MercureChannelBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.mercure.v0._1_0.channel.MercureChannelBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class MercureChannelBinding extends ChannelBinding { +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mercure/MercureMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mercure/MercureMessageBinding.java new file mode 100644 index 00000000..8cf46ab1 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mercure/MercureMessageBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.mercure; + +import com.asyncapi.bindings.MessageBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes Mercure message binding. + * + * @see Mercure message binding + * @see Mercure + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.mercure.v0._1_0.message.MercureMessageBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.mercure.v0._1_0.message.MercureMessageBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class MercureMessageBinding extends MessageBinding { +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mercure/MercureOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mercure/MercureOperationBinding.java new file mode 100644 index 00000000..541bbd95 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mercure/MercureOperationBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.mercure; + +import com.asyncapi.bindings.OperationBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes Mercure operation binding. + * + * @see Mercure operation binding + * @see Mercure + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.mercure.v0._1_0.operation.MercureOperationBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.mercure.v0._1_0.operation.MercureOperationBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class MercureOperationBinding extends OperationBinding { +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mercure/MercureServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mercure/MercureServerBinding.java new file mode 100644 index 00000000..7af11624 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mercure/MercureServerBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.mercure; + +import com.asyncapi.bindings.ServerBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes Mercure server binding. + * + * @see Mercure server binding + * @see Mercure + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.mercure.v0._1_0.server.MercureServerBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.mercure.v0._1_0.server.MercureServerBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class MercureServerBinding extends ServerBinding { +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mercure/v0/_1_0/channel/MercureChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mercure/v0/_1_0/channel/MercureChannelBinding.java new file mode 100644 index 00000000..616b9edb --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mercure/v0/_1_0/channel/MercureChannelBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.mercure.v0._1_0.channel; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes Mercure channel binding. + * + * @see Mercure channel binding + * @see Mercure + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class MercureChannelBinding extends com.asyncapi.bindings.mercure.MercureChannelBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mercure/v0/_1_0/message/MercureMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mercure/v0/_1_0/message/MercureMessageBinding.java new file mode 100644 index 00000000..7881a70d --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mercure/v0/_1_0/message/MercureMessageBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.mercure.v0._1_0.message; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes Mercure message binding. + * + * @see Mercure message binding + * @see Mercure + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class MercureMessageBinding extends com.asyncapi.bindings.mercure.MercureMessageBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mercure/v0/_1_0/operation/MercureOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mercure/v0/_1_0/operation/MercureOperationBinding.java new file mode 100644 index 00000000..ade40461 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mercure/v0/_1_0/operation/MercureOperationBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.mercure.v0._1_0.operation; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes Mercure operation binding. + * + * @see Mercure operation binding + * @see Mercure + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class MercureOperationBinding extends com.asyncapi.bindings.mercure.MercureOperationBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mercure/v0/_1_0/server/MercureServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mercure/v0/_1_0/server/MercureServerBinding.java new file mode 100644 index 00000000..273141ca --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mercure/v0/_1_0/server/MercureServerBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.mercure.v0._1_0.server; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes Mercure server binding. + * + * @see Mercure server binding + * @see Mercure + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class MercureServerBinding extends com.asyncapi.bindings.mercure.MercureServerBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/MQTTChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/MQTTChannelBinding.java new file mode 100644 index 00000000..ad900ee3 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/MQTTChannelBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.mqtt; + +import com.asyncapi.bindings.ChannelBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes MQTT channel binding. + * + * @see MQTT channel binding + * @see MQTT + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.mqtt.v0._2_0.channel.MQTTChannelBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.mqtt.v0._1_0.channel.MQTTChannelBinding.class, name = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.mqtt.v0._2_0.channel.MQTTChannelBinding.class, names = { + "0.2.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class MQTTChannelBinding extends ChannelBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/MQTTMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/MQTTMessageBinding.java new file mode 100644 index 00000000..e6ad506f --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/MQTTMessageBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.mqtt; + +import com.asyncapi.bindings.MessageBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes MQTT message binding. + * + * @see MQTT message binding + * @see MQTT + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.mqtt.v0._2_0.message.MQTTMessageBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.mqtt.v0._1_0.message.MQTTMessageBinding.class, name = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.mqtt.v0._2_0.message.MQTTMessageBinding.class, names = { + "0.2.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class MQTTMessageBinding extends MessageBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/MQTTOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/MQTTOperationBinding.java new file mode 100644 index 00000000..c4dbf21c --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/MQTTOperationBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.mqtt; + +import com.asyncapi.bindings.OperationBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes MQTT operation binding. + * + * @see MQTT operation binding + * @see MQTT + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.mqtt.v0._2_0.operation.MQTTOperationBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.mqtt.v0._1_0.operation.MQTTOperationBinding.class, name = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.mqtt.v0._2_0.operation.MQTTOperationBinding.class, names = { + "0.2.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class MQTTOperationBinding extends OperationBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/MQTTServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/MQTTServerBinding.java new file mode 100644 index 00000000..69375552 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/MQTTServerBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.mqtt; + +import com.asyncapi.bindings.ServerBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes MQTT server binding. + * + * @see MQTT server binding + * @see MQTT + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.mqtt.v0._2_0.server.MQTTServerBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.mqtt.v0._1_0.server.MQTTServerBinding.class, name = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.mqtt.v0._2_0.server.MQTTServerBinding.class, names = { + "0.2.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class MQTTServerBinding extends ServerBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/v0/_1_0/channel/MQTTChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/v0/_1_0/channel/MQTTChannelBinding.java new file mode 100644 index 00000000..e1480b9e --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/v0/_1_0/channel/MQTTChannelBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.mqtt.v0._1_0.channel; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes MQTT channel binding. + * + * @see MQTT channel binding + * @see MQTT + * @version 0.1.0 + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class MQTTChannelBinding extends com.asyncapi.bindings.mqtt.MQTTChannelBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/v0/_1_0/message/MQTTMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/v0/_1_0/message/MQTTMessageBinding.java new file mode 100644 index 00000000..31a10b17 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/v0/_1_0/message/MQTTMessageBinding.java @@ -0,0 +1,36 @@ +package com.asyncapi.bindings.mqtt.v0._1_0.message; + +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes MQTT message binding. + *

+ * Contains information about the message representation in MQTT. + * + * @see MQTT message binding + * @see MQTT + * @version 0.1.0 + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class MQTTMessageBinding extends com.asyncapi.bindings.mqtt.MQTTMessageBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/v0/_1_0/operation/MQTTOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/v0/_1_0/operation/MQTTOperationBinding.java new file mode 100644 index 00000000..d6b7f1ba --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/v0/_1_0/operation/MQTTOperationBinding.java @@ -0,0 +1,71 @@ +package com.asyncapi.bindings.mqtt.v0._1_0.operation; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes MQTT operation binding. + *

+ * Contains information about the operation representation in MQTT. + * + * @see MQTT operation binding + * @see MQTT + * @version 0.1.0 + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes MQTT operation binding.") +public class MQTTOperationBinding extends com.asyncapi.bindings.mqtt.MQTTOperationBinding { + + /** + * Defines how hard the broker/client will try to ensure that a message is received. + * Its value MUST be either 0, 1 or 2. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @javax.validation.constraints.Min( + value = 0, + message = "QoS must be greater or equals to 0." + ) + @javax.validation.constraints.Max( + value = 2, + message = "QoS must be lower or equals to 0." + ) + @JsonProperty("qos") + @JsonPropertyDescription("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).") + private Integer qos; + + /** + * Whether the broker should retain the message or not. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @JsonProperty("retain") + @JsonPropertyDescription("Whether the broker should retain the message or not.") + private Boolean retain; + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/v0/_1_0/server/MQTTServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/v0/_1_0/server/MQTTServerBinding.java new file mode 100644 index 00000000..8fec8ff8 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/v0/_1_0/server/MQTTServerBinding.java @@ -0,0 +1,74 @@ +package com.asyncapi.bindings.mqtt.v0._1_0.server; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes MQTT server binding. + *

+ * Contains information about the server representation in MQTT. + * + * @see MQTT server binding + * @see MQTT + * @version 0.1.0 + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes MQTT server binding.") +public class MQTTServerBinding extends com.asyncapi.bindings.mqtt.MQTTServerBinding { + + /** + * The client identifier. + */ + @Nullable + @JsonProperty("clientId") + @JsonPropertyDescription("The client identifier.") + private String clientId; + + /** + * Whether to create a persisten connection or not. When false, the connection will be persistent. + */ + @Nullable + @JsonProperty("cleanSession") + @JsonPropertyDescription("Whether to create a persisten connection or not. When false, the connection will be persistent.") + private Boolean cleanSession; + + /** + * Last Will and Testament configuration. + */ + @Nullable + @JsonProperty("lastWill") + @JsonPropertyDescription("Last Will and Testament configuration.") + private MQTTServerLastWillConfiguration lastWill; + + /** + * Interval in seconds of the longest period of time the broker and the client can endure without sending a message. + */ + @Nullable + @JsonProperty("keepAlive") + @JsonPropertyDescription("Interval in seconds of the longest period of time the broker and the client can endure without sending a message.") + private Integer keepAlive; + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/v0/_1_0/server/MQTTServerLastWillConfiguration.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/v0/_1_0/server/MQTTServerLastWillConfiguration.java new file mode 100644 index 00000000..65cf84cc --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/v0/_1_0/server/MQTTServerLastWillConfiguration.java @@ -0,0 +1,67 @@ +package com.asyncapi.bindings.mqtt.v0._1_0.server; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes MQTT server last will configuration. + * + * @see MQTT server binding + * @see MQTT + * @version 0.1.0 + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +public class MQTTServerLastWillConfiguration { + + /** + * The topic where the Last Will and Testament message will be sent. + */ + @Nullable + @JsonProperty("topic") + @JsonPropertyDescription("The topic where the Last Will and Testament message will be sent.") + private String topic; + + /** + * 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. + */ + @Nullable + @javax.validation.constraints.Min( + value = 0, + message = "QoS must be greater or equals to 0." + ) + @javax.validation.constraints.Max( + value = 2, + message = "QoS must be lower or equals to 0." + ) + @JsonProperty("qos") + @JsonPropertyDescription("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.") + private Integer qos; + + /** + * Last Will message. + */ + @Nullable + @JsonProperty("message") + @JsonPropertyDescription("Last Will message.") + private String message; + + /** + * Whether the broker should retain the Last Will and Testament message or not. + */ + @Nullable + @JsonProperty("retain") + @JsonPropertyDescription("Whether the broker should retain the Last Will and Testament message or not.") + private Boolean retain; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/v0/_2_0/channel/MQTTChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/v0/_2_0/channel/MQTTChannelBinding.java new file mode 100644 index 00000000..d82abe6c --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/v0/_2_0/channel/MQTTChannelBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.mqtt.v0._2_0.channel; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes MQTT channel binding. + * + * @see MQTT channel binding + * @see MQTT + * @version 0.2.0 + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class MQTTChannelBinding extends com.asyncapi.bindings.mqtt.MQTTChannelBinding { + + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/v0/_2_0/message/MQTTMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/v0/_2_0/message/MQTTMessageBinding.java new file mode 100644 index 00000000..c4ccf1de --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/v0/_2_0/message/MQTTMessageBinding.java @@ -0,0 +1,84 @@ +package com.asyncapi.bindings.mqtt.v0._2_0.message; + +import com.asyncapi.schemas.serde.asyncapi.ReferenceOrAsyncAPISchemaOrStringDeserializer; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes MQTT message binding. + *

+ * Contains information about the message representation in MQTT. + * + * @see MQTT message binding + * @see MQTT + * @version 0.2.0 + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class MQTTMessageBinding extends com.asyncapi.bindings.mqtt.MQTTMessageBinding { + + /** + * 1 indicates that the payload is UTF-8 encoded character data. + *

+ * 0 indicates that the payload format is unspecified. + */ + @Nullable + @Builder.Default + private Integer payloadFormatIndicator = 0; + + /** + * Correlation Data is used by the sender of the request message to identify which request the response message is for when it is received. + *

+ * MUST BE: + *

    + *
  • {@link com.asyncapi.schemas.asyncapi.AsyncAPISchema}
  • + *
  • {@link com.asyncapi.schemas.asyncapi.Reference}
  • + *
+ */ + @Nullable + @JsonDeserialize(using = ReferenceOrAsyncAPISchemaOrStringDeserializer.class) + private Object correlationData; + + /** + * String describing the content type of the message payload. + *

+ * This should not conflict with the contentType field of the associated AsyncAPI Message object. + */ + @Nullable + private String contentType; + + /** + * The topic (channel URI) to be used for a response message. + *

+ * MUST BE: + *

    + *
  • {@link String} in uri-template format
  • + *
  • {@link com.asyncapi.schemas.asyncapi.AsyncAPISchema}
  • + *
  • {@link com.asyncapi.schemas.asyncapi.Reference}
  • + *
+ */ + @Nullable + @JsonDeserialize(using = ReferenceOrAsyncAPISchemaOrStringDeserializer.class) + private Object responseTopic; + + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/v0/_2_0/operation/MQTTOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/v0/_2_0/operation/MQTTOperationBinding.java new file mode 100644 index 00000000..e8b9b57a --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/v0/_2_0/operation/MQTTOperationBinding.java @@ -0,0 +1,87 @@ +package com.asyncapi.bindings.mqtt.v0._2_0.operation; + +import com.asyncapi.schemas.serde.asyncapi.ReferenceOrAsyncAPISchemaOrNumberDeserializer; +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes MQTT operation binding. + *

+ * Contains information about the operation representation in MQTT. + * + * @see MQTT operation binding + * @see MQTT + * @version 0.2.0 + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes MQTT operation binding.") +public class MQTTOperationBinding extends com.asyncapi.bindings.mqtt.MQTTOperationBinding { + + /** + * Defines how hard the broker/client will try to ensure that a message is received. + * Its value MUST be either 0, 1 or 2. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @javax.validation.constraints.Min( + value = 0, + message = "QoS must be greater or equals to 0." + ) + @javax.validation.constraints.Max( + value = 2, + message = "QoS must be lower or equals to 2." + ) + @JsonProperty("qos") + @JsonPropertyDescription("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).") + private Integer qos; + + /** + * Whether the broker should retain the message or not. + *

+ * Applies to: publish, subscribe + */ + @Nullable + @JsonProperty("retain") + @JsonPropertyDescription("Whether the broker should retain the message or not.") + private Boolean retain; + + /** + * Lifetime of the message in seconds. + *

+ * MUST BE: + *

    + *
  • {@link Number}
  • + *
  • {@link com.asyncapi.schemas.asyncapi.Reference}
  • + *
  • {@link com.asyncapi.schemas.asyncapi.AsyncAPISchema}
  • + *
+ */ + @Nullable + @JsonDeserialize(using = ReferenceOrAsyncAPISchemaOrNumberDeserializer.class) + private Object messageExpiryInterval; + + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/v0/_2_0/server/MQTTServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/v0/_2_0/server/MQTTServerBinding.java new file mode 100644 index 00000000..cd924d17 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/v0/_2_0/server/MQTTServerBinding.java @@ -0,0 +1,106 @@ +package com.asyncapi.bindings.mqtt.v0._2_0.server; + +import com.asyncapi.schemas.serde.asyncapi.ReferenceOrAsyncAPISchemaOrNumberDeserializer; +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes MQTT server binding. + *

+ * Contains information about the server representation in MQTT. + * + * @see MQTT server binding + * @see MQTT + * @version 0.2.0 + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes MQTT server binding.") +public class MQTTServerBinding extends com.asyncapi.bindings.mqtt.MQTTServerBinding { + + /** + * The client identifier. + */ + @Nullable + @JsonProperty("clientId") + @JsonPropertyDescription("The client identifier.") + private String clientId; + + /** + * Whether to create a persisten connection or not. When false, the connection will be persistent. + */ + @Nullable + @JsonProperty("cleanSession") + @JsonPropertyDescription("Whether to create a persisten connection or not. When false, the connection will be persistent.") + private Boolean cleanSession; + + /** + * Last Will and Testament configuration. + */ + @Nullable + @JsonProperty("lastWill") + @JsonPropertyDescription("Last Will and Testament configuration.") + private MQTTServerLastWillConfiguration lastWill; + + /** + * Interval in seconds of the longest period of time the broker and the client can endure without sending a message. + */ + @Nullable + @JsonProperty("keepAlive") + @JsonPropertyDescription("Interval in seconds of the longest period of time the broker and the client can endure without sending a message.") + private Integer keepAlive; + + /** + * 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. + *

+ * MUST BE: + *

    + *
  • {@link Number}
  • + *
  • {@link com.asyncapi.schemas.asyncapi.Reference}
  • + *
  • {@link com.asyncapi.schemas.asyncapi.AsyncAPISchema}
  • + *
+ */ + @Nullable + @JsonDeserialize(using = ReferenceOrAsyncAPISchemaOrNumberDeserializer.class) + private Object sessionExpiryInterval; + + /** + * Number of bytes or a Schema Object representing the Maximum Packet Size the Client is willing to accept. + *

+ * MUST BE: + *

    + *
  • {@link Number}
  • + *
  • {@link com.asyncapi.schemas.asyncapi.Reference}
  • + *
  • {@link com.asyncapi.schemas.asyncapi.AsyncAPISchema}
  • + *
+ */ + @Nullable + @JsonDeserialize(using = ReferenceOrAsyncAPISchemaOrNumberDeserializer.class) + private Object maximumPacketSize; + + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/v0/_2_0/server/MQTTServerLastWillConfiguration.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/v0/_2_0/server/MQTTServerLastWillConfiguration.java new file mode 100644 index 00000000..663a226d --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt/v0/_2_0/server/MQTTServerLastWillConfiguration.java @@ -0,0 +1,67 @@ +package com.asyncapi.bindings.mqtt.v0._2_0.server; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes MQTT server last will configuration. + * + * @see MQTT server binding + * @see MQTT + * @version 0.2.0 + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@Data +@EqualsAndHashCode +@NoArgsConstructor +@AllArgsConstructor +public class MQTTServerLastWillConfiguration { + + /** + * The topic where the Last Will and Testament message will be sent. + */ + @Nullable + @JsonProperty("topic") + @JsonPropertyDescription("The topic where the Last Will and Testament message will be sent.") + private String topic; + + /** + * 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. + */ + @Nullable + @javax.validation.constraints.Min( + value = 0, + message = "QoS must be greater or equals to 0." + ) + @javax.validation.constraints.Max( + value = 2, + message = "QoS must be lower or equals to 0." + ) + @JsonProperty("qos") + @JsonPropertyDescription("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.") + private Integer qos; + + /** + * Last Will message. + */ + @Nullable + @JsonProperty("message") + @JsonPropertyDescription("Last Will message.") + private String message; + + /** + * Whether the broker should retain the Last Will and Testament message or not. + */ + @Nullable + @JsonProperty("retain") + @JsonPropertyDescription("Whether the broker should retain the Last Will and Testament message or not.") + private Boolean retain; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/MQTT5ChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/MQTT5ChannelBinding.java new file mode 100644 index 00000000..ebf82916 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/MQTT5ChannelBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.mqtt5; + +import com.asyncapi.bindings.ChannelBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes MQTT 5 channel binding. + * + * @see MQTT 5 channel binding + * @see MQTT 5 + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.mqtt5.v0._2_0.channel.MQTT5ChannelBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.mqtt5.v0._1_0.channel.MQTT5ChannelBinding.class, name = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.mqtt5.v0._2_0.channel.MQTT5ChannelBinding.class, names = { + "0.2.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class MQTT5ChannelBinding extends ChannelBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/MQTT5MessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/MQTT5MessageBinding.java new file mode 100644 index 00000000..c736f290 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/MQTT5MessageBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.mqtt5; + +import com.asyncapi.bindings.MessageBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes MQTT 5 message binding. + * + * @see MQTT 5 message binding + * @see MQTT 5 + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.mqtt5.v0._2_0.message.MQTT5MessageBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.mqtt5.v0._1_0.message.MQTT5MessageBinding.class, name = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.mqtt5.v0._2_0.message.MQTT5MessageBinding.class, names = { + "0.2.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class MQTT5MessageBinding extends MessageBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/MQTT5OperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/MQTT5OperationBinding.java new file mode 100644 index 00000000..27f30812 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/MQTT5OperationBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.mqtt5; + +import com.asyncapi.bindings.OperationBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes MQTT 5 operation binding. + * + * @see MQTT 5 operation binding + * @see MQTT 5 + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.mqtt5.v0._2_0.operation.MQTT5OperationBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.mqtt5.v0._1_0.operation.MQTT5OperationBinding.class, name = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.mqtt5.v0._2_0.operation.MQTT5OperationBinding.class, names = { + "0.2.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class MQTT5OperationBinding extends OperationBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/MQTT5ServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/MQTT5ServerBinding.java new file mode 100644 index 00000000..996cd92f --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/MQTT5ServerBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.mqtt5; + +import com.asyncapi.bindings.ServerBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes MQTT 5 server binding. + * + * @see MQTT 5 server binding + * @see MQTT 5 + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.mqtt5.v0._2_0.server.MQTT5ServerBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.mqtt5.v0._1_0.server.MQTT5ServerBinding.class, name = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.mqtt5.v0._2_0.server.MQTT5ServerBinding.class, names = { + "0.2.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class MQTT5ServerBinding extends ServerBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/package-info.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/package-info.java new file mode 100644 index 00000000..e4f5b8e5 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/package-info.java @@ -0,0 +1,9 @@ +/** + *

Deprecation Warning:

+ *

+ * MQTT version 5 specific bindings are deprecated in favor of MQTT bindings that are not version specific. + * + * @see com.asyncapi.bindings.mqtt + */ +@Deprecated +package com.asyncapi.bindings.mqtt5; \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/v0/_1_0/channel/MQTT5ChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/v0/_1_0/channel/MQTT5ChannelBinding.java new file mode 100644 index 00000000..2fc0e88f --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/v0/_1_0/channel/MQTT5ChannelBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.mqtt5.v0._1_0.channel; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes MQTT 5 channel binding. + * + * @see MQTT 5 channel binding + * @see MQTT 5 + * @version 0.1.0 + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class MQTT5ChannelBinding extends com.asyncapi.bindings.mqtt5.MQTT5ChannelBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/v0/_1_0/message/MQTT5MessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/v0/_1_0/message/MQTT5MessageBinding.java new file mode 100644 index 00000000..9b26057f --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/v0/_1_0/message/MQTT5MessageBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.mqtt5.v0._1_0.message; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes MQTT 5 message binding. + * + * @see MQTT 5 message binding + * @see MQTT 5 + * @version 0.1.0 + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class MQTT5MessageBinding extends com.asyncapi.bindings.mqtt5.MQTT5MessageBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/v0/_1_0/operation/MQTT5OperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/v0/_1_0/operation/MQTT5OperationBinding.java new file mode 100644 index 00000000..0f9f2272 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/v0/_1_0/operation/MQTT5OperationBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.mqtt5.v0._1_0.operation; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes MQTT 5 operation binding. + * + * @see MQTT 5 operation binding + * @see MQTT 5 + * @version 0.1.0 + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class MQTT5OperationBinding extends com.asyncapi.bindings.mqtt5.MQTT5OperationBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/v0/_1_0/server/MQTT5ServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/v0/_1_0/server/MQTT5ServerBinding.java new file mode 100644 index 00000000..4a06cd40 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/v0/_1_0/server/MQTT5ServerBinding.java @@ -0,0 +1,36 @@ +package com.asyncapi.bindings.mqtt5.v0._1_0.server; + +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes MQTT 5 server binding. + * + * @see MQTT 5 server binding + * @see MQTT 5 + * @version 0.1.0 + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class MQTT5ServerBinding extends com.asyncapi.bindings.mqtt5.MQTT5ServerBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/v0/_2_0/channel/MQTT5ChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/v0/_2_0/channel/MQTT5ChannelBinding.java new file mode 100644 index 00000000..97b4eb0f --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/v0/_2_0/channel/MQTT5ChannelBinding.java @@ -0,0 +1,32 @@ +package com.asyncapi.bindings.mqtt5.v0._2_0.channel; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes MQTT 5 channel binding. + * + * @version 0.2.0 + * @see MQTT 5 channel binding + * @author Pavel Bodiachevskii + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class MQTT5ChannelBinding extends com.asyncapi.bindings.mqtt5.MQTT5ChannelBinding { + + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/v0/_2_0/message/MQTT5MessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/v0/_2_0/message/MQTT5MessageBinding.java new file mode 100644 index 00000000..9b5ead5f --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/v0/_2_0/message/MQTT5MessageBinding.java @@ -0,0 +1,32 @@ +package com.asyncapi.bindings.mqtt5.v0._2_0.message; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes MQTT 5 message binding. + * + * @version 0.2.0 + * @see MQTT 5 message binding + * @author Pavel Bodiachevskii + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class MQTT5MessageBinding extends com.asyncapi.bindings.mqtt5.MQTT5MessageBinding { + + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/v0/_2_0/operation/MQTT5OperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/v0/_2_0/operation/MQTT5OperationBinding.java new file mode 100644 index 00000000..77a272db --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/v0/_2_0/operation/MQTT5OperationBinding.java @@ -0,0 +1,32 @@ +package com.asyncapi.bindings.mqtt5.v0._2_0.operation; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes MQTT 5 operation binding. + * + * @version 0.2.0 + * @see MQTT 5 operation binding + * @author Pavel Bodiachevskii + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class MQTT5OperationBinding extends com.asyncapi.bindings.mqtt5.MQTT5OperationBinding { + + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/v0/_2_0/server/MQTT5ServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/v0/_2_0/server/MQTT5ServerBinding.java new file mode 100644 index 00000000..f43c7f09 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/mqtt5/v0/_2_0/server/MQTT5ServerBinding.java @@ -0,0 +1,40 @@ +package com.asyncapi.bindings.mqtt5.v0._2_0.server; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes MQTT 5 server binding. + * + * @version 0.2.0 + * @see MQTT 5 server binding + * @author Pavel Bodiachevskii + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class MQTT5ServerBinding extends com.asyncapi.bindings.mqtt5.MQTT5ServerBinding { + + /** + * TODO: support reference, Schema object + * Session Expiry Interval in seconds or a Schema Object containing the definition of the interval. + */ + private int sessionExpiryInterval; + + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/nats/NATSChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/nats/NATSChannelBinding.java new file mode 100644 index 00000000..63b99770 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/nats/NATSChannelBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.nats; + +import com.asyncapi.bindings.ChannelBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes NATS channel binding. + * + * @see NATS channel binding + * @see NATS + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.nats.v0._1_0.channel.NATSChannelBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.nats.v0._1_0.channel.NATSChannelBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class NATSChannelBinding extends ChannelBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/nats/NATSMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/nats/NATSMessageBinding.java new file mode 100644 index 00000000..6b8bddde --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/nats/NATSMessageBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.nats; + +import com.asyncapi.bindings.MessageBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes NATS message binding. + * + * @see NATS message binding + * @see NATS + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.nats.v0._1_0.message.NATSMessageBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.nats.v0._1_0.message.NATSMessageBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class NATSMessageBinding extends MessageBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/nats/NATSOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/nats/NATSOperationBinding.java new file mode 100644 index 00000000..86bb18f4 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/nats/NATSOperationBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.nats; + +import com.asyncapi.bindings.OperationBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes NATS operation binding. + * + * @see NATS operation binding + * @see NATS + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.nats.v0._1_0.operation.NATSOperationBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.nats.v0._1_0.operation.NATSOperationBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class NATSOperationBinding extends OperationBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/nats/NATSServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/nats/NATSServerBinding.java new file mode 100644 index 00000000..aef81625 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/nats/NATSServerBinding.java @@ -0,0 +1,30 @@ +package com.asyncapi.bindings.nats; + +import com.asyncapi.bindings.ServerBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes NATS channel binding. + * + * @see NATS server binding + * @see NATS + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.nats.v0._1_0.server.NATSServerBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.nats.v0._1_0.server.NATSServerBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class NATSServerBinding extends ServerBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/nats/v0/_1_0/channel/NATSChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/nats/v0/_1_0/channel/NATSChannelBinding.java new file mode 100644 index 00000000..81f06a31 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/nats/v0/_1_0/channel/NATSChannelBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.nats.v0._1_0.channel; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes NATS channel binding. + * + * @see NATS channel binding + * @see NATS + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class NATSChannelBinding extends com.asyncapi.bindings.nats.NATSChannelBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/nats/v0/_1_0/message/NATSMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/nats/v0/_1_0/message/NATSMessageBinding.java new file mode 100644 index 00000000..fcce1b77 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/nats/v0/_1_0/message/NATSMessageBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.nats.v0._1_0.message; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes NATS message binding. + * + * @see NATS message binding + * @see NATS + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class NATSMessageBinding extends com.asyncapi.bindings.nats.NATSMessageBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/nats/v0/_1_0/operation/NATSOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/nats/v0/_1_0/operation/NATSOperationBinding.java new file mode 100644 index 00000000..0f66c03a --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/nats/v0/_1_0/operation/NATSOperationBinding.java @@ -0,0 +1,52 @@ +package com.asyncapi.bindings.nats.v0._1_0.operation; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes NATS operation binding. + * + * @see NATS operation binding + * @see NATS + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes NATS operation binding.") +public class NATSOperationBinding extends com.asyncapi.bindings.nats.NATSOperationBinding { + + /** + * Defines the name of the queue to use. It MUST NOT exceed 255 characters. + */ + @Nullable + @javax.validation.constraints.Size( + max = 255, + message = "Queue name must be lower or equals to 255." + ) + @JsonProperty("queue") + @JsonPropertyDescription("Defines the name of the queue to use. It MUST NOT exceed 255 characters.") + private String queue; + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/nats/v0/_1_0/server/NATSServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/nats/v0/_1_0/server/NATSServerBinding.java new file mode 100644 index 00000000..9a02f33f --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/nats/v0/_1_0/server/NATSServerBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.nats.v0._1_0.server; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes NATS channel binding. + * + * @see NATS server binding + * @see NATS + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class NATSServerBinding extends com.asyncapi.bindings.nats.NATSServerBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/package-info.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/package-info.java new file mode 100644 index 00000000..dd16b3b8 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/package-info.java @@ -0,0 +1,23 @@ +/** + * This module provides bindings to describe protocol-specific things: + *

    + *
  • Channel
  • + *
  • Message
  • + *
  • Operation
  • + *
  • Server
  • + *
+ * + *
+ * A "binding" (or "protocol binding") is a mechanism to define protocol-specific information. + *

+ * Therefore, a protocol binding MUST define protocol-specific information only. + * + * @see AsyncAPI Bindings + * @see AsyncAPI Channel Bindings + * @see AsyncAPI Message Bindings + * @see AsyncAPI Operation Bindings + * @see AsyncAPI Server Bindings + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +package com.asyncapi.bindings; \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/pulsar/PulsarChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/pulsar/PulsarChannelBinding.java new file mode 100644 index 00000000..17c85dd1 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/pulsar/PulsarChannelBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.pulsar; + +import com.asyncapi.bindings.ChannelBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes Pulsar channel binding. + * + * @see Pulsar channel binding + * @see Pulsar + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.pulsar.v0._1_0.channel.PulsarChannelBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.pulsar.v0._1_0.channel.PulsarChannelBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class PulsarChannelBinding extends ChannelBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/pulsar/PulsarMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/pulsar/PulsarMessageBinding.java new file mode 100644 index 00000000..70beb28b --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/pulsar/PulsarMessageBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.pulsar; + +import com.asyncapi.bindings.MessageBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes Pulsar message binding. + * + * @see Pulsar message binding + * @see Pulsar + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.pulsar.v0._1_0.message.PulsarMessageBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.pulsar.v0._1_0.message.PulsarMessageBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class PulsarMessageBinding extends MessageBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/pulsar/PulsarOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/pulsar/PulsarOperationBinding.java new file mode 100644 index 00000000..23fb08c0 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/pulsar/PulsarOperationBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.pulsar; + +import com.asyncapi.bindings.OperationBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes Pulsar operation binding. + * + * @see Pulsar operation binding + * @see Pulsar + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.pulsar.v0._1_0.operation.PulsarOperationBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.pulsar.v0._1_0.operation.PulsarOperationBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class PulsarOperationBinding extends OperationBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/pulsar/PulsarServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/pulsar/PulsarServerBinding.java new file mode 100644 index 00000000..3a000735 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/pulsar/PulsarServerBinding.java @@ -0,0 +1,30 @@ +package com.asyncapi.bindings.pulsar; + +import com.asyncapi.bindings.ServerBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes Pulsar server binding. + * + * @see Redis server binding + * @see Pulsar + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.pulsar.v0._1_0.server.PulsarServerBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.pulsar.v0._1_0.server.PulsarServerBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class PulsarServerBinding extends ServerBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/pulsar/v0/_1_0/channel/PulsarChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/pulsar/v0/_1_0/channel/PulsarChannelBinding.java new file mode 100644 index 00000000..a1533cf3 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/pulsar/v0/_1_0/channel/PulsarChannelBinding.java @@ -0,0 +1,107 @@ +package com.asyncapi.bindings.pulsar.v0._1_0.channel; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +/** + * Describes Pulsar channel binding. + * + * @see Pulsar channel binding + * @see Pulsar + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes Pulsar channel binding.") +public class PulsarChannelBinding extends com.asyncapi.bindings.pulsar.PulsarChannelBinding { + + /** + * The namespace the channel is associated with. + */ + @NotNull + @Builder.Default + @javax.validation.constraints.NotNull + @JsonProperty("namespace") + @JsonPropertyDescription("The namespace the channel is associated with.") + private String namespace = ""; + + /** + * Persistence of the topic in Pulsar. It MUST be either persistent or non-persistent. + */ + @NotNull + @Builder.Default + @javax.validation.constraints.NotNull + @JsonProperty(value = "persistence", defaultValue = "persistent") + @JsonPropertyDescription("Persistence of the topic in Pulsar. It MUST be either persistent or non-persistent.") + private PulsarChannelPersistence persistence = PulsarChannelPersistence.PERSISTENT; + + /** + * Topic compaction threshold given in Megabytes. + */ + @Nullable + @javax.validation.constraints.Min( + value = 0, + message = "Topic compaction threshold must be greater or equals to 0." + ) + @JsonProperty("compaction") + @JsonPropertyDescription("Topic compaction threshold given in Megabytes.") + private Integer compaction; + + /** + * A list of clusters the topic is replicated to. + */ + @Nullable + @JsonProperty("geo-replication") + @JsonPropertyDescription("A list of clusters the topic is replicated to.") + private List geoReplication; + + /** + * Topic retention policy. + */ + @Nullable + @JsonProperty("retention") + @JsonPropertyDescription("Topic retention policy.") + private PulsarChannelRetentionDefinition retention; + + /** + * Message time-to-live in seconds. + */ + @Nullable + @JsonProperty("ttl") + @JsonPropertyDescription("Message time-to-live in seconds.") + private Integer ttl; + + /** + * Message deduplication. When true, it ensures that each message produced on Pulsar topics is persisted to disk only once. + */ + @Nullable + @JsonProperty("deduplication") + @JsonPropertyDescription("Message deduplication. When true, it ensures that each message produced on Pulsar topics is persisted to disk only once.") + private Boolean deduplication; + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/pulsar/v0/_1_0/channel/PulsarChannelPersistence.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/pulsar/v0/_1_0/channel/PulsarChannelPersistence.java new file mode 100644 index 00000000..ed7ccaef --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/pulsar/v0/_1_0/channel/PulsarChannelPersistence.java @@ -0,0 +1,24 @@ +package com.asyncapi.bindings.pulsar.v0._1_0.channel; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Describes Pulsar channel persistence. + * + * @see Pulsar channel binding + * @see Pulsar + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@JsonClassDescription("Describes Pulsar channel persistence.") +public enum PulsarChannelPersistence { + + @JsonProperty("persistent") + PERSISTENT, + + @JsonProperty("non-persistent") + NON_PERSISTENT + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/pulsar/v0/_1_0/channel/PulsarChannelRetentionDefinition.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/pulsar/v0/_1_0/channel/PulsarChannelRetentionDefinition.java new file mode 100644 index 00000000..f78cca24 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/pulsar/v0/_1_0/channel/PulsarChannelRetentionDefinition.java @@ -0,0 +1,50 @@ +package com.asyncapi.bindings.pulsar.v0._1_0.channel; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Pulsar channel retention definition. + *

+ * The Retention Definition Object is used to describe the Pulsar Retention policy. + * + * @see Pulsar channel binding + * @see Pulsar + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode +@JsonClassDescription("Describes Pulsar channel retention definition.") +public class PulsarChannelRetentionDefinition { + + /** + * Time given in Minutes. + */ + @Nullable + @Builder.Default + @JsonProperty("time") + @JsonPropertyDescription("Time given in Minutes.") + private Integer time = 0; + + /** + * Size given in MegaBytes. + */ + @Nullable + @Builder.Default + @JsonProperty("size") + @JsonPropertyDescription("Size given in MegaBytes.") + private Integer size = 0; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/pulsar/v0/_1_0/message/PulsarMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/pulsar/v0/_1_0/message/PulsarMessageBinding.java new file mode 100644 index 00000000..ec3970f5 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/pulsar/v0/_1_0/message/PulsarMessageBinding.java @@ -0,0 +1,36 @@ +package com.asyncapi.bindings.pulsar.v0._1_0.message; + +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Pulsar message binding. + *

+ * This object MUST NOT contain any properties. Its name is reserved for future use. + * + * @see Pulsar message binding + * @see Pulsar + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class PulsarMessageBinding extends com.asyncapi.bindings.pulsar.PulsarMessageBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/pulsar/v0/_1_0/operation/PulsarOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/pulsar/v0/_1_0/operation/PulsarOperationBinding.java new file mode 100644 index 00000000..474b3266 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/pulsar/v0/_1_0/operation/PulsarOperationBinding.java @@ -0,0 +1,36 @@ +package com.asyncapi.bindings.pulsar.v0._1_0.operation; + +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Pulsar operation binding. + *

+ * This object MUST NOT contain any properties. Its name is reserved for future use. + * + * @see Pulsar operation binding + * @see Pulsar + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class PulsarOperationBinding extends com.asyncapi.bindings.pulsar.PulsarOperationBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/pulsar/v0/_1_0/server/PulsarServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/pulsar/v0/_1_0/server/PulsarServerBinding.java new file mode 100644 index 00000000..35f78494 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/pulsar/v0/_1_0/server/PulsarServerBinding.java @@ -0,0 +1,49 @@ +package com.asyncapi.bindings.pulsar.v0._1_0.server; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Pulsar server binding. + * + * @see Redis server binding + * @see Pulsar + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes Pulsar server binding.") +public class PulsarServerBinding extends com.asyncapi.bindings.pulsar.PulsarServerBinding { + + /** + * The pulsar tenant. If omitted, "public" MUST be assumed. + */ + @Nullable + @Builder.Default + @JsonProperty(value = "tenant", defaultValue = "public") + @JsonPropertyDescription("The pulsar tenant. If omitted, \"public\" MUST be assumed.") + private String tenant = "public"; + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/redis/RedisChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/redis/RedisChannelBinding.java new file mode 100644 index 00000000..fda5fa6d --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/redis/RedisChannelBinding.java @@ -0,0 +1,33 @@ +package com.asyncapi.bindings.redis; + +import com.asyncapi.bindings.ChannelBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Describes Redis channel binding. + * + * @see Redis channel binding + * @see Redis + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.redis.v0._1_0.channel.RedisChannelBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.redis.v0._1_0.channel.RedisChannelBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@Data +@EqualsAndHashCode(callSuper = true) +public abstract class RedisChannelBinding extends ChannelBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/redis/RedisMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/redis/RedisMessageBinding.java new file mode 100644 index 00000000..7f74c770 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/redis/RedisMessageBinding.java @@ -0,0 +1,33 @@ +package com.asyncapi.bindings.redis; + +import com.asyncapi.bindings.MessageBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Describes Redis message binding. + * + * @see Redis message binding + * @see Redis + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.redis.v0._1_0.message.RedisMessageBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.redis.v0._1_0.message.RedisMessageBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@Data +@EqualsAndHashCode(callSuper = true) +public abstract class RedisMessageBinding extends MessageBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/redis/RedisOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/redis/RedisOperationBinding.java new file mode 100644 index 00000000..17a931e9 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/redis/RedisOperationBinding.java @@ -0,0 +1,33 @@ +package com.asyncapi.bindings.redis; + +import com.asyncapi.bindings.OperationBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Describes Redis operation binding. + * + * @see Redis operation binding + * @see Redis + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.redis.v0._1_0.operation.RedisOperationBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.redis.v0._1_0.operation.RedisOperationBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@Data +@EqualsAndHashCode(callSuper = true) +public abstract class RedisOperationBinding extends OperationBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/redis/RedisServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/redis/RedisServerBinding.java new file mode 100644 index 00000000..30a12f83 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/redis/RedisServerBinding.java @@ -0,0 +1,32 @@ +package com.asyncapi.bindings.redis; + +import com.asyncapi.bindings.ServerBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Describes Redis server binding. + * + * @see Redis server binding + * @see Redis + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.redis.v0._1_0.server.RedisServerBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.redis.v0._1_0.server.RedisServerBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@Data +@EqualsAndHashCode(callSuper = true) +public abstract class RedisServerBinding extends ServerBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/redis/v0/_1_0/channel/RedisChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/redis/v0/_1_0/channel/RedisChannelBinding.java new file mode 100644 index 00000000..3d7c7328 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/redis/v0/_1_0/channel/RedisChannelBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.redis.v0._1_0.channel; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes Redis channel binding. + * + * @see Redis channel binding + * @see Redis + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class RedisChannelBinding extends com.asyncapi.bindings.redis.RedisChannelBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/redis/v0/_1_0/message/RedisMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/redis/v0/_1_0/message/RedisMessageBinding.java new file mode 100644 index 00000000..96a89988 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/redis/v0/_1_0/message/RedisMessageBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.redis.v0._1_0.message; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes Redis message binding. + * + * @see Redis message binding + * @see Redis + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class RedisMessageBinding extends com.asyncapi.bindings.redis.RedisMessageBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/redis/v0/_1_0/operation/RedisOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/redis/v0/_1_0/operation/RedisOperationBinding.java new file mode 100644 index 00000000..e3473df4 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/redis/v0/_1_0/operation/RedisOperationBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.redis.v0._1_0.operation; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes Redis operation binding. + * + * @see Redis operation binding + * @see Redis + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class RedisOperationBinding extends com.asyncapi.bindings.redis.RedisOperationBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/redis/v0/_1_0/server/RedisServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/redis/v0/_1_0/server/RedisServerBinding.java new file mode 100644 index 00000000..f9ef480d --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/redis/v0/_1_0/server/RedisServerBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.redis.v0._1_0.server; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes Redis server binding. + * + * @see Redis server binding + * @see Redis + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class RedisServerBinding extends com.asyncapi.bindings.redis.RedisServerBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/SNSChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/SNSChannelBinding.java new file mode 100644 index 00000000..034cfd33 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/SNSChannelBinding.java @@ -0,0 +1,32 @@ +package com.asyncapi.bindings.sns; + +import com.asyncapi.bindings.ChannelBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Describes SNS channel binding. + * + * @see SNS channel binding + * @see Amazon SNS + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.sns.v0._1_0.channel.SNSChannelBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.sns.v0._1_0.channel.SNSChannelBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@Data +@EqualsAndHashCode(callSuper = true) +public abstract class SNSChannelBinding extends ChannelBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/SNSMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/SNSMessageBinding.java new file mode 100644 index 00000000..46e20bd3 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/SNSMessageBinding.java @@ -0,0 +1,32 @@ +package com.asyncapi.bindings.sns; + +import com.asyncapi.bindings.MessageBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Describes SNS message binding. + * + * @see SNS message binding + * @see Amazon SNS + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.sns.v0._1_0.message.SNSMessageBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.sns.v0._1_0.message.SNSMessageBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@Data +@EqualsAndHashCode(callSuper = true) +public abstract class SNSMessageBinding extends MessageBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/SNSOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/SNSOperationBinding.java new file mode 100644 index 00000000..d71cb850 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/SNSOperationBinding.java @@ -0,0 +1,32 @@ +package com.asyncapi.bindings.sns; + +import com.asyncapi.bindings.OperationBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Describes SNS operation binding. + * + * @see SNS operation binding + * @see Amazon SNS + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.sns.v0._1_0.operation.SNSOperationBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.sns.v0._1_0.operation.SNSOperationBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@Data +@EqualsAndHashCode(callSuper = true) +public abstract class SNSOperationBinding extends OperationBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/SNSServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/SNSServerBinding.java new file mode 100644 index 00000000..bba5de47 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/SNSServerBinding.java @@ -0,0 +1,32 @@ +package com.asyncapi.bindings.sns; + +import com.asyncapi.bindings.ServerBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Describes SNS server binding. + * + * @see SNS server binding + * @see Amazon SNS + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.sns.v0._1_0.server.SNSServerBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.sns.v0._1_0.server.SNSServerBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@Data +@EqualsAndHashCode(callSuper = true) +public abstract class SNSServerBinding extends ServerBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/channel/SNSChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/channel/SNSChannelBinding.java new file mode 100644 index 00000000..07c428e6 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/channel/SNSChannelBinding.java @@ -0,0 +1,66 @@ +package com.asyncapi.bindings.sns.v0._1_0.channel; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Map; + +/** + * Describes SNS channel binding. + * + * @see SNS channel binding + * @see Amazon SNS + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SNSChannelBinding extends com.asyncapi.bindings.sns.SNSChannelBinding { + + /** + * The name of the topic. + *

+ * Can be different from the channel name to allow flexibility around AWS resource naming limitations. + */ + @NotNull + @Builder.Default + private String name = ""; + + /** + * This field allows configuration of a FIFO SNS Topic. + */ + @Nullable + private SNSChannelOrdering ordering; + + /** + * + */ + @Nullable + private SNSChannelPolicy policy; + + /** + * Key-value pairs that represent AWS tags on the topic. + */ + @Nullable + private Map tags; + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/channel/SNSChannelOrdering.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/channel/SNSChannelOrdering.java new file mode 100644 index 00000000..5e3ca991 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/channel/SNSChannelOrdering.java @@ -0,0 +1,37 @@ +package com.asyncapi.bindings.sns.v0._1_0.channel; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * By default, we assume an unordered SNS topic. This field allows configuration of a FIFO SNS Topic. + * + * @see SNS channel binding + * @see Amazon SNS + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SNSChannelOrdering { + + /** + * Defines the type of SNS Topic. + */ + @NotNull + private SNSChannelOrderingType type; + + /** + * True to turn on de-duplication of messages for a channel. + */ + @Nullable + private Boolean contentBasedDeduplication; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/channel/SNSChannelOrderingType.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/channel/SNSChannelOrderingType.java new file mode 100644 index 00000000..5894f190 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/channel/SNSChannelOrderingType.java @@ -0,0 +1,22 @@ +package com.asyncapi.bindings.sns.v0._1_0.channel; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Defines the type of SNS Topic. + * + * @see SNS channel binding + * @see Amazon SNS + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +public enum SNSChannelOrderingType { + + @JsonProperty("standard") + STANDARD, + + @JsonProperty("FIFO") + FIFO + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/channel/SNSChannelPolicy.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/channel/SNSChannelPolicy.java new file mode 100644 index 00000000..2fd1d102 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/channel/SNSChannelPolicy.java @@ -0,0 +1,33 @@ +package com.asyncapi.bindings.sns.v0._1_0.channel; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; + +import java.util.Collections; +import java.util.List; + +/** + * The security policy for the SNS Topic. + * + * @see SNS channel binding + * @see Amazon SNS + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SNSChannelPolicy { + + /** + * An array of statement objects, each of which controls a permission for this topic + */ + @NotNull + private List<@NotNull SNSChannelPolicyStatement> statements = Collections.emptyList(); + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/channel/SNSChannelPolicyStatement.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/channel/SNSChannelPolicyStatement.java new file mode 100644 index 00000000..4dd29012 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/channel/SNSChannelPolicyStatement.java @@ -0,0 +1,42 @@ +package com.asyncapi.bindings.sns.v0._1_0.channel; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; + +/** + * The security policy for the SNS Topic. + * + * @see SNS channel binding + * @see Amazon SNS + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SNSChannelPolicyStatement { + + /** + * The SNS rule to allow or deny actions. + */ + @NotNull + private SNSChannelPolicyStatementEffect effect; + + /** + * The AWS account or resource ARN that this statement applies to. + */ + @NotNull + private Object principal; + + /** + * The SNS permission being allowed or denied e.g. sns:Publish. + */ + @NotNull + private Object action; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/channel/SNSChannelPolicyStatementEffect.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/channel/SNSChannelPolicyStatementEffect.java new file mode 100644 index 00000000..8eea245b --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/channel/SNSChannelPolicyStatementEffect.java @@ -0,0 +1,22 @@ +package com.asyncapi.bindings.sns.v0._1_0.channel; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * The security policy effect for the SNS Topic. + * + * @see SNS channel binding + * @see Amazon SNS + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +public enum SNSChannelPolicyStatementEffect { + + @JsonProperty("Allow") + ALLOW, + + @JsonProperty("Deny") + DENY + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/message/SNSMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/message/SNSMessageBinding.java new file mode 100644 index 00000000..6e49fe31 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/message/SNSMessageBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.sns.v0._1_0.message; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes SNS message binding. + * + * @see SNS message binding + * @see Amazon SNS + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SNSMessageBinding extends com.asyncapi.bindings.sns.SNSMessageBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/operation/SNSOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/operation/SNSOperationBinding.java new file mode 100644 index 00000000..a7784f7a --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/operation/SNSOperationBinding.java @@ -0,0 +1,62 @@ +package com.asyncapi.bindings.sns.v0._1_0.operation; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Collections; +import java.util.List; + +/** + * Describes SNS operation binding. + * + * @see SNS operation binding + * @see Amazon SNS + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SNSOperationBinding extends com.asyncapi.bindings.sns.SNSOperationBinding { + + /** + * 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. + */ + @Nullable + private SNSOperationDestinationIdentifier topic; + + /** + * The protocols that listen to this topic and their endpoints. + */ + @NotNull + @Builder.Default + @javax.validation.constraints.Size(min = 1) + private List<@NotNull SNSOperationConsumer> consumers = Collections.emptyList(); + + /** + * 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. + */ + @Nullable + private Object deliveryPolicy; + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/operation/SNSOperationConsumer.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/operation/SNSOperationConsumer.java new file mode 100644 index 00000000..a2a7e5be --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/operation/SNSOperationConsumer.java @@ -0,0 +1,87 @@ +package com.asyncapi.bindings.sns.v0._1_0.operation; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * Describes SNS operation topic consumer. + * + * @see SNS operation binding + * @see Amazon SNS + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SNSOperationConsumer { + + /** + * The protocol that this endpoint receives messages by. + */ + @NotNull + private SNSOperationConsumerProtocol protocol; + + /** + * The endpoint messages are delivered to. + */ + @NotNull + private SNSOperationDestinationIdentifier endpoint; + + /** + * 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. + *

+ * Possible variants: + *

    + *
  • List<String>
  • + *
  • String
  • + *
  • Object
  • + *
+ */ + @Nullable + private Object filterPolicy; + + /** + * Determines whether the FilterPolicy applies to MessageAttributes or MessageBody. + */ + @Nullable + @Builder.Default + private SNSOperationConsumerFilterPolicyScope filterPolicyScope = SNSOperationConsumerFilterPolicyScope.MESSAGE_ATTRIBUTES; + + /** + * 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. + */ + @NotNull + private Boolean rawMessageDelivery; + + /** + * Prevent poison pill messages by moving un-processable messages to an SQS dead letter queue. + */ + @Nullable + private SNSOperationConsumerRedrivePolicy redrivePolicy; + + /** + * Policy for retries to HTTP. The parameter is for that SNS Subscription and overrides any policy on the SNS Topic. + */ + @Nullable + private SNSOperationConsumerDeliveryPolicy deliveryPolicy; + + /** + * The display name to use with an SNS subscription + */ + @Nullable + private String displayName; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/operation/SNSOperationConsumerDeliveryPolicy.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/operation/SNSOperationConsumerDeliveryPolicy.java new file mode 100644 index 00000000..4853fe22 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/operation/SNSOperationConsumerDeliveryPolicy.java @@ -0,0 +1,72 @@ +package com.asyncapi.bindings.sns.v0._1_0.operation; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes SNS operation delivery policy. + * + * @see SNS operation binding + * @see Amazon SNS + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SNSOperationConsumerDeliveryPolicy { + + /** + * The minimum delay for a retry in seconds. + */ + @Nullable + private Integer minDelayTarget; + + /** + * The maximum delay for a retry in seconds. + */ + @Nullable + private Integer maxDelayTarget; + + /** + * The total number of retries, including immediate, pre-backoff, backoff, and post-backoff retries. + */ + @Nullable + private Integer numRetries; + + /** + * The number of immediate retries (with no delay). + */ + @Nullable + private Integer numNoDelayRetries; + + /** + * The number of immediate retries (with delay). + */ + @Nullable + private Integer numMinDelayRetries; + + /** + * The number of post-backoff phase retries, with the maximum delay between retries. + */ + @Nullable + private Integer numMaxDelayRetries; + + /** + * The algorithm for backoff between retries. + */ + @Nullable + private SNSOperationConsumerDeliveryPolicyBackoffFunction backoffFunction; + + /** + * The maximum number of deliveries per second, per subscription. + */ + @Nullable + private Integer maxReceivesPerSecond; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/operation/SNSOperationConsumerDeliveryPolicyBackoffFunction.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/operation/SNSOperationConsumerDeliveryPolicyBackoffFunction.java new file mode 100644 index 00000000..b82fc61a --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/operation/SNSOperationConsumerDeliveryPolicyBackoffFunction.java @@ -0,0 +1,28 @@ +package com.asyncapi.bindings.sns.v0._1_0.operation; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Describes SNS operation delivery policy backoff function. + * + * @see SNS operation binding + * @see Amazon SNS + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +public enum SNSOperationConsumerDeliveryPolicyBackoffFunction { + + @JsonProperty("arithmetic") + ARITHMETIC, + + @JsonProperty("exponential") + EXPONENTIAL, + + @JsonProperty("geometric") + GEOMETRIC, + + @JsonProperty("linear") + LINEAR + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/operation/SNSOperationConsumerFilterPolicyScope.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/operation/SNSOperationConsumerFilterPolicyScope.java new file mode 100644 index 00000000..011c7d4a --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/operation/SNSOperationConsumerFilterPolicyScope.java @@ -0,0 +1,22 @@ +package com.asyncapi.bindings.sns.v0._1_0.operation; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Describes SNS consumer filter policy scope. + * + * @see SNS operation binding + * @see Amazon SNS + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +public enum SNSOperationConsumerFilterPolicyScope { + + @JsonProperty("MessageAttributes") + MESSAGE_ATTRIBUTES, + + @JsonProperty("MessageBody") + MESSAGE_BODY + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/operation/SNSOperationConsumerProtocol.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/operation/SNSOperationConsumerProtocol.java new file mode 100644 index 00000000..98dbb8de --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/operation/SNSOperationConsumerProtocol.java @@ -0,0 +1,43 @@ +package com.asyncapi.bindings.sns.v0._1_0.operation; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Describes SNS consumer protocol. + * + * @see SNS operation binding + * @see Amazon SNS + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +public enum SNSOperationConsumerProtocol { + + @JsonProperty("http") + HTTP, + + @JsonProperty("https") + HTTPS, + + @JsonProperty("email") + EMAIL, + + @JsonProperty("email-json") + EMAIL_JSON, + + @JsonProperty("sms") + SMS, + + @JsonProperty("sqs") + SQS, + + @JsonProperty("application") + APPLICATION, + + @JsonProperty("lambda") + LAMBDA, + + @JsonProperty("firehose") + FIREHOSE + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/operation/SNSOperationConsumerRedrivePolicy.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/operation/SNSOperationConsumerRedrivePolicy.java new file mode 100644 index 00000000..5bcaaec7 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/operation/SNSOperationConsumerRedrivePolicy.java @@ -0,0 +1,40 @@ +package com.asyncapi.bindings.sns.v0._1_0.operation; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * Describes SNS operation consumer redrive policy. + *

+ * Prevent poison pill messages by moving un-processable messages to an SQS dead letter queue. + * + * @see SNS operation binding + * @see Amazon SNS + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SNSOperationConsumerRedrivePolicy { + + /** + * The SQS queue to use as a dead letter queue (DLQ). + */ + @NotNull + private SNSOperationDestinationIdentifier deadLetterQueue; + + /** + * The number of times a message is delivered to the source queue before being moved to the dead-letter queue. + */ + @Nullable + @Builder.Default + private Integer maxReceiveCount = 10; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/operation/SNSOperationDestinationIdentifier.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/operation/SNSOperationDestinationIdentifier.java new file mode 100644 index 00000000..28ce0f44 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/operation/SNSOperationDestinationIdentifier.java @@ -0,0 +1,61 @@ +package com.asyncapi.bindings.sns.v0._1_0.operation; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes SNS operation destination identifier. + * + * @see SNS operation binding + * @see Amazon SNS + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SNSOperationDestinationIdentifier { + + /** + * The endpoint is a URL. + */ + @Nullable + private String url; + + /** + * The endpoint is an email address. + */ + @Nullable + private String email; + + /** + * The endpoint is a phone number. + */ + @Nullable + private String phone; + + /** + * 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} + */ + @Nullable + private String arn; + + /** + * 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. + */ + @Nullable + private String name; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/server/SNSServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/server/SNSServerBinding.java new file mode 100644 index 00000000..35273fc5 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sns/v0/_1_0/server/SNSServerBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.sns.v0._1_0.server; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes SNS server binding. + * + * @see SNS server binding + * @see Amazon SNS + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SNSServerBinding extends com.asyncapi.bindings.sns.SNSServerBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/SolaceChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/SolaceChannelBinding.java new file mode 100644 index 00000000..d56d8e61 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/SolaceChannelBinding.java @@ -0,0 +1,35 @@ +package com.asyncapi.bindings.solace; + +import com.asyncapi.bindings.ChannelBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Describes Solace channel binding. + * + * @see Solace channel binding + * @see Solace + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.solace.v0._4_0.channel.SolaceChannelBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.solace.v0._1_0.channel.SolaceChannelBinding.class, names = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.solace.v0._2_0.channel.SolaceChannelBinding.class, names = "0.2.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.solace.v0._3_0.channel.SolaceChannelBinding.class, names = "0.3.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.solace.v0._4_0.channel.SolaceChannelBinding.class, names = { + "0.4.0", + "latest" + }), +}) +@Data +@EqualsAndHashCode(callSuper = true) +public abstract class SolaceChannelBinding extends ChannelBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/SolaceMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/SolaceMessageBinding.java new file mode 100644 index 00000000..b7c472fb --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/SolaceMessageBinding.java @@ -0,0 +1,35 @@ +package com.asyncapi.bindings.solace; + +import com.asyncapi.bindings.MessageBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Describes Solace message binding. + * + * @see Solace message binding + * @see Solace + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.solace.v0._4_0.message.SolaceMessageBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.solace.v0._1_0.message.SolaceMessageBinding.class, names = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.solace.v0._2_0.message.SolaceMessageBinding.class, names = "0.2.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.solace.v0._3_0.message.SolaceMessageBinding.class, names = "0.3.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.solace.v0._4_0.message.SolaceMessageBinding.class, names = { + "0.4.0", + "latest" + }), +}) +@Data +@EqualsAndHashCode(callSuper = true) +public abstract class SolaceMessageBinding extends MessageBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/SolaceOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/SolaceOperationBinding.java new file mode 100644 index 00000000..589b1b69 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/SolaceOperationBinding.java @@ -0,0 +1,35 @@ +package com.asyncapi.bindings.solace; + +import com.asyncapi.bindings.OperationBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Describes Solace operation binding. + * + * @see Solace operation binding + * @see Solace + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.solace.v0._4_0.operation.SolaceOperationBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.solace.v0._1_0.operation.SolaceOperationBinding.class, names = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.solace.v0._2_0.operation.SolaceOperationBinding.class, names = "0.2.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.solace.v0._3_0.operation.SolaceOperationBinding.class, names = "0.3.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.solace.v0._4_0.operation.SolaceOperationBinding.class, names = { + "0.4.0", + "latest" + }), +}) +@Data +@EqualsAndHashCode(callSuper = true) +public abstract class SolaceOperationBinding extends OperationBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/SolaceServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/SolaceServerBinding.java new file mode 100644 index 00000000..fa1807b9 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/SolaceServerBinding.java @@ -0,0 +1,35 @@ +package com.asyncapi.bindings.solace; + +import com.asyncapi.bindings.ServerBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Describes Solace server binding. + * + * @see Solace server binding + * @see Solace + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.solace.v0._4_0.server.SolaceServerBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.solace.v0._1_0.server.SolaceServerBinding.class, names = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.solace.v0._2_0.server.SolaceServerBinding.class, names = "0.2.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.solace.v0._3_0.server.SolaceServerBinding.class, names = "0.3.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.solace.v0._4_0.server.SolaceServerBinding.class, names = { + "0.4.0", + "latest" + }), +}) +@Data +@EqualsAndHashCode(callSuper = true) +public abstract class SolaceServerBinding extends ServerBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_1_0/channel/SolaceChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_1_0/channel/SolaceChannelBinding.java new file mode 100644 index 00000000..48db408f --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_1_0/channel/SolaceChannelBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.solace.v0._1_0.channel; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes Solace channel binding. + * + * @see Solace channel binding + * @see Solace + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SolaceChannelBinding extends com.asyncapi.bindings.solace.SolaceChannelBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_1_0/message/SolaceMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_1_0/message/SolaceMessageBinding.java new file mode 100644 index 00000000..03dc9081 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_1_0/message/SolaceMessageBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.solace.v0._1_0.message; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes Solace message binding. + * + * @see Solace message binding + * @see Solace + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SolaceMessageBinding extends com.asyncapi.bindings.solace.SolaceMessageBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_1_0/operation/SolaceOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_1_0/operation/SolaceOperationBinding.java new file mode 100644 index 00000000..6d85387c --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_1_0/operation/SolaceOperationBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.solace.v0._1_0.operation; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Solace operation binding. + *

+ * Contains information about the operation representation in Solace PubSub+ Broker. + * + * @see Solace operation binding + * @see Solace + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SolaceOperationBinding extends com.asyncapi.bindings.solace.SolaceOperationBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_1_0/server/SolaceServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_1_0/server/SolaceServerBinding.java new file mode 100644 index 00000000..7c1ea9b0 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_1_0/server/SolaceServerBinding.java @@ -0,0 +1,32 @@ +package com.asyncapi.bindings.solace.v0._1_0.server; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Solace server binding. + * + * @see Solace server binding + * @see Solace + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SolaceServerBinding extends com.asyncapi.bindings.solace.SolaceServerBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_2_0/channel/SolaceChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_2_0/channel/SolaceChannelBinding.java new file mode 100644 index 00000000..c45dfb13 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_2_0/channel/SolaceChannelBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.solace.v0._2_0.channel; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes Solace channel binding. + * + * @see Solace channel binding + * @see Solace + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SolaceChannelBinding extends com.asyncapi.bindings.solace.SolaceChannelBinding { + + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_2_0/message/SolaceMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_2_0/message/SolaceMessageBinding.java new file mode 100644 index 00000000..966ed6b7 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_2_0/message/SolaceMessageBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.solace.v0._2_0.message; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes Solace message binding. + * + * @see Solace message binding + * @see Solace + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SolaceMessageBinding extends com.asyncapi.bindings.solace.SolaceMessageBinding { + + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_2_0/operation/SolaceOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_2_0/operation/SolaceOperationBinding.java new file mode 100644 index 00000000..d289c976 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_2_0/operation/SolaceOperationBinding.java @@ -0,0 +1,52 @@ +package com.asyncapi.bindings.solace.v0._2_0.operation; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +/** + * Describes Solace operation binding. + *

+ * Contains information about the operation representation in Solace PubSub+ Broker. + * + * @see Solace operation binding + * @see Solace + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes Solace operation binding.") +public class SolaceOperationBinding extends com.asyncapi.bindings.solace.SolaceOperationBinding { + + /** + * List of destinations + */ + @Nullable + @JsonProperty("destinations") + @JsonPropertyDescription("List of destinations") + private List destinations; + + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_2_0/operation/SolaceOperationDestination.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_2_0/operation/SolaceOperationDestination.java new file mode 100644 index 00000000..7065310b --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_2_0/operation/SolaceOperationDestination.java @@ -0,0 +1,86 @@ +package com.asyncapi.bindings.solace.v0._2_0.operation; + +import com.asyncapi.bindings.solace.v0._2_0.operation.queue.SolaceOperationQueue; +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +/** + * Describes Solace destination. + *

+ * Contains information about the destination in Solace PubSub+ Broker. + * + * @see Solace operation binding + * @see Solace + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@JsonClassDescription("Describes Solace destination.") +public class SolaceOperationDestination { + + /** + * 'queue' or 'topic'. If the type is queue, then the subscriber can bind to the queue, which in turn will + * subscribe to the topic as represented by the channel name or to the provided topicSubscriptions. + */ + @Nullable + @JsonProperty("destinationType") + @JsonPropertyDescription("'queue' or 'topic'. If the type is queue, then the subscriber can bind to the queue, which in turn will subscribe to the topic as represented by the channel name or to the provided topicSubscriptions.") + private Type destinationType; + + /** + * 'direct' or 'persistent'. This determines the quality of service for publishing messages as documented here. + * Default is 'persistent'. + */ + @Nullable + @Builder.Default + @JsonProperty(value = "deliveryMode", defaultValue = "persistent") + @JsonPropertyDescription("'direct' or 'persistent'. This determines the quality of service for publishing messages as documented at https://docs.solace.com/Get-Started/Core-Concepts-Message-Delivery-Modes.htm. Default is 'persistent'.") + private DeliveryMode deliveryMode = DeliveryMode.PERSISTENT; + + /** + * Solace queue destination details. + */ + @Nullable + @JsonProperty("queue") + @JsonPropertyDescription("Solace queue destination details.") + private SolaceOperationQueue queue; + + /** + * The list of topics that the client subscribes to. + */ + @Nullable + @JsonProperty("topicSubscriptions") + @JsonPropertyDescription("The list of topics that the client subscribes to.") + private List topicSubscriptions; + + public enum Type { + + @JsonProperty("queue") + QUEUE, + @JsonProperty("topic") + TOPIC + + } + + public enum DeliveryMode { + + @JsonProperty("direct") + DIRECT, + @JsonProperty("persistent") + PERSISTENT + + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_2_0/operation/queue/SolaceOperationQueue.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_2_0/operation/queue/SolaceOperationQueue.java new file mode 100644 index 00000000..62bc9db4 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_2_0/operation/queue/SolaceOperationQueue.java @@ -0,0 +1,66 @@ +package com.asyncapi.bindings.solace.v0._2_0.operation.queue; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +/** + * Describes Solace queue. + *

+ * Contains information about the queue in Solace PubSub+ Broker. + * + * @see Solace operation binding + * @see Solace + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@JsonClassDescription("Describes Solace queue.") +public class SolaceOperationQueue { + + /** + * The name of the queue, only applicable when destinationType is 'queue'. + */ + @Nullable + @JsonProperty("name") + @JsonPropertyDescription("The name of the queue, only applicable when destinationType is 'queue'.") + private String name; + + /** + * A list of topics that the queue subscribes to, only applicable when destinationType is 'queue'. + * If none is given, the queue subscribes to the topic as represented by the channel name. + */ + @Nullable + @JsonProperty("topicSubscriptions") + @JsonPropertyDescription("A list of topics that the queue subscribes to, only applicable when destinationType is 'queue'. If none is given, the queue subscribes to the topic as represented by the channel name.") + private List topicSubscriptions; + + /** + * 'exclusive' or 'nonexclusive'. This is documented here. Only applicable when destinationType is 'queue'. + */ + @Nullable + @JsonProperty("accessType") + @JsonPropertyDescription("'exclusive' or 'nonexclusive'. This is documented at https://docs.solace.com/Messaging/Guaranteed-Msg/Endpoints.htm#Queues. Only applicable when destinationType is 'queue'.") + private AccessType accessType; + + public enum AccessType { + + @JsonProperty("exclusive") + EXCLUSIVE, + @JsonProperty("non-exclusive") + NON_EXCLUSIVE + + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_2_0/server/SolaceServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_2_0/server/SolaceServerBinding.java new file mode 100644 index 00000000..a340d3b0 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_2_0/server/SolaceServerBinding.java @@ -0,0 +1,48 @@ +package com.asyncapi.bindings.solace.v0._2_0.server; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Solace server binding. + * + * @see Solace server binding + * @see Solace + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SolaceServerBinding extends com.asyncapi.bindings.solace.SolaceServerBinding { + + /** + * Message VPN of the Solace Broker + *

+ * e.g. msgVpn: solace-broker-msg-vpn + */ + @Nullable + @JsonProperty("msgVpn") + @JsonPropertyDescription("Message VPN of the Solace Broker") + private String msgVpn; + + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_3_0/channel/SolaceChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_3_0/channel/SolaceChannelBinding.java new file mode 100644 index 00000000..0572ea93 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_3_0/channel/SolaceChannelBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.solace.v0._3_0.channel; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes Solace channel binding. + * + * @see Solace channel binding + * @see Solace + * @author Dennis Brinley, Pavel Bodiachevskii + * @version 0.3.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SolaceChannelBinding extends com.asyncapi.bindings.solace.SolaceChannelBinding { + + @Override + public String getBindingVersion() { + return "0.3.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.3.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_3_0/message/SolaceMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_3_0/message/SolaceMessageBinding.java new file mode 100644 index 00000000..5ee6a36c --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_3_0/message/SolaceMessageBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.solace.v0._3_0.message; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes Solace message binding. + * + * @see Solace message binding + * @see Solace + * @author Pavel Bodiachevskii + * @version 0.3.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SolaceMessageBinding extends com.asyncapi.bindings.solace.SolaceMessageBinding { + + @Override + public String getBindingVersion() { + return "0.3.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.3.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_3_0/operation/SolaceOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_3_0/operation/SolaceOperationBinding.java new file mode 100644 index 00000000..22b1473b --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_3_0/operation/SolaceOperationBinding.java @@ -0,0 +1,52 @@ +package com.asyncapi.bindings.solace.v0._3_0.operation; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +/** + * Describes Solace operation binding. + *

+ * Contains information about the operation representation in Solace PubSub+ Broker. + * + * @see Solace operation binding + * @see Solace + * @author Dennis Brinley, Pavel Bodiachevskii + * @version 0.3.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes Solace operation binding.") +public class SolaceOperationBinding extends com.asyncapi.bindings.solace.SolaceOperationBinding { + + /** + * List of destinations + */ + @Nullable + @JsonProperty("destinations") + @JsonPropertyDescription("List of destinations") + private List destinations; + + @Override + public String getBindingVersion() { + return "0.3.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.3.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_3_0/operation/SolaceOperationDestination.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_3_0/operation/SolaceOperationDestination.java new file mode 100644 index 00000000..44036b38 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_3_0/operation/SolaceOperationDestination.java @@ -0,0 +1,86 @@ +package com.asyncapi.bindings.solace.v0._3_0.operation; + +import com.asyncapi.bindings.solace.v0._3_0.operation.queue.SolaceOperationQueue; +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +/** + * Describes Solace destination. + *

+ * Contains information about the destination in Solace PubSub+ Broker. + * + * @see Solace operation binding + * @see Solace + * @author Dennis Brinley, Pavel Bodiachevskii + * @version 0.3.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@JsonClassDescription("Describes Solace destination.") +public class SolaceOperationDestination { + + /** + * 'queue' or 'topic'. If the type is queue, then the subscriber can bind to the queue, which in turn will + * subscribe to the topic as represented by the channel name or to the provided topicSubscriptions. + */ + @Nullable + @JsonProperty("destinationType") + @JsonPropertyDescription("'queue' or 'topic'. If the type is queue, then the subscriber can bind to the queue, which in turn will subscribe to the topic as represented by the channel name or to the provided topicSubscriptions.") + private Type destinationType; + + /** + * 'direct' or 'persistent'. This determines the quality of service for publishing messages as documented here. + * Default is 'persistent'. + */ + @Nullable + @Builder.Default + @JsonProperty(value = "deliveryMode", defaultValue = "persistent") + @JsonPropertyDescription("'direct' or 'persistent'. This determines the quality of service for publishing messages as documented at https://docs.solace.com/Get-Started/Core-Concepts-Message-Delivery-Modes.htm. Default is 'persistent'.") + private DeliveryMode deliveryMode = DeliveryMode.PERSISTENT; + + /** + * Solace queue destination details. + */ + @Nullable + @JsonProperty("queue") + @JsonPropertyDescription("Solace queue destination details.") + private SolaceOperationQueue queue; + + /** + * The list of topics that the client subscribes to. + */ + @Nullable + @JsonProperty("topicSubscriptions") + @JsonPropertyDescription("The list of topics that the client subscribes to.") + private List topicSubscriptions; + + public enum Type { + + @JsonProperty("queue") + QUEUE, + @JsonProperty("topic") + TOPIC + + } + + public enum DeliveryMode { + + @JsonProperty("direct") + DIRECT, + @JsonProperty("persistent") + PERSISTENT + + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_3_0/operation/queue/SolaceOperationQueue.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_3_0/operation/queue/SolaceOperationQueue.java new file mode 100644 index 00000000..f41d283d --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_3_0/operation/queue/SolaceOperationQueue.java @@ -0,0 +1,84 @@ +package com.asyncapi.bindings.solace.v0._3_0.operation.queue; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +/** + * Describes Solace queue. + *

+ * Contains information about the queue in Solace PubSub+ Broker. + * + * @see Solace operation binding + * @see Solace + * @author Dennis Brinley, Pavel Bodiachevskii + * @version 0.3.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@JsonClassDescription("Describes Solace queue.") +public class SolaceOperationQueue { + + /** + * The name of the queue, only applicable when destinationType is 'queue'. + */ + @Nullable + @JsonProperty("name") + @JsonPropertyDescription("The name of the queue, only applicable when destinationType is 'queue'.") + private String name; + + /** + * A list of topics that the queue subscribes to, only applicable when destinationType is 'queue'. + * If none is given, the queue subscribes to the topic as represented by the channel name. + */ + @Nullable + @JsonProperty("topicSubscriptions") + @JsonPropertyDescription("A list of topics that the queue subscribes to, only applicable when destinationType is 'queue'. If none is given, the queue subscribes to the topic as represented by the channel name.") + private List topicSubscriptions; + + /** + * 'exclusive' or 'nonexclusive'. This is documented here. Only applicable when destinationType is 'queue'. + */ + @Nullable + @JsonProperty("accessType") + @JsonPropertyDescription("'exclusive' or 'nonexclusive'. This is documented at https://docs.solace.com/Messaging/Guaranteed-Msg/Endpoints.htm#Queues. Only applicable when destinationType is 'queue'.") + private AccessType accessType; + + /** + * The maximum amount of message spool that the given queue may use. This is documented here. + * Only applicable when destinationType is 'queue'. + */ + @Nullable + @JsonProperty("maxMsgSpoolSize") + @JsonPropertyDescription("The maximum amount of message spool that the given queue may use. This is documented at https://docs.solace.com/Messaging/Guaranteed-Msg/Message-Spooling.htm#max-spool-usage. Only applicable when destinationType is 'queue'.") + private String maxMsgSpoolSize; + + /** + * The maximum TTL to apply to messages to be spooled. This is documented here. + * Only applicable when destinationType is 'queue'. + */ + @Nullable + @JsonProperty("maxTtl") + @JsonPropertyDescription("The maximum TTL to apply to messages to be spooled. This is documented at https://docs.solace.com/Messaging/Guaranteed-Msg/Configuring-Queues.htm. Only applicable when destinationType is 'queue'.") + private String maxTtl; + + public enum AccessType { + + @JsonProperty("exclusive") + EXCLUSIVE, + @JsonProperty("nonexclusive") + NON_EXCLUSIVE + + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_3_0/server/SolaceServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_3_0/server/SolaceServerBinding.java new file mode 100644 index 00000000..35075207 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_3_0/server/SolaceServerBinding.java @@ -0,0 +1,50 @@ +package com.asyncapi.bindings.solace.v0._3_0.server; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Solace server binding. + * + * @see Solace server binding + * @see Solace + * @author Dennis Brinley, Pavel Bodiachevskii + * @version 0.3.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes Solace server binding.") +public class SolaceServerBinding extends com.asyncapi.bindings.solace.SolaceServerBinding { + + /** + * Message VPN of the Solace Broker + *

+ * e.g. msgVpn: solace-broker-msg-vpn + */ + @Nullable + @JsonProperty("msgVpn") + @JsonPropertyDescription("Message VPN of the Solace Broker") + private String msgVpn; + + @Override + public String getBindingVersion() { + return "0.3.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.3.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_4_0/channel/SolaceChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_4_0/channel/SolaceChannelBinding.java new file mode 100644 index 00000000..ffda67b1 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_4_0/channel/SolaceChannelBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.solace.v0._4_0.channel; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes Solace channel binding. + * + * @see Solace channel binding + * @see Solace + * @author Pavel Bodiachevskii + * @version 0.4.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SolaceChannelBinding extends com.asyncapi.bindings.solace.SolaceChannelBinding { + + @Override + public String getBindingVersion() { + return "0.4.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.4.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_4_0/message/SolaceMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_4_0/message/SolaceMessageBinding.java new file mode 100644 index 00000000..c66b99be --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_4_0/message/SolaceMessageBinding.java @@ -0,0 +1,34 @@ +package com.asyncapi.bindings.solace.v0._4_0.message; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. Its name is reserved for future use. + *

+ * Describes Solace message binding. + * + * @see Solace message binding + * @see Solace + * @author Pavel Bodiachevskii + * @version 0.4.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SolaceMessageBinding extends com.asyncapi.bindings.solace.SolaceMessageBinding { + + @Override + public String getBindingVersion() { + return "0.4.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.4.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_4_0/operation/SolaceOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_4_0/operation/SolaceOperationBinding.java new file mode 100644 index 00000000..0fd66087 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_4_0/operation/SolaceOperationBinding.java @@ -0,0 +1,75 @@ +package com.asyncapi.bindings.solace.v0._4_0.operation; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +/** + * Describes Solace operation binding. + *

+ * Contains information about the operation representation in Solace PubSub+ Broker. + * + * @see Solace operation binding + * @see Solace + * @author Pavel Bodiachevskii + * @version 0.4.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SolaceOperationBinding extends com.asyncapi.bindings.solace.SolaceOperationBinding { + + /** + * List of destinations + */ + @Nullable + @JsonProperty("destinations") + @JsonPropertyDescription("List of destinations") + private List destinations; + + /** + * Interval in milliseconds or a Schema Object containing the definition of the lifetime of the message. + */ + @Nullable + @JsonProperty("timeToLive") + private Integer timeToLive; + + /** + * 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. + */ + @Nullable + @javax.validation.constraints.Min(0) + @javax.validation.constraints.Max(255) + private Integer priority; + + /** + * Set the message to be eligible to be moved to a Dead Message Queue. + *

+ * The default value is false. + */ + @Nullable + @Builder.Default + private Boolean dmqEligible = false; + + @Override + public String getBindingVersion() { + return "0.4.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.4.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_4_0/operation/SolaceOperationDestination.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_4_0/operation/SolaceOperationDestination.java new file mode 100644 index 00000000..96c090a5 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_4_0/operation/SolaceOperationDestination.java @@ -0,0 +1,86 @@ +package com.asyncapi.bindings.solace.v0._4_0.operation; + +import com.asyncapi.bindings.solace.v0._4_0.operation.queue.SolaceOperationQueue; +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +/** + * Describes Solace destination. + *

+ * Contains information about the destination in Solace PubSub+ Broker. + * + * @see Solace operation binding + * @see Solace + * @author Pavel Bodiachevskii + * @version 0.4.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@JsonClassDescription("Describes Solace destination.") +public class SolaceOperationDestination { + + /** + * 'queue' or 'topic'. If the type is queue, then the subscriber can bind to the queue, which in turn will + * subscribe to the topic as represented by the channel name or to the provided topicSubscriptions. + */ + @Nullable + @JsonProperty("destinationType") + @JsonPropertyDescription("'queue' or 'topic'. If the type is queue, then the subscriber can bind to the queue, which in turn will subscribe to the topic as represented by the channel name or to the provided topicSubscriptions.") + private Type destinationType; + + /** + * 'direct' or 'persistent'. This determines the quality of service for publishing messages as documented here. + * Default is 'persistent'. + */ + @Nullable + @Builder.Default + @JsonProperty(value = "deliveryMode", defaultValue = "persistent") + @JsonPropertyDescription("'direct' or 'persistent'. This determines the quality of service for publishing messages as documented at https://docs.solace.com/Get-Started/Core-Concepts-Message-Delivery-Modes.htm. Default is 'persistent'.") + private DeliveryMode deliveryMode = DeliveryMode.PERSISTENT; + + /** + * Solace queue destination details. + */ + @Nullable + @JsonProperty("queue") + @JsonPropertyDescription("Solace queue destination details.") + private SolaceOperationQueue queue; + + /** + * The list of topics that the client subscribes to. + */ + @Nullable + @JsonProperty("topicSubscriptions") + @JsonPropertyDescription("The list of topics that the client subscribes to.") + private List topicSubscriptions; + + public enum Type { + + @JsonProperty("queue") + QUEUE, + @JsonProperty("topic") + TOPIC + + } + + public enum DeliveryMode { + + @JsonProperty("direct") + DIRECT, + @JsonProperty("persistent") + PERSISTENT + + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_4_0/operation/queue/SolaceOperationQueue.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_4_0/operation/queue/SolaceOperationQueue.java new file mode 100644 index 00000000..dfa5c68f --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_4_0/operation/queue/SolaceOperationQueue.java @@ -0,0 +1,84 @@ +package com.asyncapi.bindings.solace.v0._4_0.operation.queue; + +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +/** + * Describes Solace queue. + *

+ * Contains information about the queue in Solace PubSub+ Broker. + * + * @see Solace operation binding + * @see Solace + * @author Pavel Bodiachevskii + * @version 0.4.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@JsonClassDescription("Describes Solace queue.") +public class SolaceOperationQueue { + + /** + * The name of the queue, only applicable when destinationType is 'queue'. + */ + @Nullable + @JsonProperty("name") + @JsonPropertyDescription("The name of the queue, only applicable when destinationType is 'queue'.") + private String name; + + /** + * A list of topics that the queue subscribes to, only applicable when destinationType is 'queue'. + * If none is given, the queue subscribes to the topic as represented by the channel name. + */ + @Nullable + @JsonProperty("topicSubscriptions") + @JsonPropertyDescription("A list of topics that the queue subscribes to, only applicable when destinationType is 'queue'. If none is given, the queue subscribes to the topic as represented by the channel name.") + private List topicSubscriptions; + + /** + * 'exclusive' or 'nonexclusive'. This is documented here. Only applicable when destinationType is 'queue'. + */ + @Nullable + @JsonProperty("accessType") + @JsonPropertyDescription("'exclusive' or 'nonexclusive'. This is documented at https://docs.solace.com/Messaging/Guaranteed-Msg/Endpoints.htm#Queues. Only applicable when destinationType is 'queue'.") + private AccessType accessType; + + /** + * The maximum amount of message spool that the given queue may use. This is documented here. + * Only applicable when destinationType is 'queue'. + */ + @Nullable + @JsonProperty("maxMsgSpoolSize") + @JsonPropertyDescription("The maximum amount of message spool that the given queue may use. This is documented at https://docs.solace.com/Messaging/Guaranteed-Msg/Message-Spooling.htm#max-spool-usage. Only applicable when destinationType is 'queue'.") + private String maxMsgSpoolSize; + + /** + * The maximum TTL to apply to messages to be spooled. This is documented here. + * Only applicable when destinationType is 'queue'. + */ + @Nullable + @JsonProperty("maxTtl") + @JsonPropertyDescription("The maximum TTL to apply to messages to be spooled. This is documented at https://docs.solace.com/Messaging/Guaranteed-Msg/Configuring-Queues.htm. Only applicable when destinationType is 'queue'.") + private String maxTtl; + + public enum AccessType { + + @JsonProperty("exclusive") + EXCLUSIVE, + @JsonProperty("nonexclusive") + NON_EXCLUSIVE + + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_4_0/server/SolaceServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_4_0/server/SolaceServerBinding.java new file mode 100644 index 00000000..c71fbf75 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/solace/v0/_4_0/server/SolaceServerBinding.java @@ -0,0 +1,58 @@ +package com.asyncapi.bindings.solace.v0._4_0.server; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Describes Solace server binding. + * + * @see Solace server binding + * @see Solace + * @author Pavel Bodiachevskii + * @version 0.4.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SolaceServerBinding extends com.asyncapi.bindings.solace.SolaceServerBinding { + + /** + * Message VPN of the Solace Broker + *

+ * e.g. msgVpn: solace-broker-msg-vpn + */ + @Nullable + @JsonProperty("msgVpn") + @JsonPropertyDescription("Message VPN of the Solace Broker") + private String msgVpn; + + /** + * 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. + */ + @Nullable + @JsonProperty("clientName") + @javax.validation.constraints.Size(min = 1, max = 160) + private String clientName; + + @Override + public String getBindingVersion() { + return "0.4.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.4.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/SQSChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/SQSChannelBinding.java new file mode 100644 index 00000000..f10410c4 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/SQSChannelBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.sqs; + +import com.asyncapi.bindings.ChannelBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes SQS channel binding. + * + * @see SQS channel binding + * @see Amazon SQS + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.sqs.v0._2_0.channel.SQSChannelBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.sqs.v0._1_0.channel.SQSChannelBinding.class, name = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.sqs.v0._2_0.channel.SQSChannelBinding.class, names = { + "0.2.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class SQSChannelBinding extends ChannelBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/SQSMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/SQSMessageBinding.java new file mode 100644 index 00000000..6c85baa1 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/SQSMessageBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.sqs; + +import com.asyncapi.bindings.MessageBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes SQS message binding. + * + * @see SQS message binding + * @see Amazon SQS + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.sqs.v0._2_0.message.SQSMessageBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.sqs.v0._1_0.message.SQSMessageBinding.class, name = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.sqs.v0._2_0.message.SQSMessageBinding.class, names = { + "0.2.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class SQSMessageBinding extends MessageBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/SQSOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/SQSOperationBinding.java new file mode 100644 index 00000000..88e15d39 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/SQSOperationBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.sqs; + +import com.asyncapi.bindings.OperationBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes SQS operation binding. + * + * @see SQS operation binding + * @see Amazon SQS + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.sqs.v0._2_0.operation.SQSOperationBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.sqs.v0._1_0.operation.SQSOperationBinding.class, name = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.sqs.v0._2_0.operation.SQSOperationBinding.class, names = { + "0.2.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class SQSOperationBinding extends OperationBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/SQSServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/SQSServerBinding.java new file mode 100644 index 00000000..f103b1b8 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/SQSServerBinding.java @@ -0,0 +1,31 @@ +package com.asyncapi.bindings.sqs; + +import com.asyncapi.bindings.ServerBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.EqualsAndHashCode; + +/** + * Describes SQS server binding. + * + * @see SQS server binding + * @see Amazon SQS + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.sqs.v0._2_0.server.SQSServerBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.sqs.v0._1_0.server.SQSServerBinding.class, name = "0.1.0"), + @JsonSubTypes.Type(value = com.asyncapi.bindings.sqs.v0._2_0.server.SQSServerBinding.class, names = { + "0.2.0", + "latest" + }), +}) +@EqualsAndHashCode(callSuper = true) +public abstract class SQSServerBinding extends ServerBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_1_0/channel/SQSChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_1_0/channel/SQSChannelBinding.java new file mode 100644 index 00000000..48a89659 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_1_0/channel/SQSChannelBinding.java @@ -0,0 +1,36 @@ +package com.asyncapi.bindings.sqs.v0._1_0.channel; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. + *

+ * Its name is reserved for future use. + *

+ * Describes SQS channel binding. + * + * @see SQS channel binding + * @see Amazon SQS + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SQSChannelBinding extends com.asyncapi.bindings.sqs.SQSChannelBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_1_0/message/SQSMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_1_0/message/SQSMessageBinding.java new file mode 100644 index 00000000..cf117b73 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_1_0/message/SQSMessageBinding.java @@ -0,0 +1,36 @@ +package com.asyncapi.bindings.sqs.v0._1_0.message; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. + *

+ * Its name is reserved for future use. + *

+ * Describes SQS message binding. + * + * @see SQS message binding + * @see Amazon SQS + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SQSMessageBinding extends com.asyncapi.bindings.sqs.SQSMessageBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_1_0/operation/SQSOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_1_0/operation/SQSOperationBinding.java new file mode 100644 index 00000000..8cbf430e --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_1_0/operation/SQSOperationBinding.java @@ -0,0 +1,36 @@ +package com.asyncapi.bindings.sqs.v0._1_0.operation; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. + *

+ * Its name is reserved for future use. + *

+ * Describes SQS operation binding. + * + * @see SQS operation binding + * @see Amazon SQS + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SQSOperationBinding extends com.asyncapi.bindings.sqs.SQSOperationBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_1_0/server/SQSServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_1_0/server/SQSServerBinding.java new file mode 100644 index 00000000..cf416eba --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_1_0/server/SQSServerBinding.java @@ -0,0 +1,36 @@ +package com.asyncapi.bindings.sqs.v0._1_0.server; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. + *

+ * Its name is reserved for future use. + *

+ * Describes SQS server binding. + * + * @see SQS server binding + * @see Amazon SQS + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SQSServerBinding extends com.asyncapi.bindings.sqs.SQSServerBinding { + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/channel/SQSChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/channel/SQSChannelBinding.java new file mode 100644 index 00000000..ab75c4df --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/channel/SQSChannelBinding.java @@ -0,0 +1,49 @@ +package com.asyncapi.bindings.sqs.v0._2_0.channel; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * Describes SQS channel binding. + * + * @see SQS channel binding + * @see Amazon SQS + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SQSChannelBinding extends com.asyncapi.bindings.sqs.SQSChannelBinding { + + /** + * A definition of the queue that will be used as the channel. + */ + @NotNull + private SQSChannelQueue queue = new SQSChannelQueue(); + + /** + * A definition of the queue that will be used for un-processable messages. + */ + @Nullable + private SQSChannelQueue deadLetterQueue; + + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/channel/SQSChannelDeadLetterQueueIdentifier.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/channel/SQSChannelDeadLetterQueueIdentifier.java new file mode 100644 index 00000000..d5826151 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/channel/SQSChannelDeadLetterQueueIdentifier.java @@ -0,0 +1,42 @@ +package com.asyncapi.bindings.sqs.v0._2_0.channel; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * A definition of a SQS channel dead letter queue identifier. + *

+ * The SQS queue to use as a dead letter queue (DLQ). + * + * @see SQS channel binding + * @see Amazon SQS + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SQSChannelDeadLetterQueueIdentifier { + + /** + * 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} + */ + @Nullable + private String arn; + + /** + * 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. + */ + @Nullable + private String name; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/channel/SQSChannelQueue.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/channel/SQSChannelQueue.java new file mode 100644 index 00000000..aa6c4690 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/channel/SQSChannelQueue.java @@ -0,0 +1,116 @@ +package com.asyncapi.bindings.sqs.v0._2_0.channel; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Map; + +/** + * A definition of a SQS channel queue. + * + * @see SQS channel binding + * @see Amazon SQS + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SQSChannelQueue { + + /** + * 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. + */ + @NotNull + @Builder.Default + private String name = ""; + + /** + * Is this a FIFO queue? + */ + @NotNull + @Builder.Default + private Boolean fifoQueue = false; + + /** + * Specifies whether message deduplication occurs at the message group or queue level. + *

+ * Valid values are messageGroup and queue (default). + */ + @Nullable + @Builder.Default + private SQSChannelQueueDeduplicationScope deduplicationScope = SQSChannelQueueDeduplicationScope.QUEUE; + + /** + * Specifies whether the FIFO queue throughput quota applies to the entire queue or per message group. + *

+ * Valid values are perQueue (default) and perMessageGroupId. + */ + @Nullable + @Builder.Default + private SQSChannelQueueFifoThroughputLimit fifoThroughputLimit = SQSChannelQueueFifoThroughputLimit.PER_QUEUE; + + /** + * The number of seconds to delay before a message sent to the queue can be received. used to create a delay queue. + */ + @Nullable + @Builder.Default + @javax.validation.constraints.Min(0) + @javax.validation.constraints.Max(15) + private Integer deliveryDelay = 0; + + /** + * 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. + */ + @Nullable + @Builder.Default + @javax.validation.constraints.Min(0) + @javax.validation.constraints.Max(43200) + private Integer visibilityTimeout = 30; + + /** + * 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. + */ + @Nullable + @Builder.Default + private Integer receiveMessageWaitTime = 0; + + /** + * How long to retain a message on the queue in seconds, unless deleted. + */ + @Nullable + @Builder.Default + @javax.validation.constraints.Min(60) + @javax.validation.constraints.Max(1209600) + private Integer messageRetentionPeriod = 345600; + + /** + * Prevent poison pill messages by moving un-processable messages to an SQS dead letter queue. + */ + @Nullable + private SQSChannelRedrivePolicy redrivePolicy; + + /** + * The security policy for the SQS Queue. + */ + @Nullable + private SQSChannelQueuePolicy policy; + + /** + * Key-value pairs that represent AWS tags on the queue. + */ + @Nullable + private Map tags; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/channel/SQSChannelQueueDeduplicationScope.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/channel/SQSChannelQueueDeduplicationScope.java new file mode 100644 index 00000000..75fa8de7 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/channel/SQSChannelQueueDeduplicationScope.java @@ -0,0 +1,22 @@ +package com.asyncapi.bindings.sqs.v0._2_0.channel; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Specifies whether message deduplication occurs at the message group or queue level. + * + * @see SQS channel binding + * @see Amazon SQS + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +public enum SQSChannelQueueDeduplicationScope { + + @JsonProperty("queue") + QUEUE, + + @JsonProperty("messageGroup") + MESSAGE_GROUP + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/channel/SQSChannelQueueFifoThroughputLimit.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/channel/SQSChannelQueueFifoThroughputLimit.java new file mode 100644 index 00000000..6aea840c --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/channel/SQSChannelQueueFifoThroughputLimit.java @@ -0,0 +1,22 @@ +package com.asyncapi.bindings.sqs.v0._2_0.channel; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Specifies whether the FIFO queue throughput quota applies to the entire queue or per message group. + * + * @see SQS channel binding + * @see Amazon SQS + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +public enum SQSChannelQueueFifoThroughputLimit { + + @JsonProperty("perQueue") + PER_QUEUE, + + @JsonProperty("perMessageGroupId") + PER_MESSAGE_GROUP_ID + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/channel/SQSChannelQueuePolicy.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/channel/SQSChannelQueuePolicy.java new file mode 100644 index 00000000..a2baeac8 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/channel/SQSChannelQueuePolicy.java @@ -0,0 +1,32 @@ +package com.asyncapi.bindings.sqs.v0._2_0.channel; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; + +import java.util.List; + +/** + * A definition of a SQS channel queue policy. + * + * @see SQS channel binding + * @see Amazon SQS + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SQSChannelQueuePolicy { + + /** + * An array of statement objects, each of which controls a permission for this queue. + */ + @NotNull + private List<@NotNull SQSChannelQueuePolicyStatement> statements; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/channel/SQSChannelQueuePolicyStatement.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/channel/SQSChannelQueuePolicyStatement.java new file mode 100644 index 00000000..e87e20b5 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/channel/SQSChannelQueuePolicyStatement.java @@ -0,0 +1,42 @@ +package com.asyncapi.bindings.sqs.v0._2_0.channel; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; + +/** + * A definition of a SQS channel queue policy statement. + * + * @see SQS channel binding + * @see Amazon SQS + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SQSChannelQueuePolicyStatement { + + /** + * The SQS rule to allow or deny actions. + */ + @NotNull + private SQSChannelQueuePolicyStatementEffect effect; + + /** + * The AWS account or resource ARN that this statement applies to. + */ + @NotNull + private Object principal; + + /** + * The SQS permission being allowed or denied e.g. sqs:ReceiveMessage. + */ + @NotNull + private Object action; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/channel/SQSChannelQueuePolicyStatementEffect.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/channel/SQSChannelQueuePolicyStatementEffect.java new file mode 100644 index 00000000..26f92425 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/channel/SQSChannelQueuePolicyStatementEffect.java @@ -0,0 +1,22 @@ +package com.asyncapi.bindings.sqs.v0._2_0.channel; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * A definition of a SQS channel queue policy statement effect. + * + * @see SQS channel binding + * @see Amazon SQS + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +public enum SQSChannelQueuePolicyStatementEffect { + + @JsonProperty("Allow") + ALLOW, + + @JsonProperty("Deny") + DENY + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/channel/SQSChannelRedrivePolicy.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/channel/SQSChannelRedrivePolicy.java new file mode 100644 index 00000000..7f0d642e --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/channel/SQSChannelRedrivePolicy.java @@ -0,0 +1,37 @@ +package com.asyncapi.bindings.sqs.v0._2_0.channel; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * Prevent poison pill messages by moving un-processable messages to an SQS dead letter queue. + * + * @see SQS channel binding + * @see Amazon SQS + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SQSChannelRedrivePolicy { + + /** + * The SQS queue to use as a dead letter queue (DLQ). + */ + @NotNull + private SQSChannelDeadLetterQueueIdentifier deadLetterQueue; + + /** + * The number of times a message is delivered to the source queue before being moved to the dead-letter queue. + */ + @Nullable + private Integer maxReceiveCount = 10; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/message/SQSMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/message/SQSMessageBinding.java new file mode 100644 index 00000000..70d763cd --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/message/SQSMessageBinding.java @@ -0,0 +1,36 @@ +package com.asyncapi.bindings.sqs.v0._2_0.message; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. + *

+ * Its name is reserved for future use. + *

+ * Describes SQS message binding. + * + * @see SQS message binding + * @see Amazon SQS + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SQSMessageBinding extends com.asyncapi.bindings.sqs.SQSMessageBinding { + + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/operation/SQSOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/operation/SQSOperationBinding.java new file mode 100644 index 00000000..9e4c4851 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/operation/SQSOperationBinding.java @@ -0,0 +1,48 @@ +package com.asyncapi.bindings.sqs.v0._2_0.operation; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Collections; +import java.util.List; + +/** + * Describes SQS operation binding. + * + * @see SQS operation binding + * @see Amazon SQS + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SQSOperationBinding extends com.asyncapi.bindings.sqs.SQSOperationBinding { + + /** + * Queue objects that are either the endpoint for an SNS Operation Binding Object, + * or the deadLetterQueue of the SQS Operation Binding Object. + */ + @NotNull + @Builder.Default + private List<@NotNull SQSOperationQueue> queues = Collections.emptyList(); + + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/operation/SQSOperationDeadLetterQueueIdentifier.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/operation/SQSOperationDeadLetterQueueIdentifier.java new file mode 100644 index 00000000..4e7be4c7 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/operation/SQSOperationDeadLetterQueueIdentifier.java @@ -0,0 +1,42 @@ +package com.asyncapi.bindings.sqs.v0._2_0.operation; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * A definition of a SQS channel dead letter queue identifier. + *

+ * The SQS queue to use as a dead letter queue (DLQ). + * + * @see SQS operation binding + * @see Amazon SQS + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SQSOperationDeadLetterQueueIdentifier { + + /** + * 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} + */ + @Nullable + private String arn; + + /** + * 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. + */ + @Nullable + private String name; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/operation/SQSOperationQueue.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/operation/SQSOperationQueue.java new file mode 100644 index 00000000..e93e1777 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/operation/SQSOperationQueue.java @@ -0,0 +1,129 @@ +package com.asyncapi.bindings.sqs.v0._2_0.operation; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Map; + +/** + * A definition of a SQS operation queue. + * + * @see SQS operation binding + * @see Amazon SQS + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SQSOperationQueue { + + /** + * 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. + */ + @Nullable + @JsonProperty("$ref") + private String ref; + + /** + * 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. + */ + @NotNull + @Builder.Default + private String name = ""; + + /** + * Is this a FIFO queue? + */ + @NotNull + @Builder.Default + private Boolean fifoQueue = false; + + /** + * Specifies whether message deduplication occurs at the message group or queue level. + *

+ * Valid values are messageGroup and queue (default). + */ + @Nullable + @Builder.Default + private SQSOperationQueueDeduplicationScope deduplicationScope = SQSOperationQueueDeduplicationScope.QUEUE; + + /** + * Specifies whether the FIFO queue throughput quota applies to the entire queue or per message group. + *

+ * Valid values are perQueue (default) and perMessageGroupId. + */ + @Nullable + @Builder.Default + private SQSOperationQueueFifoThroughputLimit fifoThroughputLimit = SQSOperationQueueFifoThroughputLimit.PER_QUEUE; + + /** + * The number of seconds to delay before a message sent to the queue can be received. used to create a delay queue. + */ + @Nullable + @Builder.Default + @javax.validation.constraints.Min(0) + @javax.validation.constraints.Max(15) + private Integer deliveryDelay = 0; + + /** + * 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. + */ + @Nullable + @Builder.Default + @javax.validation.constraints.Min(0) + @javax.validation.constraints.Max(43200) + private Integer visibilityTimeout = 30; + + /** + * 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. + */ + @Nullable + @Builder.Default + private Integer receiveMessageWaitTime = 0; + + /** + * How long to retain a message on the queue in seconds, unless deleted. + */ + @Nullable + @Builder.Default + @javax.validation.constraints.Min(60) + @javax.validation.constraints.Max(1209600) + private Integer messageRetentionPeriod = 345600; + + /** + * Prevent poison pill messages by moving un-processable messages to an SQS dead letter queue. + */ + @Nullable + private SQSOperationRedrivePolicy redrivePolicy; + + /** + * The security policy for the SQS Queue. + */ + @Nullable + private SQSOperationQueuePolicy policy; + + /** + * Key-value pairs that represent AWS tags on the queue. + */ + @Nullable + private Map tags; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/operation/SQSOperationQueueDeduplicationScope.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/operation/SQSOperationQueueDeduplicationScope.java new file mode 100644 index 00000000..e975d80c --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/operation/SQSOperationQueueDeduplicationScope.java @@ -0,0 +1,22 @@ +package com.asyncapi.bindings.sqs.v0._2_0.operation; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Specifies whether message deduplication occurs at the message group or queue level. + * + * @see SQS operation binding + * @see Amazon SQS + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +public enum SQSOperationQueueDeduplicationScope { + + @JsonProperty("queue") + QUEUE, + + @JsonProperty("messageGroup") + MESSAGE_GROUP + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/operation/SQSOperationQueueFifoThroughputLimit.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/operation/SQSOperationQueueFifoThroughputLimit.java new file mode 100644 index 00000000..7658d706 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/operation/SQSOperationQueueFifoThroughputLimit.java @@ -0,0 +1,22 @@ +package com.asyncapi.bindings.sqs.v0._2_0.operation; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Specifies whether the FIFO queue throughput quota applies to the entire queue or per message group. + * + * @see SQS operation binding + * @see Amazon SQS + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +public enum SQSOperationQueueFifoThroughputLimit { + + @JsonProperty("perQueue") + PER_QUEUE, + + @JsonProperty("perMessageGroupId") + PER_MESSAGE_GROUP_ID + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/operation/SQSOperationQueuePolicy.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/operation/SQSOperationQueuePolicy.java new file mode 100644 index 00000000..0debcc85 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/operation/SQSOperationQueuePolicy.java @@ -0,0 +1,32 @@ +package com.asyncapi.bindings.sqs.v0._2_0.operation; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; + +import java.util.List; + +/** + * A definition of a SQS channel queue policy. + * + * @see SQS operation binding + * @see Amazon SQS + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SQSOperationQueuePolicy { + + /** + * An array of statement objects, each of which controls a permission for this queue. + */ + @NotNull + private List<@NotNull SQSOperationQueuePolicyStatement> statements; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/operation/SQSOperationQueuePolicyStatement.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/operation/SQSOperationQueuePolicyStatement.java new file mode 100644 index 00000000..9147ce50 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/operation/SQSOperationQueuePolicyStatement.java @@ -0,0 +1,42 @@ +package com.asyncapi.bindings.sqs.v0._2_0.operation; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; + +/** + * A definition of a SQS channel queue policy statement. + * + * @see SQS operation binding + * @see Amazon SQS + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SQSOperationQueuePolicyStatement { + + /** + * The SQS rule to allow or deny actions. + */ + @NotNull + private SQSOperationQueuePolicyStatementEffect effect; + + /** + * The AWS account or resource ARN that this statement applies to. + */ + @NotNull + private Object principal; + + /** + * The SQS permission being allowed or denied e.g. sqs:ReceiveMessage. + */ + @NotNull + private Object action; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/operation/SQSOperationQueuePolicyStatementEffect.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/operation/SQSOperationQueuePolicyStatementEffect.java new file mode 100644 index 00000000..cdc2190a --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/operation/SQSOperationQueuePolicyStatementEffect.java @@ -0,0 +1,22 @@ +package com.asyncapi.bindings.sqs.v0._2_0.operation; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * A definition of a SQS channel queue policy statement effect. + * + * @see SQS operation binding + * @see Amazon SQS + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +public enum SQSOperationQueuePolicyStatementEffect { + + @JsonProperty("Allow") + ALLOW, + + @JsonProperty("Deny") + DENY + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/operation/SQSOperationRedrivePolicy.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/operation/SQSOperationRedrivePolicy.java new file mode 100644 index 00000000..b16455de --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/operation/SQSOperationRedrivePolicy.java @@ -0,0 +1,37 @@ +package com.asyncapi.bindings.sqs.v0._2_0.operation; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * Prevent poison pill messages by moving un-processable messages to an SQS dead letter queue. + * + * @see SQS operation binding + * @see Amazon SQS + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SQSOperationRedrivePolicy { + + /** + * The SQS queue to use as a dead letter queue (DLQ). + */ + @NotNull + private SQSOperationDeadLetterQueueIdentifier deadLetterQueue; + + /** + * The number of times a message is delivered to the source queue before being moved to the dead-letter queue. + */ + @Nullable + private Integer maxReceiveCount = 10; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/server/SQSServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/server/SQSServerBinding.java new file mode 100644 index 00000000..2c5adf8c --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/sqs/v0/_2_0/server/SQSServerBinding.java @@ -0,0 +1,36 @@ +package com.asyncapi.bindings.sqs.v0._2_0.server; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. + *

+ * Its name is reserved for future use. + *

+ * Describes SQS server binding. + * + * @see SQS server binding + * @see Amazon SQS + * @author Pavel Bodiachevskii + * @version 0.2.0 + * @since 1.0.0-RC2 + */ +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SQSServerBinding extends com.asyncapi.bindings.sqs.SQSServerBinding { + + @Override + public String getBindingVersion() { + return "0.2.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.2.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/stomp/STOMPChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/stomp/STOMPChannelBinding.java new file mode 100644 index 00000000..bbf5b4ba --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/stomp/STOMPChannelBinding.java @@ -0,0 +1,32 @@ +package com.asyncapi.bindings.stomp; + +import com.asyncapi.bindings.ChannelBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Describes STOMP channel binding. + * + * @see STOMP channel binding + * @see STOMP + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.stomp.v0._1_0.channel.STOMPChannelBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.stomp.v0._1_0.channel.STOMPChannelBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@Data +@EqualsAndHashCode(callSuper = true) +public abstract class STOMPChannelBinding extends ChannelBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/stomp/STOMPMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/stomp/STOMPMessageBinding.java new file mode 100644 index 00000000..bdae67cc --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/stomp/STOMPMessageBinding.java @@ -0,0 +1,33 @@ +package com.asyncapi.bindings.stomp; + +import com.asyncapi.bindings.MessageBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Describes STOMP message binding. + * + * @see STOMP message binding + * @see STOMP + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.stomp.v0._1_0.message.STOMPMessageBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.stomp.v0._1_0.message.STOMPMessageBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@Data +@EqualsAndHashCode(callSuper = true) +public abstract class STOMPMessageBinding extends MessageBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/stomp/STOMPOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/stomp/STOMPOperationBinding.java new file mode 100644 index 00000000..0f4281b4 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/stomp/STOMPOperationBinding.java @@ -0,0 +1,33 @@ +package com.asyncapi.bindings.stomp; + +import com.asyncapi.bindings.OperationBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Describes STOMP operation binding. + * + * @see STOMP operation binding + * @see STOMP + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.stomp.v0._1_0.operation.STOMPOperationBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.stomp.v0._1_0.operation.STOMPOperationBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@Data +@EqualsAndHashCode(callSuper = true) +public abstract class STOMPOperationBinding extends OperationBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/stomp/STOMPServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/stomp/STOMPServerBinding.java new file mode 100644 index 00000000..2f61c8fd --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/stomp/STOMPServerBinding.java @@ -0,0 +1,33 @@ +package com.asyncapi.bindings.stomp; + +import com.asyncapi.bindings.ServerBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Describes STOMP server binding. + * + * @see STOMP server binding + * @see STOMP + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.stomp.v0._1_0.server.STOMPServerBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.stomp.v0._1_0.server.STOMPServerBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@Data +@EqualsAndHashCode(callSuper = true) +public abstract class STOMPServerBinding extends ServerBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/stomp/v0/_1_0/channel/STOMPChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/stomp/v0/_1_0/channel/STOMPChannelBinding.java new file mode 100644 index 00000000..d02bf091 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/stomp/v0/_1_0/channel/STOMPChannelBinding.java @@ -0,0 +1,38 @@ +package com.asyncapi.bindings.stomp.v0._1_0.channel; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. + *

+ * Its name is reserved for future use. + *

+ * Describes STOMP channel binding. + * + * @see STOMP channel binding + * @see STOMP + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class STOMPChannelBinding extends com.asyncapi.bindings.stomp.STOMPChannelBinding { + + public STOMPChannelBinding() { + this.setBindingVersion("0.1.0"); + } + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/stomp/v0/_1_0/message/STOMPMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/stomp/v0/_1_0/message/STOMPMessageBinding.java new file mode 100644 index 00000000..90dbf189 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/stomp/v0/_1_0/message/STOMPMessageBinding.java @@ -0,0 +1,38 @@ +package com.asyncapi.bindings.stomp.v0._1_0.message; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. + *

+ * Its name is reserved for future use. + *

+ * Describes STOMP message binding. + * + * @see STOMP message binding + * @see STOMP + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class STOMPMessageBinding extends com.asyncapi.bindings.stomp.STOMPMessageBinding { + + public STOMPMessageBinding() { + this.setBindingVersion("0.1.0"); + } + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/stomp/v0/_1_0/operation/STOMPOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/stomp/v0/_1_0/operation/STOMPOperationBinding.java new file mode 100644 index 00000000..7df44cf4 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/stomp/v0/_1_0/operation/STOMPOperationBinding.java @@ -0,0 +1,38 @@ +package com.asyncapi.bindings.stomp.v0._1_0.operation; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. + *

+ * Its name is reserved for future use. + *

+ * Describes STOMP operation binding. + * + * @see STOMP operation binding + * @see STOMP + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class STOMPOperationBinding extends com.asyncapi.bindings.stomp.STOMPOperationBinding { + + public STOMPOperationBinding() { + this.setBindingVersion("0.1.0"); + } + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/stomp/v0/_1_0/server/STOMPServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/stomp/v0/_1_0/server/STOMPServerBinding.java new file mode 100644 index 00000000..51b9e125 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/stomp/v0/_1_0/server/STOMPServerBinding.java @@ -0,0 +1,38 @@ +package com.asyncapi.bindings.stomp.v0._1_0.server; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. + *

+ * Its name is reserved for future use. + *

+ * Describes STOMP server binding. + * + * @see STOMP server binding + * @see STOMP + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class STOMPServerBinding extends com.asyncapi.bindings.stomp.STOMPServerBinding { + + public STOMPServerBinding() { + this.setBindingVersion("0.1.0"); + } + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/websockets/WebSocketsChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/websockets/WebSocketsChannelBinding.java new file mode 100644 index 00000000..36208b22 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/websockets/WebSocketsChannelBinding.java @@ -0,0 +1,38 @@ +package com.asyncapi.bindings.websockets; + +import com.asyncapi.bindings.ChannelBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Describes WebSockets channel binding. + *

+ * 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. + * + * @see WebSockets channel binding + * @see MDN WebSockets + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.websockets.v0._1_0.channel.WebSocketsChannelBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.websockets.v0._1_0.channel.WebSocketsChannelBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@Data +@EqualsAndHashCode(callSuper = true) +public abstract class WebSocketsChannelBinding extends ChannelBinding {} \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/websockets/WebSocketsMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/websockets/WebSocketsMessageBinding.java new file mode 100644 index 00000000..9348a6fa --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/websockets/WebSocketsMessageBinding.java @@ -0,0 +1,32 @@ +package com.asyncapi.bindings.websockets; + +import com.asyncapi.bindings.MessageBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Describes WebSockets message binding. + * + * @see WebSockets message binding + * @see MDN WebSockets + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.websockets.v0._1_0.message.WebSocketsMessageBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.websockets.v0._1_0.message.WebSocketsMessageBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@Data +@EqualsAndHashCode(callSuper = true) +public abstract class WebSocketsMessageBinding extends MessageBinding {} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/websockets/WebSocketsOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/websockets/WebSocketsOperationBinding.java new file mode 100644 index 00000000..e21f5d7e --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/websockets/WebSocketsOperationBinding.java @@ -0,0 +1,32 @@ +package com.asyncapi.bindings.websockets; + +import com.asyncapi.bindings.OperationBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Describes WebSockets operation binding. + * + * @see WebSockets operation binding + * @see MDN WebSockets + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.websockets.v0._1_0.operation.WebSocketsOperationBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.websockets.v0._1_0.operation.WebSocketsOperationBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@Data +@EqualsAndHashCode(callSuper = true) +public abstract class WebSocketsOperationBinding extends OperationBinding {} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/websockets/WebSocketsServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/websockets/WebSocketsServerBinding.java new file mode 100644 index 00000000..0e4a8fb4 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/websockets/WebSocketsServerBinding.java @@ -0,0 +1,32 @@ +package com.asyncapi.bindings.websockets; + +import com.asyncapi.bindings.ServerBinding; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * Describes WebSockets server binding. + * + * @see WebSockets server binding + * @see MDN WebSockets + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + defaultImpl = com.asyncapi.bindings.websockets.v0._1_0.server.WebSocketsServerBinding.class, + property = "bindingVersion", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = com.asyncapi.bindings.websockets.v0._1_0.server.WebSocketsServerBinding.class, names = { + "0.1.0", + "latest" + }), +}) +@Data +@EqualsAndHashCode(callSuper = true) +public abstract class WebSocketsServerBinding extends ServerBinding {} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/websockets/v0/_1_0/channel/WebSocketsChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/websockets/v0/_1_0/channel/WebSocketsChannelBinding.java new file mode 100644 index 00000000..1edac42d --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/websockets/v0/_1_0/channel/WebSocketsChannelBinding.java @@ -0,0 +1,136 @@ +package com.asyncapi.bindings.websockets.v0._1_0.channel; + +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.fasterxml.jackson.annotation.JsonClassDescription; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyDescription; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Map; + +/** + * Describes WebSockets channel binding. + *

+ * 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. + * + * @see WebSockets channel binding + * @see MDN WebSockets + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@JsonClassDescription("Describes WebSockets channel binding.") +public class WebSocketsChannelBinding extends com.asyncapi.bindings.websockets.WebSocketsChannelBinding { + + public WebSocketsChannelBinding() { + this.setBindingVersion("0.1.0"); + } + + public WebSocketsChannelBinding(@NotNull WebSocketsChannelBindingBuilder webSocketsChannelBindingBuilder) { + this.method = webSocketsChannelBindingBuilder.method; + this.query = webSocketsChannelBindingBuilder.query; + this.headers = webSocketsChannelBindingBuilder.headers; + this.setBindingVersion("0.1.0"); + this.extensionFields = webSocketsChannelBindingBuilder.extensionFields; + } + + /** + * The HTTP method to use when establishing the connection. + *

+ * Its value MUST be either GET or POST. + */ + @Nullable + @JsonProperty("method") + @JsonPropertyDescription("The HTTP method to use when establishing the connection. Its value MUST be either GET or POST.") + private WebSocketsChannelMethod method; + + /** + * A Schema object containing the definitions for each query parameter. + *

+ * This schema MUST be of type object and have a properties key. + */ + @Nullable + @JsonProperty("query") + @JsonPropertyDescription("A Schema object containing the definitions for each query parameter. This schema MUST be of type object and have a properties key.") + private AsyncAPISchema query; + + /** + * 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. + */ + @Nullable + @JsonProperty("headers") + @JsonPropertyDescription("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.") + private AsyncAPISchema headers; + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + + public static WebSocketsChannelBindingBuilder builder() { + return new WebSocketsChannelBindingBuilder(); + } + + public static class WebSocketsChannelBindingBuilder { + + @Nullable + private WebSocketsChannelMethod method; + + @Nullable + private AsyncAPISchema query; + + @Nullable + private AsyncAPISchema headers; + + @Nullable + private Map extensionFields; + + @NotNull + public WebSocketsChannelBindingBuilder method(@Nullable WebSocketsChannelMethod method) { + this.method = method; + return this; + } + + @NotNull + public WebSocketsChannelBindingBuilder query(@Nullable AsyncAPISchema query) { + this.query = query; + return this; + } + + @NotNull + public WebSocketsChannelBindingBuilder headers(@Nullable AsyncAPISchema headers) { + this.headers = headers; + return this; + } + + @NotNull + public WebSocketsChannelBindingBuilder extensionFields(@Nullable Map extensionFields) { + this.extensionFields = extensionFields; + return this; + } + + public WebSocketsChannelBinding build() { + return new WebSocketsChannelBinding(this); + } + + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/websockets/v0/_1_0/channel/WebSocketsChannelMethod.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/websockets/v0/_1_0/channel/WebSocketsChannelMethod.java new file mode 100644 index 00000000..bb3e4bea --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/websockets/v0/_1_0/channel/WebSocketsChannelMethod.java @@ -0,0 +1,23 @@ +package com.asyncapi.bindings.websockets.v0._1_0.channel; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * The HTTP method to use when establishing the connection. + *

+ * Its value MUST be either GET or POST. + * + * @see MDN WebSockets + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +public enum WebSocketsChannelMethod { + + @JsonProperty("GET") + GET, + + @JsonProperty("POST") + POST + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/websockets/v0/_1_0/message/WebSocketsMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/websockets/v0/_1_0/message/WebSocketsMessageBinding.java new file mode 100644 index 00000000..cba5af7c --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/websockets/v0/_1_0/message/WebSocketsMessageBinding.java @@ -0,0 +1,38 @@ +package com.asyncapi.bindings.websockets.v0._1_0.message; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. + *

+ * Its name is reserved for future use. + *

+ * Describes WebSockets message binding. + * + * @see WebSockets message binding + * @see MDN WebSockets + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class WebSocketsMessageBinding extends com.asyncapi.bindings.websockets.WebSocketsMessageBinding { + + public WebSocketsMessageBinding() { + this.setBindingVersion("0.1.0"); + } + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/websockets/v0/_1_0/operation/WebSocketsOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/websockets/v0/_1_0/operation/WebSocketsOperationBinding.java new file mode 100644 index 00000000..0a81aff5 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/websockets/v0/_1_0/operation/WebSocketsOperationBinding.java @@ -0,0 +1,38 @@ +package com.asyncapi.bindings.websockets.v0._1_0.operation; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. + *

+ * Its name is reserved for future use. + *

+ * Describes WebSockets operation binding. + * + * @see WebSockets operation binding + * @see MDN WebSockets + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class WebSocketsOperationBinding extends com.asyncapi.bindings.websockets.WebSocketsOperationBinding { + + public WebSocketsOperationBinding() { + this.setBindingVersion("0.1.0"); + } + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/bindings/websockets/v0/_1_0/server/WebSocketsServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/bindings/websockets/v0/_1_0/server/WebSocketsServerBinding.java new file mode 100644 index 00000000..fc71ccd1 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/bindings/websockets/v0/_1_0/server/WebSocketsServerBinding.java @@ -0,0 +1,38 @@ +package com.asyncapi.bindings.websockets.v0._1_0.server; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.jetbrains.annotations.Nullable; + +/** + * This class MUST NOT contain any properties. + *

+ * Its name is reserved for future use. + *

+ * Describes WebSockets server binding. + * + * @see WebSockets server binding + * @see MDN WebSockets + * @author Pavel Bodiachevskii + * @version 0.1.0 + * @since 1.0.0-RC2 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class WebSocketsServerBinding extends com.asyncapi.bindings.websockets.WebSocketsServerBinding { + + public WebSocketsServerBinding() { + this.setBindingVersion("0.1.0"); + } + + @Override + public String getBindingVersion() { + return "0.1.0"; + } + + @Override + public void setBindingVersion(@Nullable String bindingVersion) { + super.setBindingVersion("0.1.0"); + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/Type.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/Type.java new file mode 100644 index 00000000..288cdce0 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/Type.java @@ -0,0 +1,18 @@ +package com.asyncapi.schemas; + +/** + * Json Schema type. + * + * @author Pavel Bodiachevskii + */ +public class Type { + + public final static String NULL = "null"; + public final static String BOOLEAN = "boolean"; + public final static String OBJECT = "object"; + public final static String ARRAY = "array"; + public final static String NUMBER = "number"; + public final static String STRING = "string"; + public final static String INTEGER = "integer"; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/AsyncAPISchema.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/AsyncAPISchema.java similarity index 98% rename from asyncapi-core/src/main/java/com/asyncapi/v3/schema/AsyncAPISchema.java rename to asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/AsyncAPISchema.java index 888b5994..de15caf6 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/AsyncAPISchema.java +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/AsyncAPISchema.java @@ -1,15 +1,18 @@ -package com.asyncapi.v3.schema; +package com.asyncapi.schemas.asyncapi; -import com.asyncapi.v3.ExtendableObject; +import com.asyncapi.schemas.asyncapi.multiformat.MultiFormatSchema; +import com.asyncapi.schemas.serde.asyncapi.AsyncAPISchemaAdditionalPropertiesDeserializer; +import com.asyncapi.schemas.serde.asyncapi.AsyncAPISchemaAnyValueDeserializer; +import com.asyncapi.schemas.serde.asyncapi.AsyncAPISchemaItemsDeserializer; import com.asyncapi.v3._0_0.jackson.model.ExternalDocumentationDeserializer; -import com.asyncapi.v3.jackson.schema.AsyncAPISchemaAdditionalPropertiesDeserializer; -import com.asyncapi.v3.jackson.schema.AsyncAPISchemaAnyValueDeserializer; -import com.asyncapi.v3.jackson.schema.AsyncAPISchemaItemsDeserializer; -import com.asyncapi.v3.schema.multiformat.MultiFormatSchema; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyDescription; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import lombok.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; import org.jetbrains.annotations.Nullable; import javax.validation.constraints.Min; diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/ExtendableObject.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/ExtendableObject.java new file mode 100644 index 00000000..3aa7773e --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/ExtendableObject.java @@ -0,0 +1,56 @@ +package com.asyncapi.schemas.asyncapi; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +import java.util.HashMap; +import java.util.Map; +import java.util.regex.Pattern; + +/** + * While the AsyncAPI Specification tries to accommodate most use cases, + * additional data can be added to extend the specification at certain points. + *

+ * The extensions properties are implemented as patterned fields that are always prefixed by "x-". + *

+ * The extensions may or may not be supported by the available tooling, but those may be extended as + * well to add requested support (if tools are internal or open-sourced). + * + * @see Specification Extensions + * @author Pavel Bodiachevskii + * @version 3.0.0 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonIgnoreProperties({"extensionFields"}) +public class ExtendableObject { + + public static final Pattern extensionPropertyNamePattern = Pattern.compile("^x-[\\w.\\x2d_]+$"); + + /** + * Extension fields in the form x-extension-field-name for the exposed API. + */ + @Nullable + @JsonAnyGetter + protected Map extensionFields; + + @JsonAnySetter + protected final void readExtensionProperty(String name, Object value) { + if (extensionPropertyNamePattern.matcher(name).matches()) { + if (extensionFields == null) { + extensionFields = new HashMap<>(); + } + + extensionFields.put(name, value); + } else { + throw new IllegalArgumentException(String.format("\"%s\" is not valid extension property", name)); + } + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/Reference.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/Reference.java new file mode 100644 index 00000000..17cb8490 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/Reference.java @@ -0,0 +1,40 @@ +package com.asyncapi.schemas.asyncapi; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; + +/** + * A simple object to allow referencing other components in the specification, internally and externally. + *

+ * The Reference Object is defined by JSON Reference and follows the same structure, behavior and rules. + * A JSON Reference SHALL only be used to refer to a schema that is formatted in either JSON or YAML. + * In the case of a YAML-formatted Schema, the JSON Reference SHALL be applied to the JSON representation of + * that schema. The JSON representation SHALL be made by applying the conversion described here. + *

+ * For this specification, reference resolution is done as defined by the JSON Reference specification and not by + * the JSON Schema specification. + *

+ * This object cannot be extended with additional properties and any properties added SHALL be ignored. + * + * @see Reference + * @author Pavel Bodiachevskii + * @version 3.0.0 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class Reference { + + /** + * Required. + *

+ * The reference string. + */ + @NotNull + @JsonProperty(value = "$ref") + private String ref = ""; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/multiformat/AsyncAPIFormatSchema.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/multiformat/AsyncAPIFormatSchema.java similarity index 94% rename from asyncapi-core/src/main/java/com/asyncapi/v3/schema/multiformat/AsyncAPIFormatSchema.java rename to asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/multiformat/AsyncAPIFormatSchema.java index cb3fdb15..d0166596 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/multiformat/AsyncAPIFormatSchema.java +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/multiformat/AsyncAPIFormatSchema.java @@ -1,6 +1,6 @@ -package com.asyncapi.v3.schema.multiformat; +package com.asyncapi.schemas.asyncapi.multiformat; -import com.asyncapi.v3.schema.AsyncAPISchema; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.EqualsAndHashCode; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/multiformat/AvroFormatSchema.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/multiformat/AvroFormatSchema.java similarity index 77% rename from asyncapi-core/src/main/java/com/asyncapi/v3/schema/multiformat/AvroFormatSchema.java rename to asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/multiformat/AvroFormatSchema.java index 8ef1618c..029a0728 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/multiformat/AvroFormatSchema.java +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/multiformat/AvroFormatSchema.java @@ -1,7 +1,10 @@ -package com.asyncapi.v3.schema.multiformat; +package com.asyncapi.schemas.asyncapi.multiformat; -import com.asyncapi.v3.schema.AsyncAPISchema; -import com.asyncapi.v3.schema.avro.v1._9_0.jackson.AvroSchemaDeserializer; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.schemas.asyncapi.Reference; +import com.asyncapi.schemas.avro.v1._9_0.AvroSchema; +import com.asyncapi.schemas.avro.v1._9_0.AvroSchemaUnion; +import com.asyncapi.schemas.avro.v1._9_0.serde.AvroSchemaDeserializer; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; @@ -36,9 +39,9 @@ public AvroFormatSchema( /** * Schema MUST be one of: *

    - *
  • {@link com.asyncapi.v3.schema.avro.v1._9_0.AvroSchema}
  • - *
  • {@link com.asyncapi.v3.schema.avro.v1._9_0.AvroSchemaUnion}
  • - *
  • {@link com.asyncapi.v3.Reference}
  • + *
  • {@link AvroSchema}
  • + *
  • {@link AvroSchemaUnion}
  • + *
  • {@link Reference}
  • *
* * @param schema Avro Schema or Reference @@ -51,9 +54,9 @@ public void setSchema(@NotNull Object schema) { /** * Schema: *
    - *
  • {@link com.asyncapi.v3.schema.avro.v1._9_0.AvroSchema}
  • - *
  • {@link com.asyncapi.v3.schema.avro.v1._9_0.AvroSchemaUnion}
  • - *
  • {@link com.asyncapi.v3.Reference}
  • + *
  • {@link AvroSchema}
  • + *
  • {@link AvroSchemaUnion}
  • + *
  • {@link Reference}
  • *
*/ @NotNull diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/multiformat/JsonFormatSchema.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/multiformat/JsonFormatSchema.java similarity index 90% rename from asyncapi-core/src/main/java/com/asyncapi/v3/schema/multiformat/JsonFormatSchema.java rename to asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/multiformat/JsonFormatSchema.java index 8165167f..565b135b 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/multiformat/JsonFormatSchema.java +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/multiformat/JsonFormatSchema.java @@ -1,7 +1,7 @@ -package com.asyncapi.v3.schema.multiformat; +package com.asyncapi.schemas.asyncapi.multiformat; -import com.asyncapi.v3.schema.AsyncAPISchema; -import com.asyncapi.v3.schema.JsonSchema; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.schemas.json.JsonSchema; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.EqualsAndHashCode; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/multiformat/MultiFormatSchema.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/multiformat/MultiFormatSchema.java similarity index 94% rename from asyncapi-core/src/main/java/com/asyncapi/v3/schema/multiformat/MultiFormatSchema.java rename to asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/multiformat/MultiFormatSchema.java index f8aab37b..6a6e1cb9 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/multiformat/MultiFormatSchema.java +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/multiformat/MultiFormatSchema.java @@ -1,7 +1,8 @@ -package com.asyncapi.v3.schema.multiformat; +package com.asyncapi.schemas.asyncapi.multiformat; -import com.asyncapi.v3.ExtendableObject; -import com.asyncapi.v3.schema.AsyncAPISchema; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.asyncapi.schemas.asyncapi.Reference; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonSubTypes; @@ -13,6 +14,7 @@ * The Multi Format Schema Object represents a schema definition. It differs from the {@link AsyncAPISchema} in that it supports * multiple schema formats or languages (e.g., JSON Schema, Avro, etc.). * + * @param schema to use * @see Multi Format Schema * @see Schema * @author Pavel Bodiachevskii @@ -124,7 +126,7 @@ public MultiFormatSchema( *

* In such a case, this would make the Multi Format Schema Object equivalent to the {@link AsyncAPISchema}. *

- * When using {@link com.asyncapi.v3.Reference} within the {@link #getSchema()}, the schemaFormat of the resource being referenced MUST match + * When using {@link Reference} within the {@link #getSchema()}, the schemaFormat of the resource being referenced MUST match * the schemaFormat of the {@link #getSchema()} that contains the initial reference. *

* For example, if you reference Avro schema, then schemaFormat of referencing resource and the resource being reference MUST match. @@ -135,7 +137,7 @@ public MultiFormatSchema( * A custom value MUST NOT refer to one of the schema formats listed in the table. *

*

- * When using {@link com.asyncapi.v3.Reference} within the {@link #getSchema()}, the schemaFormat of the referenced resource MUST + * When using {@link Reference} within the {@link #getSchema()}, the schemaFormat of the referenced resource MUST * match the schemaFormat of the schema containing the reference. * * @see Schema formats table diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/multiformat/OpenAPIFormatSchema.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/multiformat/OpenAPIFormatSchema.java similarity index 89% rename from asyncapi-core/src/main/java/com/asyncapi/v3/schema/multiformat/OpenAPIFormatSchema.java rename to asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/multiformat/OpenAPIFormatSchema.java index 3f1f4bc9..c75dc7bd 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/multiformat/OpenAPIFormatSchema.java +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/multiformat/OpenAPIFormatSchema.java @@ -1,7 +1,7 @@ -package com.asyncapi.v3.schema.multiformat; +package com.asyncapi.schemas.asyncapi.multiformat; -import com.asyncapi.v3.schema.AsyncAPISchema; -import com.asyncapi.v3.schema.openapi.v3._0_0.OpenAPISchema; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.schemas.openapi.v3._0_0.OpenAPISchema; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.EqualsAndHashCode; diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/package-info.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/package-info.java new file mode 100644 index 00000000..3f4ffce1 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/package-info.java @@ -0,0 +1,8 @@ +/** + * This module provide security schemas, used in AsyncAPI. + * + * @see Security Scheme + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +package com.asyncapi.schemas.asyncapi.security; \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/ApiKeySecurityScheme.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/ApiKeySecurityScheme.java new file mode 100644 index 00000000..2e24c424 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/ApiKeySecurityScheme.java @@ -0,0 +1,49 @@ +package com.asyncapi.schemas.asyncapi.security.v2; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * API Key Security Scheme + * + * @version 2.6.0 + * @see SecurityScheme + * @author Pavel Bodiachevskii + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class ApiKeySecurityScheme extends SecurityScheme { + + /** + * REQUIRED. + *

+ * The location of the API key. + */ + @NotNull + private ApiKeyLocation in = ApiKeyLocation.USER; + + @Builder(builderMethodName = "apiKeyBuilder") + public ApiKeySecurityScheme(@Nullable String description, + @NotNull ApiKeyLocation in) { + super(Type.API_KEY, description); + this.in = in; + } + + public enum ApiKeyLocation { + + @JsonProperty("user") + USER, + @JsonProperty("password") + PASSWORD + + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/OpenIdConnectSecurityScheme.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/OpenIdConnectSecurityScheme.java new file mode 100644 index 00000000..cc48d0e9 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/OpenIdConnectSecurityScheme.java @@ -0,0 +1,39 @@ +package com.asyncapi.schemas.asyncapi.security.v2; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * OpenID Connect Security Scheme + * + * @version 2.6.0 + * @see SecurityScheme + * @author Pavel Bodiachevskii + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class OpenIdConnectSecurityScheme extends SecurityScheme { + + /** + * REQUIRED. + *

+ * OpenId Connect URL to discover OAuth2 configuration values. This MUST be in the form of a URL. + */ + @NotNull + private String openIdConnectUrl = ""; + + @Builder(builderMethodName = "openIdBuilder") + public OpenIdConnectSecurityScheme(@Nullable String description, + @NotNull String openIdConnectUrl) { + super(Type.OPENID_CONNECT, description); + this.openIdConnectUrl = openIdConnectUrl; + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/SecurityScheme.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/SecurityScheme.java new file mode 100644 index 00000000..70d96608 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/SecurityScheme.java @@ -0,0 +1,123 @@ +package com.asyncapi.schemas.asyncapi.security.v2; + +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.asyncapi.schemas.asyncapi.security.v2.http.HttpApiKeySecurityScheme; +import com.asyncapi.schemas.asyncapi.security.v2.http.HttpSecurityScheme; +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.OAuth2SecurityScheme; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * Defines a security scheme that can be used by the operations. Supported schemes are: + *

    + *
  • User/Password.
  • + *
  • API key (either as user or as password).
  • + *
  • X.509 certificate.
  • + *
  • End-to-end encryption (either symmetric or asymmetric).
  • + *
  • HTTP authentication.
  • + *
  • HTTP API key.
  • + *
  • OAuth2’s common flows (Implicit, Resource Owner Protected Credentials, Client Credentials and Authorization Code) as defined in RFC6749.
  • + *
  • OpenID Connect Discovery.
  • + *
  • SASL (Simple Authentication and Security Layer) as defined in RFC4422.
  • + *
+ * + * This object MAY be extended with Specification Extensions. + * + * @version 2.6.0 + * @see Security Scheme Object + * @author Pavel Bodiachevskii + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "type", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = SecurityScheme.class, name = "userPassword"), + @JsonSubTypes.Type(value = ApiKeySecurityScheme.class, name = "apiKey"), + @JsonSubTypes.Type(value = SecurityScheme.class, name = "X509"), + @JsonSubTypes.Type(value = SecurityScheme.class, name = "symmetricEncryption"), + @JsonSubTypes.Type(value = SecurityScheme.class, name = "asymmetricEncryption"), + @JsonSubTypes.Type(value = HttpApiKeySecurityScheme.class, name = "httpApiKey"), + @JsonSubTypes.Type(value = HttpSecurityScheme.class, name = "http"), + @JsonSubTypes.Type(value = OAuth2SecurityScheme.class, name = "oauth2"), + @JsonSubTypes.Type(value = OpenIdConnectSecurityScheme.class, name = "openIdConnect"), + @JsonSubTypes.Type(value = SecurityScheme.class, name = "plain"), + @JsonSubTypes.Type(value = SecurityScheme.class, name = "scramSha256"), + @JsonSubTypes.Type(value = SecurityScheme.class, name = "scramSha512"), + @JsonSubTypes.Type(value = SecurityScheme.class, name = "gssapi"), +}) +@EqualsAndHashCode(callSuper = true) +public class SecurityScheme extends ExtendableObject { + + /** + * REQUIRED. + *

+ * The type of the security scheme. Valid values are: + *

    + *
  • userPassword
  • + *
  • apiKey
  • + *
  • X509
  • + *
  • symmetricEncryption
  • + *
  • asymmetricEncryption
  • + *
  • httpApiKey
  • + *
  • http
  • + *
  • oauth2
  • + *
  • openIdConnect
  • + *
+ */ + @NotNull + @Builder.Default + private Type type = Type.USER_PASSWORD; + + /** + * A short description for security scheme. CommonMark syntax MAY be used for rich text representation. + */ + @Nullable + private String description; + + public enum Type { + + @JsonProperty("userPassword") + USER_PASSWORD, + @JsonProperty("apiKey") + API_KEY, + @JsonProperty("X509") + X509, + @JsonProperty("symmetricEncryption") + SYMMETRIC_ENCRYPTION, + @JsonProperty("asymmetricEncryption") + ASYMMETRIC_ENCRYPTION, + @JsonProperty("httpApiKey") + HTTP_API_KEY, + @JsonProperty("http") + HTTP, + @JsonProperty("oauth2") + OAUTH2, + @JsonProperty("openIdConnect") + OPENID_CONNECT, + @JsonProperty("plain") + PLAIN, + @JsonProperty("scramSha256") + SCRAM_SHA256, + @JsonProperty("scramSha512") + SCRAM_SHA512, + @JsonProperty("gssapi") + GSSAPI + + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/http/HttpApiKeySecurityScheme.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/http/HttpApiKeySecurityScheme.java new file mode 100644 index 00000000..3518a078 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/http/HttpApiKeySecurityScheme.java @@ -0,0 +1,62 @@ +package com.asyncapi.schemas.asyncapi.security.v2.http; + +import com.asyncapi.schemas.asyncapi.security.v2.SecurityScheme; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * HTTP API Key Security Scheme + * + * @version 2.6.0 + * @see SecurityScheme + * @author Pavel Bodiachevskii + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class HttpApiKeySecurityScheme extends SecurityScheme { + + /** + * REQUIRED. + *

+ * The name of the header, query or cookie parameter to be used. + */ + @NotNull + private String name = ""; + + /** + * REQUIRED. + *

+ * The location of the API key. + */ + @Nullable + private ApiKeyLocation in; + + @Builder(builderMethodName = "httpApiKeyBuilder") + public HttpApiKeySecurityScheme(@Nullable String description, + @NotNull String name, + @Nullable ApiKeyLocation in) { + super(Type.HTTP_API_KEY, description); + this.name = name; + this.in = in; + } + + public enum ApiKeyLocation { + + @JsonProperty("query") + QUERY, + @JsonProperty("header") + HEADER, + @JsonProperty("cookie") + COOKIE + + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/http/HttpSecurityScheme.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/http/HttpSecurityScheme.java new file mode 100644 index 00000000..9f755132 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/http/HttpSecurityScheme.java @@ -0,0 +1,49 @@ +package com.asyncapi.schemas.asyncapi.security.v2.http; + +import com.asyncapi.schemas.asyncapi.security.v2.SecurityScheme; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * HTTP Security Scheme + * + * @version 2.6.0 + * @see SecurityScheme + * @author Pavel Bodiachevskii + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class HttpSecurityScheme extends SecurityScheme { + + /** + * REQUIRED. + *

+ * The name of the HTTP Authorization scheme to be used in the Authorization header as defined in RFC7235. + */ + @NotNull + private String scheme = ""; + + /** + * 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. + */ + @Nullable + private String bearerFormat; + + @Builder(builderMethodName = "httpBuilder") + public HttpSecurityScheme(@Nullable String description, + @NotNull String scheme, + @Nullable String bearerFormat) { + super(Type.HTTP, description); + this.scheme = scheme; + this.bearerFormat = bearerFormat; + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/oauth2/OAuth2SecurityScheme.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/oauth2/OAuth2SecurityScheme.java new file mode 100644 index 00000000..124ab78d --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/oauth2/OAuth2SecurityScheme.java @@ -0,0 +1,40 @@ +package com.asyncapi.schemas.asyncapi.security.v2.oauth2; + +import com.asyncapi.schemas.asyncapi.security.v2.SecurityScheme; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * OAuth2 Security Scheme + * + * @version 2.6.0 + * @see SecurityScheme + * @author Pavel Bodiachevskii + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class OAuth2SecurityScheme extends SecurityScheme { + + /** + * REQUIRED. + *

+ * An object containing configuration information for the flow types supported. + */ + @NotNull + private OAuthFlows flows = new OAuthFlows(); + + @Builder(builderMethodName = "oauth2Builder") + public OAuth2SecurityScheme(@Nullable String description, + @NotNull OAuthFlows flows) { + super(Type.OAUTH2, description); + this.flows = flows; + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/oauth2/OAuthFlows.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/oauth2/OAuthFlows.java new file mode 100644 index 00000000..595859ea --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/oauth2/OAuthFlows.java @@ -0,0 +1,55 @@ +package com.asyncapi.schemas.asyncapi.security.v2.oauth2; + +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow.AuthorizationCodeOAuthFlow; +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow.ClientCredentialsOAuthFlow; +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow.ImplicitOAuthFlow; +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow.PasswordOAuthFlow; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Allows configuration of the supported OAuth Flows. + *

+ * This object MAY be extended with Specification Extensions. + * + * @version 2.6.0 + * @see OAuth Flows Object + * @author Pavel Bodiachevskii + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class OAuthFlows extends ExtendableObject { + + /** + * Configuration for the OAuth Implicit flow + */ + @Nullable + private ImplicitOAuthFlow implicit; + + /** + * Configuration for the OAuth Resource Owner Protected Credentials flow + */ + @Nullable + private PasswordOAuthFlow password; + + /** + * Configuration for the OAuth Client Credentials flow. + */ + @Nullable + private ClientCredentialsOAuthFlow clientCredentials; + + /** + * Configuration for the OAuth Authorization Code flow + */ + @Nullable + private AuthorizationCodeOAuthFlow authorizationCode; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/oauth2/flow/AuthorizationCodeOAuthFlow.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/oauth2/flow/AuthorizationCodeOAuthFlow.java new file mode 100644 index 00000000..1e61ee81 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/oauth2/flow/AuthorizationCodeOAuthFlow.java @@ -0,0 +1,52 @@ +package com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Map; + +/** + * This object MAY be extended with Specification Extensions. + * + * @version 2.6.0 + * @see OAuth Flow Object + * @author Pavel Bodiachevskii + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class AuthorizationCodeOAuthFlow extends OAuthFlow { + + /** + * REQUIRED. + *

+ * The authorization URL to be used for this flow. This MUST be in the form of an absolute URL. + */ + @NotNull + private String authorizationUrl = ""; + + /** + * REQUIRED. + *

+ * The token URL to be used for this flow. This MUST be in the form of an absolute URL. + */ + @NotNull + private String tokenUrl = ""; + + @Builder(builderMethodName = "authorizationCodeBuilder") + public AuthorizationCodeOAuthFlow(@Nullable String refreshUrl, + @NotNull Map scopes, + @NotNull String authorizationUrl, + @NotNull String tokenUrl) { + super(refreshUrl, scopes); + this.authorizationUrl = authorizationUrl; + this.tokenUrl = tokenUrl; + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/oauth2/flow/ClientCredentialsOAuthFlow.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/oauth2/flow/ClientCredentialsOAuthFlow.java new file mode 100644 index 00000000..b0c63ce9 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/oauth2/flow/ClientCredentialsOAuthFlow.java @@ -0,0 +1,45 @@ +package com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow; + +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Map; + +/** + * Configuration for the OAuth Client Credentials flow + *

+ * This object MAY be extended with {@link ExtendableObject}. + * + * @version 2.6.0 + * @see OAuth Flow Object + * @author Pavel Bodiachevskii + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class ClientCredentialsOAuthFlow extends OAuthFlow { + + /** + * REQUIRED. + *

+ * The token URL to be used for this flow. This MUST be in the form of a URL. + */ + @NotNull + private String tokenUrl = ""; + + @Builder(builderMethodName = "clientCredentialsBuilder") + public ClientCredentialsOAuthFlow(@Nullable String refreshUrl, + @NotNull Map scopes, + @NotNull String tokenUrl) { + super(refreshUrl, scopes); + this.tokenUrl = tokenUrl; + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/oauth2/flow/ImplicitOAuthFlow.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/oauth2/flow/ImplicitOAuthFlow.java new file mode 100644 index 00000000..98ce95c2 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/oauth2/flow/ImplicitOAuthFlow.java @@ -0,0 +1,45 @@ +package com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow; + +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Map; + +/** + * Configuration for the OAuth Implicit flow + *

+ * This object MAY be extended with {@link ExtendableObject}. + * + * @version 2.6.0 + * @see OAuth Flow Object + * @author Pavel Bodiachevskii + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class ImplicitOAuthFlow extends OAuthFlow { + + /** + * REQUIRED. + *

+ * The authorization URL to be used for this flow. This MUST be in the form of a URL + */ + @NotNull + private String authorizationUrl = ""; + + @Builder(builderMethodName = "implicitBuilder") + public ImplicitOAuthFlow(@Nullable String refreshUrl, + @NotNull Map scopes, + @NotNull String authorizationUrl) { + super(refreshUrl, scopes); + this.authorizationUrl = authorizationUrl; + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/oauth2/flow/OAuthFlow.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/oauth2/flow/OAuthFlow.java new file mode 100644 index 00000000..2b19ded0 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/oauth2/flow/OAuthFlow.java @@ -0,0 +1,47 @@ +package com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow; + +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.HashMap; +import java.util.Map; + +/** + * Configuration details for a supported OAuth Flow + *

+ * This object MAY be extended with Specification Extensions. + * + * @version 2.6.0 + * @see OAuth Flow Object + * @author Pavel Bodiachevskii + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class OAuthFlow extends ExtendableObject { + + /** + * The URL to be used for obtaining refresh tokens. This MUST be in the form of an absolute URL. + */ + @Nullable + @Builder.Default + private String refreshUrl = ""; + + /** + * REQUIRED. + *

+ * The available scopes for the OAuth2 security scheme. A map between the scope name and a short description for it. + */ + @NotNull + @Builder.Default + private Map scopes = new HashMap<>(); + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/oauth2/flow/PasswordOAuthFlow.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/oauth2/flow/PasswordOAuthFlow.java new file mode 100644 index 00000000..cdca7f33 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v2/oauth2/flow/PasswordOAuthFlow.java @@ -0,0 +1,45 @@ +package com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow; + +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Map; + +/** + * Configuration for the OAuth Resource Owner Protected Credentials flow + *

+ * This object MAY be extended with {@link ExtendableObject}. + * + * @version 2.6.0 + * @see OAuth Flow Object + * @author Pavel Bodiachevskii + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class PasswordOAuthFlow extends OAuthFlow { + + /** + * REQUIRED. + *

+ * The token URL to be used for this flow. This MUST be in the form of a URL. + */ + @NotNull + private String tokenUrl = ""; + + @Builder(builderMethodName = "passwordBuilder") + public PasswordOAuthFlow(@Nullable String refreshUrl, + @NotNull Map scopes, + @NotNull String tokenUrl) { + super(refreshUrl, scopes); + this.tokenUrl = tokenUrl; + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/ApiKeySecurityScheme.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/ApiKeySecurityScheme.java new file mode 100644 index 00000000..7297efd2 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/ApiKeySecurityScheme.java @@ -0,0 +1,49 @@ +package com.asyncapi.schemas.asyncapi.security.v3; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * API Key Security Scheme + * + * @see SecurityScheme + * @author Pavel Bodiachevskii + * @version 3.0.0 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class ApiKeySecurityScheme extends SecurityScheme { + + /** + * REQUIRED. + *

+ * The location of the API key. + */ + @NotNull + private ApiKeyLocation in = ApiKeyLocation.USER; + + @Builder(builderMethodName = "apiKeyBuilder") + public ApiKeySecurityScheme(@Nullable String description, + @NotNull ApiKeyLocation in) { + super(Type.API_KEY, description); + this.in = in; + } + + public enum ApiKeyLocation { + + @JsonProperty("user") + USER, + @JsonProperty("password") + PASSWORD + + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/OpenIdConnectSecurityScheme.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/OpenIdConnectSecurityScheme.java new file mode 100644 index 00000000..00d29367 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/OpenIdConnectSecurityScheme.java @@ -0,0 +1,49 @@ +package com.asyncapi.schemas.asyncapi.security.v3; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +/** + * OpenID Connect Security Scheme + * + * @see SecurityScheme + * @author Pavel Bodiachevskii + * @version 3.0.0 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class OpenIdConnectSecurityScheme extends SecurityScheme { + + /** + * REQUIRED. + *

+ * OpenId Connect URL to discover OAuth2 configuration values. This MUST be in the form of an absolute URL. + */ + @NotNull + private String openIdConnectUrl = ""; + + /** + * List of the needed scope names. An empty array means no scopes are needed. + */ + @Nullable + private List scopes; + + @Builder(builderMethodName = "openIdBuilder") + public OpenIdConnectSecurityScheme(@Nullable String description, + @NotNull String openIdConnectUrl, + @Nullable List scopes) { + super(Type.OPENID_CONNECT, description); + this.openIdConnectUrl = openIdConnectUrl; + this.scopes = scopes; + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/SecurityScheme.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/SecurityScheme.java new file mode 100644 index 00000000..26ff8cfe --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/SecurityScheme.java @@ -0,0 +1,124 @@ +package com.asyncapi.schemas.asyncapi.security.v3; + +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.asyncapi.schemas.asyncapi.security.v3.http.HttpApiKeySecurityScheme; +import com.asyncapi.schemas.asyncapi.security.v3.http.HttpSecurityScheme; +import com.asyncapi.schemas.asyncapi.security.v3.oauth2.OAuth2SecurityScheme; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * Defines a security scheme that can be used by the operations. Supported schemes are: + *

    + *
  • User/Password.
  • + *
  • API key (either as user or as password).
  • + *
  • X.509 certificate.
  • + *
  • End-to-end encryption (either symmetric or asymmetric).
  • + *
  • HTTP authentication.
  • + *
  • HTTP API key.
  • + *
  • OAuth2’s common flows (Implicit, Resource Owner Protected Credentials, Client Credentials and Authorization Code) as defined in RFC6749.
  • + *
  • OpenID Connect Discovery.
  • + *
  • SASL (Simple Authentication and Security Layer) as defined in RFC4422.
  • + *
+ * + * This object MAY be extended with {@link ExtendableObject}. + * + * @see Specification Extensions + * @see Security Scheme + * @author Pavel Bodiachevskii + * @version 3.0.0 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.EXISTING_PROPERTY, + property = "type", + visible = true +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = SecurityScheme.class, name = "userPassword"), + @JsonSubTypes.Type(value = ApiKeySecurityScheme.class, name = "apiKey"), + @JsonSubTypes.Type(value = SecurityScheme.class, name = "X509"), + @JsonSubTypes.Type(value = SecurityScheme.class, name = "symmetricEncryption"), + @JsonSubTypes.Type(value = SecurityScheme.class, name = "asymmetricEncryption"), + @JsonSubTypes.Type(value = HttpApiKeySecurityScheme.class, name = "httpApiKey"), + @JsonSubTypes.Type(value = HttpSecurityScheme.class, name = "http"), + @JsonSubTypes.Type(value = OAuth2SecurityScheme.class, name = "oauth2"), + @JsonSubTypes.Type(value = OpenIdConnectSecurityScheme.class, name = "openIdConnect"), + @JsonSubTypes.Type(value = SecurityScheme.class, name = "plain"), + @JsonSubTypes.Type(value = SecurityScheme.class, name = "scramSha256"), + @JsonSubTypes.Type(value = SecurityScheme.class, name = "scramSha512"), + @JsonSubTypes.Type(value = SecurityScheme.class, name = "gssapi"), +}) +@EqualsAndHashCode(callSuper = true) +public class SecurityScheme extends ExtendableObject { + + /** + * REQUIRED. + *

+ * The type of the security scheme. Valid values are: + *

    + *
  • userPassword
  • + *
  • apiKey
  • + *
  • X509
  • + *
  • symmetricEncryption
  • + *
  • asymmetricEncryption
  • + *
  • httpApiKey
  • + *
  • http
  • + *
  • oauth2
  • + *
  • openIdConnect
  • + *
+ */ + @NotNull + @Builder.Default + private Type type = Type.USER_PASSWORD; + + /** + * A short description for security scheme. CommonMark syntax MAY be used for rich text representation. + */ + @Nullable + private String description; + + public enum Type { + + @JsonProperty("userPassword") + USER_PASSWORD, + @JsonProperty("apiKey") + API_KEY, + @JsonProperty("X509") + X509, + @JsonProperty("symmetricEncryption") + SYMMETRIC_ENCRYPTION, + @JsonProperty("asymmetricEncryption") + ASYMMETRIC_ENCRYPTION, + @JsonProperty("httpApiKey") + HTTP_API_KEY, + @JsonProperty("http") + HTTP, + @JsonProperty("oauth2") + OAUTH2, + @JsonProperty("openIdConnect") + OPENID_CONNECT, + @JsonProperty("plain") + PLAIN, + @JsonProperty("scramSha256") + SCRAM_SHA256, + @JsonProperty("scramSha512") + SCRAM_SHA512, + @JsonProperty("gssapi") + GSSAPI + + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/http/HttpApiKeySecurityScheme.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/http/HttpApiKeySecurityScheme.java new file mode 100644 index 00000000..6c96ebbb --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/http/HttpApiKeySecurityScheme.java @@ -0,0 +1,62 @@ +package com.asyncapi.schemas.asyncapi.security.v3.http; + +import com.asyncapi.schemas.asyncapi.security.v3.SecurityScheme; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * HTTP API Key Security Scheme + * + * @see SecurityScheme + * @author Pavel Bodiachevskii + * @version 3.0.0 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class HttpApiKeySecurityScheme extends SecurityScheme { + + /** + * REQUIRED. + *

+ * The name of the header, query or cookie parameter to be used. + */ + @NotNull + private String name = ""; + + /** + * REQUIRED. + *

+ * The location of the API key. + */ + @Nullable + private ApiKeyLocation in; + + @Builder(builderMethodName = "httpApiKeyBuilder") + public HttpApiKeySecurityScheme(@Nullable String description, + @NotNull String name, + @Nullable ApiKeyLocation in) { + super(Type.HTTP_API_KEY, description); + this.name = name; + this.in = in; + } + + public enum ApiKeyLocation { + + @JsonProperty("query") + QUERY, + @JsonProperty("header") + HEADER, + @JsonProperty("cookie") + COOKIE + + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/http/HttpSecurityScheme.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/http/HttpSecurityScheme.java new file mode 100644 index 00000000..2a7ab5cb --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/http/HttpSecurityScheme.java @@ -0,0 +1,49 @@ +package com.asyncapi.schemas.asyncapi.security.v3.http; + +import com.asyncapi.schemas.asyncapi.security.v3.SecurityScheme; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * HTTP Security Scheme + * + * @see SecurityScheme + * @author Pavel Bodiachevskii + * @version 3.0.0 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class HttpSecurityScheme extends SecurityScheme { + + /** + * REQUIRED. + *

+ * The name of the HTTP Authorization scheme to be used in the Authorization header as defined in RFC7235. + */ + @NotNull + private String scheme = ""; + + /** + * 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. + */ + @Nullable + private String bearerFormat; + + @Builder(builderMethodName = "httpBuilder") + public HttpSecurityScheme(@Nullable String description, + @NotNull String scheme, + @Nullable String bearerFormat) { + super(Type.HTTP, description); + this.scheme = scheme; + this.bearerFormat = bearerFormat; + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/oauth2/OAuth2SecurityScheme.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/oauth2/OAuth2SecurityScheme.java new file mode 100644 index 00000000..cce42f84 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/oauth2/OAuth2SecurityScheme.java @@ -0,0 +1,50 @@ +package com.asyncapi.schemas.asyncapi.security.v3.oauth2; + +import com.asyncapi.schemas.asyncapi.security.v3.SecurityScheme; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +/** + * OAuth2 Security Scheme + * + * @see SecurityScheme + * @author Pavel Bodiachevskii + * @version 3.0.0 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class OAuth2SecurityScheme extends SecurityScheme { + + /** + * REQUIRED. + *

+ * An object containing configuration information for the flow types supported. + */ + @NotNull + private OAuthFlows flows = new OAuthFlows(); + + /** + * List of the needed scope names. + */ + @Nullable + private List scopes; + + @Builder(builderMethodName = "oauth2Builder") + public OAuth2SecurityScheme(@Nullable String description, + @NotNull OAuthFlows flows, + @Nullable List scopes) { + super(Type.OAUTH2, description); + this.flows = flows; + this.scopes = scopes; + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/oauth2/OAuthFlows.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/oauth2/OAuthFlows.java new file mode 100644 index 00000000..4eb8e6cb --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/oauth2/OAuthFlows.java @@ -0,0 +1,56 @@ +package com.asyncapi.schemas.asyncapi.security.v3.oauth2; + +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.asyncapi.schemas.asyncapi.security.v3.oauth2.flow.AuthorizationCodeOAuthFlow; +import com.asyncapi.schemas.asyncapi.security.v3.oauth2.flow.ClientCredentialsOAuthFlow; +import com.asyncapi.schemas.asyncapi.security.v3.oauth2.flow.ImplicitOAuthFlow; +import com.asyncapi.schemas.asyncapi.security.v3.oauth2.flow.PasswordOAuthFlow; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.Nullable; + +/** + * Allows configuration of the supported OAuth Flows. + *

+ * This object MAY be extended with {@link ExtendableObject}. + * + * @see OAuth Flows + * @see Security Scheme + * @author Pavel Bodiachevskii + * @version 3.0.0 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class OAuthFlows extends ExtendableObject { + + /** + * Configuration for the OAuth Implicit flow + */ + @Nullable + private ImplicitOAuthFlow implicit; + + /** + * Configuration for the OAuth Resource Owner Protected Credentials flow + */ + @Nullable + private PasswordOAuthFlow password; + + /** + * Configuration for the OAuth Client Credentials flow. + */ + @Nullable + private ClientCredentialsOAuthFlow clientCredentials; + + /** + * Configuration for the OAuth Authorization Code flow + */ + @Nullable + private AuthorizationCodeOAuthFlow authorizationCode; + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/oauth2/flow/AuthorizationCodeOAuthFlow.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/oauth2/flow/AuthorizationCodeOAuthFlow.java new file mode 100644 index 00000000..92169159 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/oauth2/flow/AuthorizationCodeOAuthFlow.java @@ -0,0 +1,54 @@ +package com.asyncapi.schemas.asyncapi.security.v3.oauth2.flow; + +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Map; + +/** + * Configuration for the OAuth Authorization Code flow + *

+ * This object MAY be extended with {@link ExtendableObject}. + * + * @see OAuth Flow + * @see Specification Extensions + * @author Pavel Bodiachevskii + * @version 3.0.0 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class AuthorizationCodeOAuthFlow extends OAuthFlow { + + /** + * REQUIRED. + *

+ * The authorization URL to be used for this flow. This MUST be in the form of an absolute URL. + */ + @NotNull + private String authorizationUrl = ""; + + /** + * The token URL to be used for this flow. This MUST be in the form of an absolute URL. + */ + @Nullable + private String tokenUrl = ""; + + @Builder(builderMethodName = "authorizationCodeBuilder") + public AuthorizationCodeOAuthFlow(@Nullable String refreshUrl, + @NotNull Map availableScopes, + @NotNull String authorizationUrl, + @Nullable String tokenUrl) { + super(refreshUrl, availableScopes); + this.authorizationUrl = authorizationUrl; + this.tokenUrl = tokenUrl; + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/oauth2/flow/ClientCredentialsOAuthFlow.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/oauth2/flow/ClientCredentialsOAuthFlow.java new file mode 100644 index 00000000..3658133a --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/oauth2/flow/ClientCredentialsOAuthFlow.java @@ -0,0 +1,46 @@ +package com.asyncapi.schemas.asyncapi.security.v3.oauth2.flow; + +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Map; + +/** + * Configuration for the OAuth Client Credentials flow + *

+ * This object MAY be extended with {@link ExtendableObject}. + * + * @see OAuth Flow + * @see Specification Extensions + * @author Pavel Bodiachevskii + * @version 3.0.0 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class ClientCredentialsOAuthFlow extends OAuthFlow { + + /** + * REQUIRED. + *

+ * The token URL to be used for this flow. This MUST be in the form of a URL. + */ + @NotNull + private String tokenUrl = ""; + + @Builder(builderMethodName = "clientCredentialsBuilder") + public ClientCredentialsOAuthFlow(@Nullable String refreshUrl, + @NotNull Map availableScopes, + @NotNull String tokenUrl) { + super(refreshUrl, availableScopes); + this.tokenUrl = tokenUrl; + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/oauth2/flow/ImplicitOAuthFlow.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/oauth2/flow/ImplicitOAuthFlow.java new file mode 100644 index 00000000..e17cbcf8 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/oauth2/flow/ImplicitOAuthFlow.java @@ -0,0 +1,46 @@ +package com.asyncapi.schemas.asyncapi.security.v3.oauth2.flow; + +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Map; + +/** + * Configuration for the OAuth Implicit flow + *

+ * This object MAY be extended with {@link ExtendableObject}. + * + * @see OAuth Flow + * @see Specification Extensions + * @author Pavel Bodiachevskii + * @version 3.0.0 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class ImplicitOAuthFlow extends OAuthFlow { + + /** + * REQUIRED. + *

+ * The authorization URL to be used for this flow. This MUST be in the form of a URL + */ + @NotNull + private String authorizationUrl = ""; + + @Builder(builderMethodName = "implicitBuilder") + public ImplicitOAuthFlow(@Nullable String refreshUrl, + @NotNull Map scopes, + @NotNull String authorizationUrl) { + super(refreshUrl, scopes); + this.authorizationUrl = authorizationUrl; + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/oauth2/flow/OAuthFlow.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/oauth2/flow/OAuthFlow.java new file mode 100644 index 00000000..ec3d492f --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/oauth2/flow/OAuthFlow.java @@ -0,0 +1,48 @@ +package com.asyncapi.schemas.asyncapi.security.v3.oauth2.flow; + +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.HashMap; +import java.util.Map; + +/** + * Configuration details for a supported OAuth Flow + *

+ * This object MAY be extended with {@link ExtendableObject}. + * + * @see OAuth Flow + * @see Specification Extensions + * @author Pavel Bodiachevskii + * @version 3.0.0 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class OAuthFlow extends ExtendableObject { + + /** + * The URL to be used for obtaining refresh tokens. This MUST be in the form of an absolute URL. + */ + @Nullable + @Builder.Default + private String refreshUrl = ""; + + /** + * REQUIRED. + *

+ * The available scopes for the OAuth2 security scheme. A map between the scope name and a short description for it. + */ + @NotNull + @Builder.Default + private Map availableScopes = new HashMap<>(); + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/oauth2/flow/PasswordOAuthFlow.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/oauth2/flow/PasswordOAuthFlow.java new file mode 100644 index 00000000..3ce24c18 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/asyncapi/security/v3/oauth2/flow/PasswordOAuthFlow.java @@ -0,0 +1,46 @@ +package com.asyncapi.schemas.asyncapi.security.v3.oauth2.flow; + +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Map; + +/** + * Configuration for the OAuth Resource Owner Protected Credentials flow + *

+ * This object MAY be extended with {@link ExtendableObject}. + * + * @see OAuth Flow + * @see Specification Extensions + * @author Pavel Bodiachevskii + * @version 3.0.0 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class PasswordOAuthFlow extends OAuthFlow { + + /** + * REQUIRED. + *

+ * The token URL to be used for this flow. This MUST be in the form of a URL. + */ + @NotNull + private String tokenUrl = ""; + + @Builder(builderMethodName = "passwordBuilder") + public PasswordOAuthFlow(@Nullable String refreshUrl, + @NotNull Map scopes, + @NotNull String tokenUrl) { + super(refreshUrl, scopes); + this.tokenUrl = tokenUrl; + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchema.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchema.java similarity index 99% rename from asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchema.java rename to asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchema.java index df2d7734..1f5b6607 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchema.java +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchema.java @@ -1,4 +1,4 @@ -package com.asyncapi.v3.schema.avro.v1._9_0; +package com.asyncapi.schemas.avro.v1._9_0; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonSubTypes; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchemaArray.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchemaArray.java similarity index 95% rename from asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchemaArray.java rename to asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchemaArray.java index a51a1c4e..107103eb 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchemaArray.java +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchemaArray.java @@ -1,6 +1,6 @@ -package com.asyncapi.v3.schema.avro.v1._9_0; +package com.asyncapi.schemas.avro.v1._9_0; -import com.asyncapi.v3.schema.avro.v1._9_0.jackson.AvroTypeDeserializer; +import com.asyncapi.schemas.avro.v1._9_0.serde.AvroTypeDeserializer; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.Data; @@ -13,6 +13,8 @@ import java.util.Map; /** + * Avro Array Schema + * * @see Arrays */ @Data diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchemaEnum.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchemaEnum.java similarity index 97% rename from asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchemaEnum.java rename to asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchemaEnum.java index 965239d8..6d3b308b 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchemaEnum.java +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchemaEnum.java @@ -1,6 +1,6 @@ -package com.asyncapi.v3.schema.avro.v1._9_0; +package com.asyncapi.schemas.avro.v1._9_0; -import com.asyncapi.v3.schema.avro.v1._9_0.jackson.AvroTypeDeserializer; +import com.asyncapi.schemas.avro.v1._9_0.serde.AvroTypeDeserializer; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.Data; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchemaFixed.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchemaFixed.java similarity index 97% rename from asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchemaFixed.java rename to asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchemaFixed.java index 18e8abc9..5ea938ec 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchemaFixed.java +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchemaFixed.java @@ -1,4 +1,4 @@ -package com.asyncapi.v3.schema.avro.v1._9_0; +package com.asyncapi.schemas.avro.v1._9_0; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; @@ -10,6 +10,8 @@ import java.util.Map; /** + * Avro Fixed Schema + * * @see Arrays */ @Data diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchemaLogicalType.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchemaLogicalType.java similarity index 91% rename from asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchemaLogicalType.java rename to asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchemaLogicalType.java index 98f4dd8f..bfeebed6 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchemaLogicalType.java +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchemaLogicalType.java @@ -1,7 +1,10 @@ -package com.asyncapi.v3.schema.avro.v1._9_0; +package com.asyncapi.schemas.avro.v1._9_0; import com.fasterxml.jackson.annotation.JsonProperty; +/** + * Avro Schema logical types + */ public class AvroSchemaLogicalType { @JsonProperty("decimal") diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchemaMap.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchemaMap.java similarity index 94% rename from asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchemaMap.java rename to asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchemaMap.java index 1ab2667f..ca200cec 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchemaMap.java +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchemaMap.java @@ -1,6 +1,6 @@ -package com.asyncapi.v3.schema.avro.v1._9_0; +package com.asyncapi.schemas.avro.v1._9_0; -import com.asyncapi.v3.schema.avro.v1._9_0.jackson.AvroTypeDeserializer; +import com.asyncapi.schemas.avro.v1._9_0.serde.AvroTypeDeserializer; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.Data; @@ -12,6 +12,8 @@ import java.util.Map; /** + * Avro Map Schema + * * @see Maps */ @Data diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchemaMetadata.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchemaMetadata.java similarity index 91% rename from asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchemaMetadata.java rename to asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchemaMetadata.java index 0299cf7c..14dc038f 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchemaMetadata.java +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchemaMetadata.java @@ -1,4 +1,4 @@ -package com.asyncapi.v3.schema.avro.v1._9_0; +package com.asyncapi.schemas.avro.v1._9_0; import com.fasterxml.jackson.annotation.JsonAnyGetter; import com.fasterxml.jackson.annotation.JsonAnySetter; @@ -9,6 +9,9 @@ import java.util.HashMap; import java.util.Map; +/** + * Avro Schema metadata + */ @Data @JsonIgnoreProperties({"metadata"}) public class AvroSchemaMetadata { diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchemaRecord.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchemaRecord.java similarity index 98% rename from asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchemaRecord.java rename to asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchemaRecord.java index 684742e6..55d9e762 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchemaRecord.java +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchemaRecord.java @@ -1,4 +1,4 @@ -package com.asyncapi.v3.schema.avro.v1._9_0; +package com.asyncapi.schemas.avro.v1._9_0; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchemaRecordField.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchemaRecordField.java similarity index 98% rename from asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchemaRecordField.java rename to asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchemaRecordField.java index c07d97e0..7171c53a 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchemaRecordField.java +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchemaRecordField.java @@ -1,6 +1,6 @@ -package com.asyncapi.v3.schema.avro.v1._9_0; +package com.asyncapi.schemas.avro.v1._9_0; -import com.asyncapi.v3.schema.avro.v1._9_0.jackson.AvroTypeDeserializer; +import com.asyncapi.schemas.avro.v1._9_0.serde.AvroTypeDeserializer; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.Data; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchemaType.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchemaType.java similarity index 97% rename from asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchemaType.java rename to asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchemaType.java index 4b0f77a3..27bcb8a9 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchemaType.java +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchemaType.java @@ -1,4 +1,4 @@ -package com.asyncapi.v3.schema.avro.v1._9_0; +package com.asyncapi.schemas.avro.v1._9_0; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyDescription; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchemaUnion.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchemaUnion.java similarity index 93% rename from asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchemaUnion.java rename to asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchemaUnion.java index 671a4645..64568a1b 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/AvroSchemaUnion.java +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/AvroSchemaUnion.java @@ -1,6 +1,6 @@ -package com.asyncapi.v3.schema.avro.v1._9_0; +package com.asyncapi.schemas.avro.v1._9_0; -import com.asyncapi.v3.schema.avro.v1._9_0.jackson.AvroTypeDeserializer; +import com.asyncapi.schemas.avro.v1._9_0.serde.AvroTypeDeserializer; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import org.jetbrains.annotations.NotNull; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/jackson/AvroSchemaDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/serde/AvroSchemaDeserializer.java similarity index 92% rename from asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/jackson/AvroSchemaDeserializer.java rename to asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/serde/AvroSchemaDeserializer.java index 40e94f64..64441238 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/jackson/AvroSchemaDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/serde/AvroSchemaDeserializer.java @@ -1,8 +1,8 @@ -package com.asyncapi.v3.schema.avro.v1._9_0.jackson; +package com.asyncapi.schemas.avro.v1._9_0.serde; -import com.asyncapi.v3.Reference; -import com.asyncapi.v3.schema.avro.v1._9_0.AvroSchema; -import com.asyncapi.v3.schema.avro.v1._9_0.AvroSchemaUnion; +import com.asyncapi.schemas.asyncapi.Reference; +import com.asyncapi.schemas.avro.v1._9_0.AvroSchema; +import com.asyncapi.schemas.avro.v1._9_0.AvroSchemaUnion; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.ObjectCodec; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/jackson/AvroTypeDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/serde/AvroTypeDeserializer.java similarity index 92% rename from asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/jackson/AvroTypeDeserializer.java rename to asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/serde/AvroTypeDeserializer.java index 0673d418..13f692e4 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/avro/v1/_9_0/jackson/AvroTypeDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/avro/v1/_9_0/serde/AvroTypeDeserializer.java @@ -1,7 +1,7 @@ -package com.asyncapi.v3.schema.avro.v1._9_0.jackson; +package com.asyncapi.schemas.avro.v1._9_0.serde; -import com.asyncapi.v3.schema.avro.v1._9_0.AvroSchema; -import com.asyncapi.v3.schema.avro.v1._9_0.AvroSchemaUnion; +import com.asyncapi.schemas.avro.v1._9_0.AvroSchema; +import com.asyncapi.schemas.avro.v1._9_0.AvroSchemaUnion; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.ObjectCodec; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/JsonSchema.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/json/JsonSchema.java similarity index 99% rename from asyncapi-core/src/main/java/com/asyncapi/v3/schema/JsonSchema.java rename to asyncapi-core/src/main/java/com/asyncapi/schemas/json/JsonSchema.java index 71eba2b0..c6ee1db8 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/JsonSchema.java +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/json/JsonSchema.java @@ -1,8 +1,8 @@ -package com.asyncapi.v3.schema; +package com.asyncapi.schemas.json; -import com.asyncapi.v3.jackson.schema.JsonSchemaAnyValueDeserializer; -import com.asyncapi.v3.jackson.schema.JsonSchemaItemsDeserializer; -import com.asyncapi.v3.jackson.schema.JsonSchemaPropertiesDeserializer; +import com.asyncapi.schemas.serde.json.JsonSchemaAnyValueDeserializer; +import com.asyncapi.schemas.serde.json.JsonSchemaItemsDeserializer; +import com.asyncapi.schemas.serde.json.JsonSchemaPropertiesDeserializer; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyDescription; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/openapi/v3/_0_0/OpenAPISchema.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/openapi/v3/_0_0/OpenAPISchema.java similarity index 97% rename from asyncapi-core/src/main/java/com/asyncapi/v3/schema/openapi/v3/_0_0/OpenAPISchema.java rename to asyncapi-core/src/main/java/com/asyncapi/schemas/openapi/v3/_0_0/OpenAPISchema.java index 97f365d3..b805632f 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/openapi/v3/_0_0/OpenAPISchema.java +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/openapi/v3/_0_0/OpenAPISchema.java @@ -1,14 +1,18 @@ -package com.asyncapi.v3.schema.openapi.v3._0_0; - -import com.asyncapi.v3.jackson.schema.openapi.OpenAPISchemaAdditionalPropertiesDeserializer; -import com.asyncapi.v3.jackson.schema.openapi.OpenAPISchemaAnyValueDeserializer; -import com.asyncapi.v3.schema.openapi.v3._0_0.properties.Discriminator; -import com.asyncapi.v3.schema.openapi.v3._0_0.properties.Extensions; -import com.asyncapi.v3.schema.openapi.v3._0_0.properties.ExternalDocumentation; -import com.asyncapi.v3.schema.openapi.v3._0_0.properties.XML; +package com.asyncapi.schemas.openapi.v3._0_0; + +import com.asyncapi.schemas.openapi.v3._0_0.properties.Discriminator; +import com.asyncapi.schemas.openapi.v3._0_0.properties.Extensions; +import com.asyncapi.schemas.openapi.v3._0_0.properties.ExternalDocumentation; +import com.asyncapi.schemas.openapi.v3._0_0.properties.XML; +import com.asyncapi.schemas.serde.openapi.OpenAPISchemaAdditionalPropertiesDeserializer; +import com.asyncapi.schemas.serde.openapi.OpenAPISchemaAnyValueDeserializer; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import lombok.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; import org.jetbrains.annotations.Nullable; import java.math.BigDecimal; @@ -109,7 +113,7 @@ public class OpenAPISchema extends Extensions { /** * The word “exclusive” in {@link #exclusiveMinimum} and {@link #exclusiveMaximum} means the corresponding boundary is excluded: - * + *
* * * @@ -166,7 +170,7 @@ public class OpenAPISchema extends Extensions { /** * The word “exclusive” in {@link #exclusiveMinimum} and {@link #exclusiveMaximum} means the corresponding boundary is excluded: - *
KeywordDescription
+ *
* * * diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/openapi/v3/_0_0/properties/Discriminator.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/openapi/v3/_0_0/properties/Discriminator.java similarity index 97% rename from asyncapi-core/src/main/java/com/asyncapi/v3/schema/openapi/v3/_0_0/properties/Discriminator.java rename to asyncapi-core/src/main/java/com/asyncapi/schemas/openapi/v3/_0_0/properties/Discriminator.java index fc12e2ae..bc7ff05c 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/openapi/v3/_0_0/properties/Discriminator.java +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/openapi/v3/_0_0/properties/Discriminator.java @@ -1,4 +1,4 @@ -package com.asyncapi.v3.schema.openapi.v3._0_0.properties; +package com.asyncapi.schemas.openapi.v3._0_0.properties; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyDescription; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/openapi/v3/_0_0/properties/Extensions.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/openapi/v3/_0_0/properties/Extensions.java similarity index 92% rename from asyncapi-core/src/main/java/com/asyncapi/v3/schema/openapi/v3/_0_0/properties/Extensions.java rename to asyncapi-core/src/main/java/com/asyncapi/schemas/openapi/v3/_0_0/properties/Extensions.java index b243003f..7f779166 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/openapi/v3/_0_0/properties/Extensions.java +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/openapi/v3/_0_0/properties/Extensions.java @@ -1,4 +1,4 @@ -package com.asyncapi.v3.schema.openapi.v3._0_0.properties; +package com.asyncapi.schemas.openapi.v3._0_0.properties; import com.fasterxml.jackson.annotation.JsonAnyGetter; import com.fasterxml.jackson.annotation.JsonAnySetter; @@ -13,6 +13,8 @@ import java.util.regex.Pattern; /** + * Allows to extend AsyncAPI specification + * * @see Specification Extensions */ @Data diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/openapi/v3/_0_0/properties/ExternalDocumentation.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/openapi/v3/_0_0/properties/ExternalDocumentation.java similarity index 87% rename from asyncapi-core/src/main/java/com/asyncapi/v3/schema/openapi/v3/_0_0/properties/ExternalDocumentation.java rename to asyncapi-core/src/main/java/com/asyncapi/schemas/openapi/v3/_0_0/properties/ExternalDocumentation.java index 7289f546..63b3ab6b 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/openapi/v3/_0_0/properties/ExternalDocumentation.java +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/openapi/v3/_0_0/properties/ExternalDocumentation.java @@ -1,8 +1,12 @@ -package com.asyncapi.v3.schema.openapi.v3._0_0.properties; +package com.asyncapi.schemas.openapi.v3._0_0.properties; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/openapi/v3/_0_0/properties/XML.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/openapi/v3/_0_0/properties/XML.java similarity index 93% rename from asyncapi-core/src/main/java/com/asyncapi/v3/schema/openapi/v3/_0_0/properties/XML.java rename to asyncapi-core/src/main/java/com/asyncapi/schemas/openapi/v3/_0_0/properties/XML.java index 7739011f..4a8cf72e 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/openapi/v3/_0_0/properties/XML.java +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/openapi/v3/_0_0/properties/XML.java @@ -1,8 +1,12 @@ -package com.asyncapi.v3.schema.openapi.v3._0_0.properties; +package com.asyncapi.schemas.openapi.v3._0_0.properties; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; import org.jetbrains.annotations.Nullable; /** diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/package-info.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/package-info.java new file mode 100644 index 00000000..56f3945d --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/package-info.java @@ -0,0 +1,7 @@ +/** + * This module provide schemas, used in AsyncAPI. + * + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +package com.asyncapi.schemas; \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/schema/SchemaAnyValueDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/SchemaAnyValueDeserializer.java similarity index 94% rename from asyncapi-core/src/main/java/com/asyncapi/v3/jackson/schema/SchemaAnyValueDeserializer.java rename to asyncapi-core/src/main/java/com/asyncapi/schemas/serde/SchemaAnyValueDeserializer.java index 09ca14d0..37c0e958 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/schema/SchemaAnyValueDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/SchemaAnyValueDeserializer.java @@ -1,4 +1,4 @@ -package com.asyncapi.v3.jackson.schema; +package com.asyncapi.schemas.serde; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonProcessingException; @@ -14,6 +14,9 @@ import java.util.List; /** + * Abstract Schema any value deserializer + * + * @param schema to deserialize * @author Pavel Bodiachevskii */ public abstract class SchemaAnyValueDeserializer extends JsonDeserializer { diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/schema/AsyncAPISchemaAdditionalPropertiesDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/asyncapi/AsyncAPISchemaAdditionalPropertiesDeserializer.java similarity index 88% rename from asyncapi-core/src/main/java/com/asyncapi/v3/jackson/schema/AsyncAPISchemaAdditionalPropertiesDeserializer.java rename to asyncapi-core/src/main/java/com/asyncapi/schemas/serde/asyncapi/AsyncAPISchemaAdditionalPropertiesDeserializer.java index 0e751265..364cdc87 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/schema/AsyncAPISchemaAdditionalPropertiesDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/asyncapi/AsyncAPISchemaAdditionalPropertiesDeserializer.java @@ -1,6 +1,6 @@ -package com.asyncapi.v3.jackson.schema; +package com.asyncapi.schemas.serde.asyncapi; -import com.asyncapi.v3.schema.AsyncAPISchema; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.ObjectCodec; @@ -11,6 +11,8 @@ import java.io.IOException; /** + * AsyncAPI Schema additional properties deserializer + * * @author Guillaume LAMIRAND (guillaume.lamirand at graviteesource.com) * @author GraviteeSource Team */ diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/asyncapi/AsyncAPISchemaAnyValueDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/asyncapi/AsyncAPISchemaAnyValueDeserializer.java new file mode 100644 index 00000000..3741150f --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/asyncapi/AsyncAPISchemaAnyValueDeserializer.java @@ -0,0 +1,18 @@ +package com.asyncapi.schemas.serde.asyncapi; + +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.schemas.serde.SchemaAnyValueDeserializer; + +/** + * AsyncAPI Schema any value deserializer + * + * @author Pavel Bodiachevskii + */ +public class AsyncAPISchemaAnyValueDeserializer extends SchemaAnyValueDeserializer { + + @Override + public Class schemaClass() { + return AsyncAPISchema.class; + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/asyncapi/AsyncAPISchemaItemsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/asyncapi/AsyncAPISchemaItemsDeserializer.java new file mode 100644 index 00000000..04bda181 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/asyncapi/AsyncAPISchemaItemsDeserializer.java @@ -0,0 +1,15 @@ +package com.asyncapi.schemas.serde.asyncapi; + +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.serde.SchemaItemsDeserializer; + +/** + * AsyncAPI Schema items deserializer + */ +public class AsyncAPISchemaItemsDeserializer extends SchemaItemsDeserializer { + + public Class schemaClass() { + return AsyncAPISchema.class; + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/asyncapi/ReferenceOrAsyncAPISchemaOrNumberDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/asyncapi/ReferenceOrAsyncAPISchemaOrNumberDeserializer.java new file mode 100644 index 00000000..8e50d691 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/asyncapi/ReferenceOrAsyncAPISchemaOrNumberDeserializer.java @@ -0,0 +1,41 @@ +package com.asyncapi.schemas.serde.asyncapi; + +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.schemas.asyncapi.Reference; +import com.fasterxml.jackson.core.JacksonException; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; + +public class ReferenceOrAsyncAPISchemaOrNumberDeserializer extends JsonDeserializer { + + @Override + public Object deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JacksonException { + ObjectCodec objectCodec = p.getCodec(); + JsonNode node = objectCodec.readTree(p); + + JsonNode jsonNode = node.get("$ref"); + Object parsedNode; + try (JsonParser jsonParser = node.traverse(objectCodec)) { + if (node.isNumber()) { + parsedNode = jsonParser.readValueAs(Number.class); + } else if (isReference(jsonNode)) { + parsedNode = jsonParser.readValueAs(Reference.class); + } else { + parsedNode = jsonParser.readValueAs(AsyncAPISchema.class); + } + } + + return parsedNode; + } + + private boolean isReference(@Nullable JsonNode jsonNode) { + return jsonNode != null && jsonNode.properties().size() == 1 && jsonNode.get("$ref") != null; + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/asyncapi/ReferenceOrAsyncAPISchemaOrStringDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/asyncapi/ReferenceOrAsyncAPISchemaOrStringDeserializer.java new file mode 100644 index 00000000..c3293d1c --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/asyncapi/ReferenceOrAsyncAPISchemaOrStringDeserializer.java @@ -0,0 +1,41 @@ +package com.asyncapi.schemas.serde.asyncapi; + +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.schemas.asyncapi.Reference; +import com.fasterxml.jackson.core.JacksonException; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; + +public class ReferenceOrAsyncAPISchemaOrStringDeserializer extends JsonDeserializer { + + @Override + public Object deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JacksonException { + ObjectCodec objectCodec = p.getCodec(); + JsonNode node = objectCodec.readTree(p); + + JsonNode jsonNode = node.get("$ref"); + Object parsedNode; + try (JsonParser jsonParser = node.traverse(objectCodec)) { + if (node.isTextual()) { + parsedNode = node.asText(); + } else if (isReference(jsonNode)) { + parsedNode = jsonParser.readValueAs(Reference.class); + } else { + parsedNode = jsonParser.readValueAs(AsyncAPISchema.class); + } + } + + return parsedNode; + } + + private boolean isReference(@Nullable JsonNode jsonNode) { + return jsonNode != null && jsonNode.properties().size() == 1 && jsonNode.get("$ref") != null; + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/asyncapi/security/v3/SecuritySchemesDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/asyncapi/security/v3/SecuritySchemesDeserializer.java new file mode 100644 index 00000000..3f8285d0 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/asyncapi/security/v3/SecuritySchemesDeserializer.java @@ -0,0 +1,24 @@ +package com.asyncapi.schemas.serde.asyncapi.security.v3; + +import com.asyncapi.schemas.asyncapi.Reference; +import com.asyncapi.serde.ListOfReferencesOrObjectsDeserializer; +import com.asyncapi.schemas.asyncapi.security.v3.SecurityScheme; + +/** + * Deserializes security schemes. + * + * @author Pavel Bodiachevskii + */ +public class SecuritySchemesDeserializer extends ListOfReferencesOrObjectsDeserializer { + + @Override + public Class objectTypeClass() { + return SecurityScheme.class; + } + + @Override + public Class referenceClass() { + return Reference.class; + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/json/JsonSchemaAnyValueDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/json/JsonSchemaAnyValueDeserializer.java new file mode 100644 index 00000000..2a858cab --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/json/JsonSchemaAnyValueDeserializer.java @@ -0,0 +1,18 @@ +package com.asyncapi.schemas.serde.json; + +import com.asyncapi.schemas.json.JsonSchema; +import com.asyncapi.schemas.serde.SchemaAnyValueDeserializer; + +/** + * Json Schema any value deserializer + * + * @author Pavel Bodiachevskii + */ +public class JsonSchemaAnyValueDeserializer extends SchemaAnyValueDeserializer { + + @Override + public Class schemaClass() { + return JsonSchema.class; + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/json/JsonSchemaItemsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/json/JsonSchemaItemsDeserializer.java new file mode 100644 index 00000000..4cff6df8 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/json/JsonSchemaItemsDeserializer.java @@ -0,0 +1,15 @@ +package com.asyncapi.schemas.serde.json; + +import com.asyncapi.schemas.json.JsonSchema; +import com.asyncapi.serde.SchemaItemsDeserializer; + +/** + * Json Schema items deserializer + */ +public class JsonSchemaItemsDeserializer extends SchemaItemsDeserializer { + + public Class schemaClass() { + return JsonSchema.class; + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/schema/JsonSchemaPropertiesDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/json/JsonSchemaPropertiesDeserializer.java similarity index 90% rename from asyncapi-core/src/main/java/com/asyncapi/v3/jackson/schema/JsonSchemaPropertiesDeserializer.java rename to asyncapi-core/src/main/java/com/asyncapi/schemas/serde/json/JsonSchemaPropertiesDeserializer.java index 71402943..b4e5d32e 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/schema/JsonSchemaPropertiesDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/json/JsonSchemaPropertiesDeserializer.java @@ -1,6 +1,6 @@ -package com.asyncapi.v3.jackson.schema; +package com.asyncapi.schemas.serde.json; -import com.asyncapi.v3.schema.JsonSchema; +import com.asyncapi.schemas.json.JsonSchema; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.ObjectCodec; @@ -11,6 +11,8 @@ import java.io.IOException; /** + * Json Schema properties deserializer. + * * @author Guillaume LAMIRAND (guillaume.lamirand at graviteesource.com) * @author GraviteeSource Team */ diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/schema/openapi/OpenAPISchemaAdditionalPropertiesDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/openapi/OpenAPISchemaAdditionalPropertiesDeserializer.java similarity index 88% rename from asyncapi-core/src/main/java/com/asyncapi/v3/jackson/schema/openapi/OpenAPISchemaAdditionalPropertiesDeserializer.java rename to asyncapi-core/src/main/java/com/asyncapi/schemas/serde/openapi/OpenAPISchemaAdditionalPropertiesDeserializer.java index faa5c83b..1dda0475 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/schema/openapi/OpenAPISchemaAdditionalPropertiesDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/openapi/OpenAPISchemaAdditionalPropertiesDeserializer.java @@ -1,6 +1,6 @@ -package com.asyncapi.v3.jackson.schema.openapi; +package com.asyncapi.schemas.serde.openapi; -import com.asyncapi.v3.schema.openapi.v3._0_0.OpenAPISchema; +import com.asyncapi.schemas.openapi.v3._0_0.OpenAPISchema; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.ObjectCodec; @@ -11,6 +11,8 @@ import java.io.IOException; /** + * OpenAPI Schema additional properties deserializer + * * @author Pavel Bodiachevskii * @version 3.0.0 */ diff --git a/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/openapi/OpenAPISchemaAnyValueDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/openapi/OpenAPISchemaAnyValueDeserializer.java new file mode 100644 index 00000000..b93b381b --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/schemas/serde/openapi/OpenAPISchemaAnyValueDeserializer.java @@ -0,0 +1,18 @@ +package com.asyncapi.schemas.serde.openapi; + +import com.asyncapi.schemas.openapi.v3._0_0.OpenAPISchema; +import com.asyncapi.schemas.serde.SchemaAnyValueDeserializer; + +/** + * OpenAPI Schema any value deserializer + * + * @author Pavel Bodiachevskii + */ +public class OpenAPISchemaAnyValueDeserializer extends SchemaAnyValueDeserializer { + + @Override + public Class schemaClass() { + return OpenAPISchema.class; + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/serde/ListOfReferencesOrObjectsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/serde/ListOfReferencesOrObjectsDeserializer.java new file mode 100644 index 00000000..c84193e7 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/serde/ListOfReferencesOrObjectsDeserializer.java @@ -0,0 +1,51 @@ +package com.asyncapi.serde; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +public abstract class ListOfReferencesOrObjectsDeserializer extends JsonDeserializer> { + + abstract public Class objectTypeClass(); + + abstract public Class referenceClass(); + + @Override + public List deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException { + ObjectCodec objectCodec = p.getCodec(); + JsonNode node = objectCodec.readTree(p); + + List traits = new ArrayList<>(); + + node.forEach( + traitsValue -> { + try { + traits.add(chooseKnownPojo(traitsValue, objectCodec)); + } catch (IOException e) { + e.printStackTrace(); + } + } + ); + + return traits; + } + + private Object chooseKnownPojo(JsonNode jsonNode, ObjectCodec objectCodec) throws IOException { + JsonNode ref = jsonNode.get("$ref"); + try (JsonParser jsonParser = jsonNode.traverse(objectCodec)) { + if (ref != null) { + return jsonParser.readValueAs(referenceClass()); + } else { + return jsonParser.readValueAs(objectTypeClass()); + } + } + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/serde/MapOfReferencesOrObjectsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/serde/MapOfReferencesOrObjectsDeserializer.java new file mode 100644 index 00000000..d7aec3fb --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/serde/MapOfReferencesOrObjectsDeserializer.java @@ -0,0 +1,80 @@ +package com.asyncapi.serde; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +/** + * Deserializes AsyncAPI map of parameters + * @param object + */ +public abstract class MapOfReferencesOrObjectsDeserializer extends JsonDeserializer> { + + abstract public Class objectTypeClass(); + + abstract public Class referenceClass(); + + @Override + public Map deserialize(JsonParser jsonParser, + DeserializationContext deserializationContext + ) throws IOException, JsonProcessingException { + ObjectCodec objectCodec = jsonParser.getCodec(); + JsonNode map = objectCodec.readTree(jsonParser); + + Map parameters = new HashMap<>(); + + map.fieldNames().forEachRemaining( + fieldName -> { + /* + Problem: + Both, Reference class and Schema class have $ref field. + So, this is only reason why I receive next exception: + "com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: + Unrecognized field "title" (class com.asyncapi.v2._6_0.model.Reference), + not marked as ignorable (one known property: "$ref"])" + in case when Schema contains $ref. + Solution: + Try to deserialize reference. In case of exception, try to deserialize it as given ObjectType. In case of + one more exception, throw it. + TODO: Think how to improve. + */ + try { + parameters.put(fieldName, chooseKnownPojo(map.get(fieldName), objectCodec)); + } catch (IOException ignore) { + try { + parameters.put(fieldName, readAsObject(map.get(fieldName), objectCodec)); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + ); + + return parameters; + } + + private Object chooseKnownPojo(JsonNode jsonNode, ObjectCodec objectCodec) throws IOException { + JsonNode ref = jsonNode.get("$ref"); + try (JsonParser jsonParser = jsonNode.traverse(objectCodec)) { + if (ref != null) { + return jsonParser.readValueAs(referenceClass()); + } else { + return jsonParser.readValueAs(objectTypeClass()); + } + } + } + + private Object readAsObject(JsonNode jsonNode, ObjectCodec objectCodec) throws IOException { + try (JsonParser jsonParser = jsonNode.traverse(objectCodec)) { + return jsonParser.readValueAs(objectTypeClass()); + } + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/jackson/ObjectDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/serde/ObjectDeserializer.java similarity index 96% rename from asyncapi-core/src/main/java/com/asyncapi/v2/jackson/ObjectDeserializer.java rename to asyncapi-core/src/main/java/com/asyncapi/serde/ObjectDeserializer.java index 553750ac..43b10540 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/jackson/ObjectDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/serde/ObjectDeserializer.java @@ -1,4 +1,4 @@ -package com.asyncapi.v2.jackson; +package com.asyncapi.serde; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonProcessingException; diff --git a/asyncapi-core/src/main/java/com/asyncapi/serde/ReferenceOrObjectDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/serde/ReferenceOrObjectDeserializer.java new file mode 100644 index 00000000..1afed6d5 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/serde/ReferenceOrObjectDeserializer.java @@ -0,0 +1,61 @@ +package com.asyncapi.serde; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException; + +import java.io.IOException; + +public abstract class ReferenceOrObjectDeserializer extends JsonDeserializer { + + abstract public Class objectTypeClass(); + + abstract public Class referenceClass(); + + @Override + public Object deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException { + ObjectCodec objectCodec = p.getCodec(); + JsonNode node = objectCodec.readTree(p); + + /* + Problem: + Both, Reference class and Schema class have $ref field. + So, this is only reason why I receive next exception: + "com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: + Unrecognized field "title" (class com.asyncapi.v2._6_0.model.Reference), + not marked as ignorable (one known property: "$ref"])" + in case when Schema contains $ref. + Solution: + Try to deserialize reference. In case of exception, try to deserialize it as given ObjectType. In case of + one more exception, throw it. + TODO: Think how to improve. + */ + try { + return chooseKnownPojo(node, objectCodec); + } catch (UnrecognizedPropertyException unrecognizedPropertyException) { + return readAsObject(node, objectCodec); + } + } + + private Object chooseKnownPojo(JsonNode jsonNode, ObjectCodec objectCodec) throws IOException { + JsonNode ref = jsonNode.get("$ref"); + try (JsonParser jsonParser = jsonNode.traverse(objectCodec)) { + if (ref != null) { + return jsonParser.readValueAs(referenceClass()); + } else { + return jsonParser.readValueAs(objectTypeClass()); + } + } + } + + private Object readAsObject(JsonNode jsonNode, ObjectCodec objectCodec) throws IOException { + try (JsonParser jsonParser = jsonNode.traverse(objectCodec)) { + return jsonParser.readValueAs(objectTypeClass()); + } + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/serde/SchemaItemsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/serde/SchemaItemsDeserializer.java new file mode 100644 index 00000000..c55fd719 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/serde/SchemaItemsDeserializer.java @@ -0,0 +1,52 @@ +package com.asyncapi.serde; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.JsonNodeType; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +public abstract class SchemaItemsDeserializer extends JsonDeserializer { + + abstract public Class schemaClass(); + + @Override + public Object deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException { + ObjectCodec objectCodec = jsonParser.getCodec(); + JsonNode node = objectCodec.readTree(jsonParser); + JsonNodeType nodeType = node.getNodeType(); + if (nodeType == JsonNodeType.OBJECT) { + return readAsSchema(node, objectCodec); + } + if (nodeType == JsonNodeType.ARRAY) { + return readAsListOfSchemas((ArrayNode) node, objectCodec); + } + return readAsObject(node, objectCodec); + } + + private List readAsListOfSchemas(ArrayNode arrayNode, ObjectCodec objectCodec) throws IOException { + List schemaList = new ArrayList<>(); + for (JsonNode childNode : arrayNode) { + schemaList.add(readAsSchema(childNode, objectCodec)); + } + return schemaList; + } + + private Schema readAsSchema(JsonNode jsonNode, ObjectCodec objectCodec) throws IOException { + try (JsonParser parser = jsonNode.traverse(objectCodec)) { + return parser.readValueAs(schemaClass()); + } + } + + private Object readAsObject(JsonNode jsonNode, ObjectCodec objectCodec) throws IOException { + try (JsonParser jsonParser = jsonNode.traverse(objectCodec)) { + return jsonParser.readValueAs(Object.class); + } + } +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/serde/package-info.java b/asyncapi-core/src/main/java/com/asyncapi/serde/package-info.java new file mode 100644 index 00000000..60293814 --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/serde/package-info.java @@ -0,0 +1,7 @@ +/** + * Provides common classes for Serialization or Deserialization of AsyncAPI and it's components. + * + * @author Pavel Bodiachevskii + * @since 1.0.0-RC2 + */ +package com.asyncapi.serde; \ No newline at end of file diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/ExtendableObject.java b/asyncapi-core/src/main/java/com/asyncapi/v2/ExtendableObject.java deleted file mode 100644 index 534b4eb2..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/ExtendableObject.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.asyncapi.v2; - -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -import java.util.HashMap; -import java.util.Map; -import java.util.regex.Pattern; - -@Data -@NoArgsConstructor -@AllArgsConstructor -@JsonIgnoreProperties({"extensionFields"}) -public class ExtendableObject { - - private static final Pattern extensionPropertyNamePattern = Pattern.compile("^x-[\\w\\d\\-\\_]+$"); - - /** - * Extension fields in the form x-extension-field-name for the exposed API. - */ - @Nullable - @JsonAnyGetter - protected Map extensionFields; - - @JsonAnySetter - protected final void readExtensionProperty(String name, Object value) { - if (extensionPropertyNamePattern.matcher(name).matches()) { - if (extensionFields == null) { - extensionFields = new HashMap<>(); - } - - extensionFields.put(name, value); - } else { - throw new IllegalArgumentException(String.format("\"%s\" is not valid extension property", name)); - } - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/Reference.java b/asyncapi-core/src/main/java/com/asyncapi/v2/Reference.java deleted file mode 100644 index d7b447b2..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/Reference.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.asyncapi.v2; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.NotNull; - -/** - * A simple object to allow referencing other components in the specification, internally and externally. - *

- * The Reference Object is defined by JSON Reference and follows the same structure, behavior and rules. - * A JSON Reference SHALL only be used to refer to a schema that is formatted in either JSON or YAML. - * In the case of a YAML-formatted Schema, the JSON Reference SHALL be applied to the JSON representation of - * that schema. The JSON representation SHALL be made by applying the conversion described here. - *

- * For this specification, reference resolution is done as defined by the JSON Reference specification and not by - * the JSON Schema specification. - * - * @version 2.6.0 - * @see Reference - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -public class Reference { - - /** - * Required. - *

- * The reference string. - */ - @NotNull - @JsonProperty(value = "$ref") - private String ref = ""; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/channel/ChannelParametersDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/channel/ChannelParametersDeserializer.java index c702a0ca..a3a1fccf 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/channel/ChannelParametersDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/channel/ChannelParametersDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v2._0_0.jackson.model.channel; -import com.asyncapi.v2.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._0_0.model.channel.Parameter; -import com.asyncapi.v2.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; /** * Serializes channel parameters map. diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/channel/message/MessageCorrelationIdDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/channel/message/MessageCorrelationIdDeserializer.java index b5dbd0ff..c57f6cfe 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/channel/message/MessageCorrelationIdDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/channel/message/MessageCorrelationIdDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v2._0_0.jackson.model.channel.message; -import com.asyncapi.v2.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._0_0.model.channel.message.CorrelationId; -import com.asyncapi.v2.jackson.ReferenceOrObjectDeserializer; +import com.asyncapi.serde.ReferenceOrObjectDeserializer; /** * Serializes message traits list. diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/channel/message/MessageHeadersDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/channel/message/MessageHeadersDeserializer.java index e7b62788..31922958 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/channel/message/MessageHeadersDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/channel/message/MessageHeadersDeserializer.java @@ -1,19 +1,19 @@ package com.asyncapi.v2._0_0.jackson.model.channel.message; -import com.asyncapi.v2.Reference; -import com.asyncapi.v2.schema.Schema; -import com.asyncapi.v2.jackson.ReferenceOrObjectDeserializer; +import com.asyncapi.schemas.asyncapi.Reference; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.serde.ReferenceOrObjectDeserializer; /** * Serializes message traits list. * * @author Pavel Bodiachevskii */ -public class MessageHeadersDeserializer extends ReferenceOrObjectDeserializer { +public class MessageHeadersDeserializer extends ReferenceOrObjectDeserializer { @Override - public Class objectTypeClass() { - return Schema.class; + public Class objectTypeClass() { + return AsyncAPISchema.class; } public Class referenceClass() { diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/channel/message/MessagePayloadDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/channel/message/MessagePayloadDeserializer.java index 8bba0769..ee65c8b2 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/channel/message/MessagePayloadDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/channel/message/MessagePayloadDeserializer.java @@ -1,18 +1,18 @@ package com.asyncapi.v2._0_0.jackson.model.channel.message; -import com.asyncapi.v2.schema.Schema; -import com.asyncapi.v2.jackson.ObjectDeserializer; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.serde.ObjectDeserializer; /** * Serializes message traits list. * * @author Pavel Bodiachevskii */ -public class MessagePayloadDeserializer extends ObjectDeserializer { +public class MessagePayloadDeserializer extends ObjectDeserializer { @Override - public Class objectTypeClass() { - return Schema.class; + public Class objectTypeClass() { + return AsyncAPISchema.class; } } diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/channel/message/MessageTraitsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/channel/message/MessageTraitsDeserializer.java index e80a6148..21340269 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/channel/message/MessageTraitsDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/channel/message/MessageTraitsDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v2._0_0.jackson.model.channel.message; -import com.asyncapi.v2.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._0_0.model.channel.message.MessageTrait; -import com.asyncapi.v2.jackson.ListOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.ListOfReferencesOrObjectsDeserializer; /** * Serializes message traits list. diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/channel/operation/OperationMessageDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/channel/operation/OperationMessageDeserializer.java index 8f59c963..c6b619ed 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/channel/operation/OperationMessageDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/channel/operation/OperationMessageDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v2._0_0.jackson.model.channel.operation; -import com.asyncapi.v2.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._0_0.model.channel.message.Message; -import com.asyncapi.v2.jackson.ReferenceOrObjectDeserializer; +import com.asyncapi.serde.ReferenceOrObjectDeserializer; /** * Serializes operation message list. diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/channel/operation/OperationTraitsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/channel/operation/OperationTraitsDeserializer.java index 185e271f..f0e57f5d 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/channel/operation/OperationTraitsDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/channel/operation/OperationTraitsDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v2._0_0.jackson.model.channel.operation; -import com.asyncapi.v2.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._0_0.model.channel.operation.OperationTrait; -import com.asyncapi.v2.jackson.ListOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.ListOfReferencesOrObjectsDeserializer; /** * Serializes operation traits list. diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/component/ComponentsMessagesDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/component/ComponentsMessagesDeserializer.java index 06783ee3..e1f4b209 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/component/ComponentsMessagesDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/component/ComponentsMessagesDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v2._0_0.jackson.model.component; -import com.asyncapi.v2.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._0_0.model.channel.message.Message; -import com.asyncapi.v2.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; /** * Serializes component security schemes map. diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/component/ComponentsParametersDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/component/ComponentsParametersDeserializer.java index 1471ce0c..b1c112af 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/component/ComponentsParametersDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/component/ComponentsParametersDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v2._0_0.jackson.model.component; -import com.asyncapi.v2.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._0_0.model.channel.Parameter; -import com.asyncapi.v2.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; /** * Serializes channel parameters map. diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/component/ComponentsSchemasDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/component/ComponentsSchemasDeserializer.java index 168d7dd1..9317979a 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/component/ComponentsSchemasDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/component/ComponentsSchemasDeserializer.java @@ -1,19 +1,19 @@ package com.asyncapi.v2._0_0.jackson.model.component; -import com.asyncapi.v2.Reference; -import com.asyncapi.v2.schema.Schema; -import com.asyncapi.v2.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.schemas.asyncapi.Reference; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; /** * Serializes component schemas map. * * @author Pavel Bodiachevskii */ -public class ComponentsSchemasDeserializer extends MapOfReferencesOrObjectsDeserializer { +public class ComponentsSchemasDeserializer extends MapOfReferencesOrObjectsDeserializer { @Override - public Class objectTypeClass() { - return Schema.class; + public Class objectTypeClass() { + return AsyncAPISchema.class; } @Override diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/component/ComponentsSecuritySchemesDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/component/ComponentsSecuritySchemesDeserializer.java index 91c7d16e..46ac1a33 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/component/ComponentsSecuritySchemesDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/component/ComponentsSecuritySchemesDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v2._0_0.jackson.model.component; -import com.asyncapi.v2.Reference; -import com.asyncapi.v2.jackson.MapOfReferencesOrObjectsDeserializer; -import com.asyncapi.v2.security_scheme.SecurityScheme; +import com.asyncapi.schemas.asyncapi.Reference; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.schemas.asyncapi.security.v2.SecurityScheme; /** * Serializes component security schemes map. diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/schema/SchemasAdditionalPropertiesDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/schema/SchemasAdditionalPropertiesDeserializer.java deleted file mode 100644 index a02e585e..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/jackson/model/schema/SchemasAdditionalPropertiesDeserializer.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.asyncapi.v2._0_0.jackson.model.schema; - -import com.asyncapi.v2.schema.Schema; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -/** - * @author Guillaume LAMIRAND (guillaume.lamirand at graviteesource.com) - * @author GraviteeSource Team - */ -public class SchemasAdditionalPropertiesDeserializer extends JsonDeserializer { - - @Override - public Object deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException { - ObjectCodec objectCodec = p.getCodec(); - JsonNode node = objectCodec.readTree(p); - - return chooseKnownPojo(node, objectCodec); - } - - private Object chooseKnownPojo(JsonNode jsonNode, final ObjectCodec objectCodec) throws IOException { - try (JsonParser jsonParser = jsonNode.traverse(objectCodec)) { - if (jsonNode.isBoolean()) { - return jsonNode.asBoolean(); - } else { - return jsonParser.readValueAs(Schema.class); - } - } - } -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/AsyncAPI.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/AsyncAPI.java index 790ef520..c2baf499 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/AsyncAPI.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/AsyncAPI.java @@ -1,6 +1,6 @@ package com.asyncapi.v2._0_0.model; -import com.asyncapi.v2.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import com.asyncapi.v2._0_0.model.channel.ChannelItem; import com.asyncapi.v2._0_0.model.component.Components; import com.asyncapi.v2._0_0.model.info.Info; @@ -46,7 +46,7 @@ public class AsyncAPI extends ExtendableObject { */ @NotNull @Builder.Default - private final String asyncapi = "2.0.0"; + private String asyncapi = "2.0.0"; /** * Identifier of the application the AsyncAPI document is defining. diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/ExternalDocumentation.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/ExternalDocumentation.java index 271780a7..f40dff4a 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/ExternalDocumentation.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/ExternalDocumentation.java @@ -1,6 +1,6 @@ package com.asyncapi.v2._0_0.model; -import com.asyncapi.v2.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/Tag.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/Tag.java index 536a3d2a..3df58fcf 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/Tag.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/Tag.java @@ -1,6 +1,6 @@ package com.asyncapi.v2._0_0.model; -import com.asyncapi.v2.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/channel/ChannelItem.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/channel/ChannelItem.java index 369c4980..618af41a 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/channel/ChannelItem.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/channel/ChannelItem.java @@ -1,11 +1,11 @@ package com.asyncapi.v2._0_0.model.channel; -import com.asyncapi.v2.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import com.asyncapi.v2._0_0.jackson.model.channel.ChannelParametersDeserializer; -import com.asyncapi.v2.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._0_0.model.channel.operation.Operation; -import com.asyncapi.v2.binding.channel.ChannelBinding; -import com.asyncapi.v2.jackson.binding.channel.ChannelBindingsDeserializer; +import com.asyncapi.bindings.ChannelBinding; +import com.asyncapi.bindings.ChannelBindingsDeserializer; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.AllArgsConstructor; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/channel/Parameter.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/channel/Parameter.java index 2b5e192f..e877534a 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/channel/Parameter.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/channel/Parameter.java @@ -1,7 +1,7 @@ package com.asyncapi.v2._0_0.model.channel; -import com.asyncapi.v2.ExtendableObject; -import com.asyncapi.v2.schema.Schema; +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.AllArgsConstructor; import lombok.Builder; @@ -36,7 +36,7 @@ public class Parameter extends ExtendableObject { */ @JsonProperty @Nullable - private Schema schema; + private AsyncAPISchema schema; /** * A runtime expression that specifies the location of the parameter value. diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/channel/message/CorrelationId.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/channel/message/CorrelationId.java index 56f008a7..04445a1e 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/channel/message/CorrelationId.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/channel/message/CorrelationId.java @@ -1,6 +1,6 @@ package com.asyncapi.v2._0_0.model.channel.message; -import com.asyncapi.v2.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/channel/message/Message.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/channel/message/Message.java index 7f68d20b..1268160e 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/channel/message/Message.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/channel/message/Message.java @@ -1,16 +1,16 @@ package com.asyncapi.v2._0_0.model.channel.message; -import com.asyncapi.v2.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import com.asyncapi.v2._0_0.jackson.model.channel.message.MessageCorrelationIdDeserializer; import com.asyncapi.v2._0_0.jackson.model.channel.message.MessageHeadersDeserializer; import com.asyncapi.v2._0_0.jackson.model.channel.message.MessagePayloadDeserializer; import com.asyncapi.v2._0_0.jackson.model.channel.message.MessageTraitsDeserializer; import com.asyncapi.v2._0_0.model.ExternalDocumentation; -import com.asyncapi.v2.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._0_0.model.Tag; -import com.asyncapi.v2.schema.Schema; -import com.asyncapi.v2.binding.message.MessageBinding; -import com.asyncapi.v2.jackson.binding.message.MessageBindingsDeserializer; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.bindings.MessageBinding; +import com.asyncapi.bindings.MessageBindingsDeserializer; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.AllArgsConstructor; @@ -43,7 +43,7 @@ public class Message extends ExtendableObject { *

* MUST BE: *

    - *
  • {@link Schema}
  • + *
  • {@link AsyncAPISchema}
  • *
  • {@link Reference}
  • *
*/ @@ -56,7 +56,7 @@ public class Message extends ExtendableObject { *

* WILL BE: *

    - *
  • {@link Schema}
  • + *
  • {@link AsyncAPISchema}
  • *
  • {@link com.fasterxml.jackson.databind.JsonNode}
  • *
*/ diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/channel/message/MessageTrait.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/channel/message/MessageTrait.java index a762936a..aa4d7dc1 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/channel/message/MessageTrait.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/channel/message/MessageTrait.java @@ -1,15 +1,15 @@ package com.asyncapi.v2._0_0.model.channel.message; -import com.asyncapi.v2.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import com.asyncapi.v2._0_0.jackson.model.channel.message.MessageCorrelationIdDeserializer; import com.asyncapi.v2._0_0.jackson.model.channel.message.MessageHeadersDeserializer; import com.asyncapi.v2._0_0.model.ExternalDocumentation; -import com.asyncapi.v2.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._0_0.model.Tag; import com.asyncapi.v2._0_0.model.channel.operation.OperationTrait; -import com.asyncapi.v2.schema.Schema; -import com.asyncapi.v2.binding.message.MessageBinding; -import com.asyncapi.v2.jackson.binding.message.MessageBindingsDeserializer; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.bindings.MessageBinding; +import com.asyncapi.bindings.MessageBindingsDeserializer; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.AllArgsConstructor; import lombok.Builder; @@ -47,7 +47,7 @@ public class MessageTrait extends ExtendableObject { *

* MUST BE: *

    - *
  • {@link Schema}
  • + *
  • {@link AsyncAPISchema}
  • *
  • {@link Reference}
  • *
*/ diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/channel/operation/Operation.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/channel/operation/Operation.java index 1a243f9d..b0816162 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/channel/operation/Operation.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/channel/operation/Operation.java @@ -1,14 +1,14 @@ package com.asyncapi.v2._0_0.model.channel.operation; -import com.asyncapi.v2.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import com.asyncapi.v2._0_0.jackson.model.channel.operation.OperationMessageDeserializer; import com.asyncapi.v2._0_0.jackson.model.channel.operation.OperationTraitsDeserializer; import com.asyncapi.v2._0_0.model.ExternalDocumentation; -import com.asyncapi.v2.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._0_0.model.Tag; import com.asyncapi.v2._0_0.model.channel.message.Message; -import com.asyncapi.v2.binding.operation.OperationBinding; -import com.asyncapi.v2.jackson.binding.operation.OperationBindingsDeserializer; +import com.asyncapi.bindings.OperationBinding; +import com.asyncapi.bindings.OperationBindingsDeserializer; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/channel/operation/OperationTrait.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/channel/operation/OperationTrait.java index d66d74e3..e48f7c0b 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/channel/operation/OperationTrait.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/channel/operation/OperationTrait.java @@ -1,11 +1,11 @@ package com.asyncapi.v2._0_0.model.channel.operation; -import com.asyncapi.v2.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import com.asyncapi.v2._0_0.model.ExternalDocumentation; import com.asyncapi.v2._0_0.model.Tag; import com.asyncapi.v2._0_0.model.channel.message.MessageTrait; -import com.asyncapi.v2.binding.operation.OperationBinding; -import com.asyncapi.v2.jackson.binding.operation.OperationBindingsDeserializer; +import com.asyncapi.bindings.OperationBinding; +import com.asyncapi.bindings.OperationBindingsDeserializer; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/component/Components.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/component/Components.java index c6f4660d..de5cdab8 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/component/Components.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/component/Components.java @@ -1,26 +1,26 @@ package com.asyncapi.v2._0_0.model.component; -import com.asyncapi.v2.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import com.asyncapi.v2._0_0.jackson.model.component.ComponentsMessagesDeserializer; import com.asyncapi.v2._0_0.jackson.model.component.ComponentsParametersDeserializer; import com.asyncapi.v2._0_0.jackson.model.component.ComponentsSchemasDeserializer; import com.asyncapi.v2._0_0.jackson.model.component.ComponentsSecuritySchemesDeserializer; -import com.asyncapi.v2.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._0_0.model.channel.Parameter; import com.asyncapi.v2._0_0.model.channel.message.CorrelationId; import com.asyncapi.v2._0_0.model.channel.message.Message; import com.asyncapi.v2._0_0.model.channel.message.MessageTrait; import com.asyncapi.v2._0_0.model.channel.operation.OperationTrait; -import com.asyncapi.v2.schema.Schema; -import com.asyncapi.v2.binding.channel.ChannelBinding; -import com.asyncapi.v2.binding.message.MessageBinding; -import com.asyncapi.v2.binding.operation.OperationBinding; -import com.asyncapi.v2.binding.server.ServerBinding; -import com.asyncapi.v2.jackson.binding.channel.ChannelBindingsDeserializer; -import com.asyncapi.v2.jackson.binding.message.MessageBindingsDeserializer; -import com.asyncapi.v2.jackson.binding.operation.OperationBindingsDeserializer; -import com.asyncapi.v2.jackson.binding.server.ServerBindingsDeserializer; -import com.asyncapi.v2.security_scheme.SecurityScheme; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.bindings.ChannelBinding; +import com.asyncapi.bindings.MessageBinding; +import com.asyncapi.bindings.OperationBinding; +import com.asyncapi.bindings.ServerBinding; +import com.asyncapi.bindings.ChannelBindingsDeserializer; +import com.asyncapi.bindings.MessageBindingsDeserializer; +import com.asyncapi.bindings.OperationBindingsDeserializer; +import com.asyncapi.bindings.ServerBindingsDeserializer; +import com.asyncapi.schemas.asyncapi.security.v2.SecurityScheme; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.AllArgsConstructor; import lombok.Builder; @@ -52,7 +52,7 @@ public class Components extends ExtendableObject { *

* MUST BE: *

    - *
  • {@link Schema}
  • + *
  • {@link AsyncAPISchema}
  • *
  • {@link Reference}
  • *
*/ diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/info/Contact.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/info/Contact.java index 648c91da..542fcb01 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/info/Contact.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/info/Contact.java @@ -1,6 +1,6 @@ package com.asyncapi.v2._0_0.model.info; -import com.asyncapi.v2.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/info/Info.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/info/Info.java index 61a5a338..93392a7e 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/info/Info.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/info/Info.java @@ -1,6 +1,6 @@ package com.asyncapi.v2._0_0.model.info; -import com.asyncapi.v2.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/info/License.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/info/License.java index dfb6c6c4..4ec84e93 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/info/License.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/info/License.java @@ -1,6 +1,6 @@ package com.asyncapi.v2._0_0.model.info; -import com.asyncapi.v2.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/server/Server.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/server/Server.java index 4d707b5a..2de5657b 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/server/Server.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/server/Server.java @@ -1,8 +1,8 @@ package com.asyncapi.v2._0_0.model.server; -import com.asyncapi.v2.ExtendableObject; -import com.asyncapi.v2.binding.server.ServerBinding; -import com.asyncapi.v2.jackson.binding.server.ServerBindingsDeserializer; +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.asyncapi.bindings.ServerBinding; +import com.asyncapi.bindings.ServerBindingsDeserializer; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.AllArgsConstructor; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/server/ServerVariable.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/server/ServerVariable.java index 5b1d233c..9d75835f 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/server/ServerVariable.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_0_0/model/server/ServerVariable.java @@ -1,6 +1,6 @@ package com.asyncapi.v2._0_0.model.server; -import com.asyncapi.v2.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/ChannelParametersDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/ChannelParametersDeserializer.java index 9bdc2bad..c6a2037b 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/ChannelParametersDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/ChannelParametersDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v2._6_0.jackson.model.channel; -import com.asyncapi.v2.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._6_0.model.channel.Parameter; -import com.asyncapi.v2.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; /** * Serializes channel parameters map. diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/message/MessageCorrelationIdDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/message/MessageCorrelationIdDeserializer.java index 03003e13..43109fb8 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/message/MessageCorrelationIdDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/message/MessageCorrelationIdDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v2._6_0.jackson.model.channel.message; -import com.asyncapi.v2.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._6_0.model.channel.message.CorrelationId; -import com.asyncapi.v2.jackson.ReferenceOrObjectDeserializer; +import com.asyncapi.serde.ReferenceOrObjectDeserializer; /** * Serializes message correlation id. diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/message/MessageDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/message/MessageDeserializer.java new file mode 100644 index 00000000..7997c79a --- /dev/null +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/message/MessageDeserializer.java @@ -0,0 +1,298 @@ +package com.asyncapi.v2._6_0.jackson.model.channel.message; + +import com.asyncapi.bindings.MessageBindingsDeserializer; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.asyncapi.schemas.json.JsonSchema; +import com.asyncapi.schemas.asyncapi.Reference; +import com.asyncapi.schemas.avro.v1._9_0.AvroSchema; +import com.asyncapi.schemas.openapi.v3._0_0.OpenAPISchema; +import com.asyncapi.v2._6_0.model.ExternalDocumentation; +import com.asyncapi.v2._6_0.model.Tag; +import com.asyncapi.v2._6_0.model.channel.message.Message; +import com.asyncapi.v2._6_0.model.channel.message.MessageExample; +import com.fasterxml.jackson.core.JacksonException; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.*; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.JsonNodeType; + +import java.io.IOException; +import java.util.*; +import java.util.stream.Collectors; + +/** + * Deserializes Message + *

+ * TODO: Fix this + */ +public class MessageDeserializer extends JsonDeserializer { + + private static final List propertiesToIgnore = Arrays.asList( + "messageId", + "headers", + "payload", + "correlationId", + "schemaFormat", + "contentType", + "name", + "title", + "summary", + "description", + "tags", + "externalDocs", + "bindings", + "tags", + "examples", + "traits" + ); + + private String string(JsonNode node, ObjectCodec objectCodec) throws IOException { + if (node == null) { + return null; + } + + try (JsonParser jsonParser = node.traverse(objectCodec)) { + return jsonParser.readValueAs(String.class); + } + } + + private Object headers(JsonNode node, ObjectCodec objectCodec, DeserializationContext deserializationContext) throws IOException { + if (node == null) { + return null; + } + + try (JsonParser jsonParser = node.traverse(objectCodec)) { + MessageHeadersDeserializer deserializer = new MessageHeadersDeserializer(); + + return deserializer.deserialize(jsonParser, deserializationContext); + } + } + + private Object correlationId(JsonNode node, ObjectCodec objectCodec, DeserializationContext deserializationContext) throws IOException { + if (node == null) { + return null; + } + + try (JsonParser jsonParser = node.traverse(objectCodec)) { + MessageCorrelationIdDeserializer deserializer = new MessageCorrelationIdDeserializer(); + + return deserializer.deserialize(jsonParser, deserializationContext); + } + } + + private List tags(JsonNode node, ObjectCodec objectCodec) throws IOException { + if (node == null) { + return null; + } + + try (JsonParser jsonParser = node.traverse(objectCodec)) { + return jsonParser.readValueAs(new TypeReference>() {}); + } + } + + private ExternalDocumentation externalDocs(JsonNode node, ObjectCodec objectCodec) throws IOException { + if (node == null) { + return null; + } + + try (JsonParser jsonParser = node.traverse(objectCodec)) { + return jsonParser.readValueAs(ExternalDocumentation.class); + } + } + + private Map bindings(JsonNode node, ObjectCodec objectCodec, DeserializationContext deserializationContext) throws IOException { + if (node == null) { + return null; + } + + try (JsonParser jsonParser = node.traverse(objectCodec)) { + MessageBindingsDeserializer deserializer = new MessageBindingsDeserializer(); + + return deserializer.deserialize(jsonParser, deserializationContext); + } + } + + private List examples(JsonNode node, ObjectCodec objectCodec) throws IOException { + if (node == null) { + return null; + } + + try (JsonParser jsonParser = node.traverse(objectCodec)) { + return jsonParser.readValueAs(new TypeReference>() {}); + } + } + + private List traits(JsonNode node, ObjectCodec objectCodec, DeserializationContext deserializationContext) throws IOException { + if (node == null) { + return null; + } + + try (JsonParser jsonParser = node.traverse(objectCodec)) { + MessageTraitsDeserializer deserializer = new MessageTraitsDeserializer(); + + return deserializer.deserialize(jsonParser, deserializationContext); + } + } + + private Object payload(JsonNode messageNode, ObjectCodec objectCodec) throws IOException { + JsonNode payloadNode = messageNode.get("payload"); + if (payloadNode == null) { + return null; + } + + try (JsonParser jsonParser = payloadNode.traverse(objectCodec)) { + if (payloadNode.properties().size() == 1 && payloadNode.get("$ref") != null) { + return jsonParser.readValueAs(Reference.class); + } + + JsonNode schemaFormatNode = messageNode.findValue("schemaFormat"); + if (schemaFormatNode == null) { + return jsonParser.readValueAs(AsyncAPISchema.class); + } + + Class messageToDeserializeTo = AsyncAPISchema.class; + switch (schemaFormatNode.textValue()) { + case "application/schema+json;version=draft-07": + case "application/schema+yaml;version=draft-07": { + messageToDeserializeTo = JsonSchema.class; + break; + } + case "application/vnd.oai.openapi;version=3.0.0": + case "application/vnd.oai.openapi+json;version=3.0.0": + case "application/vnd.oai.openapi+yaml;version=3.0.0": + case "application/vnd.oai.openapi;version=3.0.1": + case "application/vnd.oai.openapi+json;version=3.0.1": + case "application/vnd.oai.openapi+yaml;version=3.0.1": + case "application/vnd.oai.openapi;version=3.0.2": + case "application/vnd.oai.openapi+json;version=3.0.2": + case "application/vnd.oai.openapi+yaml;version=3.0.2": + case "application/vnd.oai.openapi;version=3.0.3": + case "application/vnd.oai.openapi+json;version=3.0.3": + case "application/vnd.oai.openapi+yaml;version=3.0.3": { + messageToDeserializeTo = OpenAPISchema.class; + break; + } + case "application/vnd.apache.avro;version=1.9.0": + case "application/vnd.apache.avro+json;version=1.9.0": + case "application/vnd.apache.avro+yaml;version=1.9.0": + case "application/vnd.apache.avro;version=1.9.1": + case "application/vnd.apache.avro+json;version=1.9.1": + case "application/vnd.apache.avro+yaml;version=1.9.1": + case "application/vnd.apache.avro;version=1.9.2": + case "application/vnd.apache.avro+json;version=1.9.2": + case "application/vnd.apache.avro+yaml;version=1.9.2": + case "application/vnd.apache.avro;version=1.10.0": + case "application/vnd.apache.avro+json;version=1.10.0": + case "application/vnd.apache.avro+yaml;version=1.10.0": + case "application/vnd.apache.avro;version=1.10.1": + case "application/vnd.apache.avro+json;version=1.10.1": + case "application/vnd.apache.avro+yaml;version=1.10.1": + case "application/vnd.apache.avro;version=1.10.2": + case "application/vnd.apache.avro+json;version=1.10.2": + case "application/vnd.apache.avro+yaml;version=1.10.2": + case "application/vnd.apache.avro;version=1.11.0": + case "application/vnd.apache.avro+json;version=1.11.0": + case "application/vnd.apache.avro+yaml;version=1.11.0": + case "application/vnd.apache.avro;version=1.11.1": + case "application/vnd.apache.avro+json;version=1.11.1": + case "application/vnd.apache.avro+yaml;version=1.11.1": { + messageToDeserializeTo = AvroSchema.class; + break; + } + } + + return jsonParser.readValueAs(messageToDeserializeTo); + } + } + + private Object chooseKnownPojo(JsonNode jsonNode, final ObjectCodec objectCodec) throws IOException { + try (JsonParser jsonParser = jsonNode.traverse(objectCodec)) { + JsonNodeType nodeType = jsonNode.getNodeType(); + + switch (nodeType) { + case ARRAY: + return readAsList((ArrayNode) jsonNode, objectCodec); + case BOOLEAN: + return jsonNode.asBoolean(); + case NUMBER: + return jsonParser.readValueAs(Number.class); + case OBJECT: + return jsonParser.readValueAs(Object.class); + case STRING: + return jsonParser.readValueAs(String.class); + case BINARY: + case POJO: + case MISSING: + case NULL: + return null; + } + + return null; + } + } + + private List readAsList(ArrayNode arrayNode, ObjectCodec objectCodec) throws IOException { + List list = new ArrayList<>(); + for (JsonNode childNode : arrayNode) { + list.add(chooseKnownPojo(childNode, objectCodec)); + } + + return list; + } + + private Map extensionFields(JsonNode messageNode, ObjectCodec objectCodec) throws IOException { + if (messageNode == null) { + return null; + } + + Map extensionFields = new HashMap<>(); + List> unknownProperties = messageNode.properties().stream() + .filter(property -> !propertiesToIgnore.contains(property.getKey())) + .collect(Collectors.toList()); + + for (Map.Entry property: unknownProperties) { + if (ExtendableObject.extensionPropertyNamePattern.matcher(property.getKey()).matches()) { + extensionFields.put(property.getKey(), chooseKnownPojo(property.getValue(), objectCodec)); + } else { + throw new JsonMappingException(String.format("\"%s\" is not valid extension property (through reference chain: com.asyncapi.v2._6_0.model.channel.message.Message[\"%s\"])", property.getKey(), property.getKey())); + } + } + + if (extensionFields.isEmpty()) { + return null; + } + + return extensionFields; + } + + @Override + public Message deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JacksonException { + ObjectCodec objectCodec = jsonParser.getCodec(); + JsonNode messageNode = objectCodec.readTree(jsonParser); + + Message message = Message.builder() + .messageId(string(messageNode.get("messageId"), objectCodec)) + .headers(headers(messageNode.get("headers"), objectCodec, deserializationContext)) + .payload(payload(messageNode, objectCodec)) + .correlationId(correlationId(messageNode.get("correlationId"), objectCodec, deserializationContext)) + .schemaFormat(string(messageNode.get("schemaFormat"), objectCodec)) + .contentType(string(messageNode.get("contentType"), objectCodec)) + .name(string(messageNode.get("name"), objectCodec)) + .title(string(messageNode.get("title"), objectCodec)) + .summary(string(messageNode.get("summary"), objectCodec)) + .description(string(messageNode.get("description"), objectCodec)) + .tags(tags(messageNode.get("tags"), objectCodec)) + .externalDocs(externalDocs(messageNode.get("externalDocs"), objectCodec)) + .bindings(bindings(messageNode.get("bindings"), objectCodec, deserializationContext)) + .examples(examples(messageNode.get("examples"), objectCodec)) + .traits(traits(messageNode.get("traits"), objectCodec, deserializationContext)) + .build(); + + message.setExtensionFields(extensionFields(messageNode, objectCodec)); + return message; + } + +} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/message/MessageHeadersDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/message/MessageHeadersDeserializer.java index 0fa2e91a..c4c2627a 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/message/MessageHeadersDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/message/MessageHeadersDeserializer.java @@ -1,19 +1,19 @@ package com.asyncapi.v2._6_0.jackson.model.channel.message; -import com.asyncapi.v2.Reference; -import com.asyncapi.v2.schema.Schema; -import com.asyncapi.v2.jackson.ReferenceOrObjectDeserializer; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.schemas.asyncapi.Reference; +import com.asyncapi.serde.ReferenceOrObjectDeserializer; /** * Serializes message traits list. * * @author Pavel Bodiachevskii */ -public class MessageHeadersDeserializer extends ReferenceOrObjectDeserializer { +public class MessageHeadersDeserializer extends ReferenceOrObjectDeserializer { @Override - public Class objectTypeClass() { - return Schema.class; + public Class objectTypeClass() { + return AsyncAPISchema.class; } public Class referenceClass() { diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/message/MessagePayloadDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/message/MessagePayloadDeserializer.java deleted file mode 100644 index f1cdec13..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/message/MessagePayloadDeserializer.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.asyncapi.v2._6_0.jackson.model.channel.message; - -import com.asyncapi.v2.schema.Schema; -import com.asyncapi.v2.jackson.ObjectDeserializer; - -/** - * Serializes message traits list. - * - * @author Pavel Bodiachevskii - */ -public class MessagePayloadDeserializer extends ObjectDeserializer { - - @Override - public Class objectTypeClass() { - return Schema.class; - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/message/MessageTraitsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/message/MessageTraitsDeserializer.java index 14099ba2..fb969fc3 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/message/MessageTraitsDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/message/MessageTraitsDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v2._6_0.jackson.model.channel.message; -import com.asyncapi.v2.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._6_0.model.channel.message.MessageTrait; -import com.asyncapi.v2.jackson.ListOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.ListOfReferencesOrObjectsDeserializer; /** * Serializes message traits list. diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/message/MessagesDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/message/MessagesDeserializer.java index 12643960..1cbe7c27 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/message/MessagesDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/message/MessagesDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v2._6_0.jackson.model.channel.message; -import com.asyncapi.v2.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._6_0.model.channel.message.Message; -import com.asyncapi.v2.jackson.ListOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.ListOfReferencesOrObjectsDeserializer; /** * Serializes messages list. diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/operation/OperationMessageDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/operation/OperationMessageDeserializer.java index cccadb79..c603c6cc 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/operation/OperationMessageDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/operation/OperationMessageDeserializer.java @@ -1,6 +1,6 @@ package com.asyncapi.v2._6_0.jackson.model.channel.operation; -import com.asyncapi.v2.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._6_0.model.channel.message.Message; import com.asyncapi.v2._6_0.model.channel.message.OneOfMessages; import com.fasterxml.jackson.core.JsonParser; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/operation/OperationTraitsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/operation/OperationTraitsDeserializer.java index 73df461f..4c11a6d4 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/operation/OperationTraitsDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/channel/operation/OperationTraitsDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v2._6_0.jackson.model.channel.operation; -import com.asyncapi.v2.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._6_0.model.channel.operation.OperationTrait; -import com.asyncapi.v2.jackson.ListOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.ListOfReferencesOrObjectsDeserializer; /** * Serializes operation traits list. diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsCorrelationIdsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsCorrelationIdsDeserializer.java index 8a371a57..840876e3 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsCorrelationIdsDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsCorrelationIdsDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v2._6_0.jackson.model.component; -import com.asyncapi.v2.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._6_0.model.channel.message.CorrelationId; -import com.asyncapi.v2.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; public class ComponentsCorrelationIdsDeserializer extends MapOfReferencesOrObjectsDeserializer { diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsMessageTraitsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsMessageTraitsDeserializer.java index 4b74a8f7..46d2b5d9 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsMessageTraitsDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsMessageTraitsDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v2._6_0.jackson.model.component; -import com.asyncapi.v2.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._6_0.model.channel.message.MessageTrait; -import com.asyncapi.v2.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; public class ComponentsMessageTraitsDeserializer extends MapOfReferencesOrObjectsDeserializer { diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsMessagesDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsMessagesDeserializer.java index 17e779e2..c3e56b49 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsMessagesDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsMessagesDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v2._6_0.jackson.model.component; -import com.asyncapi.v2.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._6_0.model.channel.message.Message; -import com.asyncapi.v2.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; public class ComponentsMessagesDeserializer extends MapOfReferencesOrObjectsDeserializer { diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsOperationTraitsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsOperationTraitsDeserializer.java index f9f33397..e6cf90da 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsOperationTraitsDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsOperationTraitsDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v2._6_0.jackson.model.component; -import com.asyncapi.v2.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._6_0.model.channel.operation.OperationTrait; -import com.asyncapi.v2.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; public class ComponentsOperationTraitsDeserializer extends MapOfReferencesOrObjectsDeserializer { diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsParametersDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsParametersDeserializer.java index e11cc46f..b6ea590a 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsParametersDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsParametersDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v2._6_0.jackson.model.component; -import com.asyncapi.v2.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._6_0.model.channel.Parameter; -import com.asyncapi.v2.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; public class ComponentsParametersDeserializer extends MapOfReferencesOrObjectsDeserializer { diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsSchemasDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsSchemasDeserializer.java index d6dd235c..e24fc30e 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsSchemasDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsSchemasDeserializer.java @@ -1,19 +1,95 @@ package com.asyncapi.v2._6_0.jackson.model.component; -import com.asyncapi.v2.Reference; -import com.asyncapi.v2.schema.Schema; -import com.asyncapi.v2.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.schemas.asyncapi.Reference; +import com.asyncapi.schemas.asyncapi.multiformat.MultiFormatSchema; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.ObjectCodec; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import org.jetbrains.annotations.NotNull; -public class ComponentsSchemasDeserializer extends MapOfReferencesOrObjectsDeserializer { +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; - @Override - public Class objectTypeClass() { - return Schema.class; +public class ComponentsSchemasDeserializer extends JsonDeserializer { + + public Class objectTypeClass() { + return AsyncAPISchema.class; } - @Override public Class referenceClass() { return Reference.class; } + @Override + public Map deserialize(JsonParser jsonParser, + DeserializationContext deserializationContext + ) throws IOException, JsonProcessingException { + ObjectCodec objectCodec = jsonParser.getCodec(); + JsonNode map = objectCodec.readTree(jsonParser); + + Map parameters = new HashMap<>(); + + map.fieldNames().forEachRemaining( + fieldName -> { + /* + Problem: + Both, Reference class and Schema class have $ref field. + So, this is only reason why I receive next exception: + "com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: + Unrecognized field "title" (class com.asyncapi.v2._6_0.model.Reference), + not marked as ignorable (one known property: "$ref"])" + in case when Schema contains $ref. + Solution: + Try to deserialize reference. In case of exception, try to deserialize it as given ObjectType. In case of + one more exception, throw it. + TODO: Think how to improve. + */ + try { + parameters.put(fieldName, chooseKnownPojo(map.get(fieldName), objectCodec)); + } catch (IOException ignore) { + try { + parameters.put(fieldName, readAsObject(map.get(fieldName), objectCodec)); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + ); + + return parameters; + } + + private Object chooseKnownPojo(JsonNode jsonNode, ObjectCodec objectCodec) throws IOException { + JsonNode ref = jsonNode.get("$ref"); + try (JsonParser jsonParser = jsonNode.traverse(objectCodec)) { + if (isMultiFormatSchema(jsonNode)) { + return jsonParser.readValueAs(MultiFormatSchema.class); + } + + if (ref != null) { + return jsonParser.readValueAs(referenceClass()); + } else { + return jsonParser.readValueAs(objectTypeClass()); + } + } + } + + private Object readAsObject(JsonNode jsonNode, ObjectCodec objectCodec) throws IOException { + try (JsonParser jsonParser = jsonNode.traverse(objectCodec)) { + return jsonParser.readValueAs(objectTypeClass()); + } + } + + private boolean isMultiFormatSchema(@NotNull JsonNode jsonNode) { + JsonNode schemaFormat = jsonNode.get("schemaFormat"); + JsonNode schema = jsonNode.get("schema"); + + return (schemaFormat != null) && (schema != null); + } + } diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsSecuritySchemesDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsSecuritySchemesDeserializer.java index 8b045902..363e63c8 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsSecuritySchemesDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsSecuritySchemesDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v2._6_0.jackson.model.component; -import com.asyncapi.v2.Reference; -import com.asyncapi.v2.jackson.MapOfReferencesOrObjectsDeserializer; -import com.asyncapi.v2.security_scheme.SecurityScheme; +import com.asyncapi.schemas.asyncapi.Reference; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.schemas.asyncapi.security.v2.SecurityScheme; public class ComponentsSecuritySchemesDeserializer extends MapOfReferencesOrObjectsDeserializer { diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsServerVariablesDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsServerVariablesDeserializer.java index 1b056b6f..b13030af 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsServerVariablesDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsServerVariablesDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v2._6_0.jackson.model.component; -import com.asyncapi.v2.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._6_0.model.server.ServerVariable; -import com.asyncapi.v2.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; public class ComponentsServerVariablesDeserializer extends MapOfReferencesOrObjectsDeserializer { diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsServersDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsServersDeserializer.java index b7a7c2fc..4e1bedb4 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsServersDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/component/ComponentsServersDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v2._6_0.jackson.model.component; -import com.asyncapi.v2.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._6_0.model.server.Server; -import com.asyncapi.v2.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; public class ComponentsServersDeserializer extends MapOfReferencesOrObjectsDeserializer { diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/schema/SchemaDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/schema/SchemaDeserializer.java index 81940260..ab926508 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/schema/SchemaDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/schema/SchemaDeserializer.java @@ -1,19 +1,19 @@ package com.asyncapi.v2._6_0.jackson.model.schema; -import com.asyncapi.v2.Reference; -import com.asyncapi.v2.schema.Schema; -import com.asyncapi.v2.jackson.ReferenceOrObjectDeserializer; +import com.asyncapi.schemas.asyncapi.Reference; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.serde.ReferenceOrObjectDeserializer; /** * Serializes component servers map. * * @author Pavel Bodiachevskii */ -public class SchemaDeserializer extends ReferenceOrObjectDeserializer { +public class SchemaDeserializer extends ReferenceOrObjectDeserializer { @Override - public Class objectTypeClass() { - return Schema.class; + public Class objectTypeClass() { + return AsyncAPISchema.class; } public Class referenceClass() { diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/schema/SchemasAdditionalPropertiesDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/schema/SchemasAdditionalPropertiesDeserializer.java deleted file mode 100644 index 8cc6e9ec..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/schema/SchemasAdditionalPropertiesDeserializer.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.asyncapi.v2._6_0.jackson.model.schema; - -import com.asyncapi.v2.schema.Schema; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -/** - * @author Guillaume LAMIRAND (guillaume.lamirand at graviteesource.com) - * @author GraviteeSource Team - */ -public class SchemasAdditionalPropertiesDeserializer extends JsonDeserializer { - - @Override - public Object deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException { - ObjectCodec objectCodec = p.getCodec(); - JsonNode node = objectCodec.readTree(p); - - return chooseKnownPojo(node, objectCodec); - } - - private Object chooseKnownPojo(JsonNode jsonNode, final ObjectCodec objectCodec) throws IOException { - try (JsonParser jsonParser = jsonNode.traverse(objectCodec)) { - if (jsonNode.isBoolean()) { - return jsonNode.asBoolean(); - } else { - return jsonParser.readValueAs(Schema.class); - } - } - } -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/server/ServerVariablesDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/server/ServerVariablesDeserializer.java index 9611dfad..2c0789e9 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/server/ServerVariablesDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/server/ServerVariablesDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v2._6_0.jackson.model.server; -import com.asyncapi.v2.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._6_0.model.server.ServerVariable; -import com.asyncapi.v2.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; /** * Serializes {@link com.asyncapi.v2._6_0.model.server.Server} variables map. diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/server/ServersDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/server/ServersDeserializer.java index 17053961..7db29e83 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/server/ServersDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/jackson/model/server/ServersDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v2._6_0.jackson.model.server; -import com.asyncapi.v2.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._6_0.model.server.Server; -import com.asyncapi.v2.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; /** * Serializes component servers map. diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/AsyncAPI.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/AsyncAPI.java index 017409dd..3fbe507a 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/AsyncAPI.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/AsyncAPI.java @@ -1,6 +1,7 @@ package com.asyncapi.v2._6_0.model; -import com.asyncapi.v2.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._6_0.jackson.model.server.ServersDeserializer; import com.asyncapi.v2._6_0.model.channel.ChannelItem; import com.asyncapi.v2._6_0.model.component.Components; @@ -48,7 +49,7 @@ public class AsyncAPI extends ExtendableObject { */ @NotNull @Builder.Default - private final String asyncapi = "2.6.0"; + private String asyncapi = "2.6.0"; /** * Identifier of the application the AsyncAPI document is defining. @@ -76,7 +77,7 @@ public class AsyncAPI extends ExtendableObject { * MUST BE: *
    *
  • {@link Server}
  • - *
  • {@link com.asyncapi.v2.Reference}
  • + *
  • {@link Reference}
  • *
*/ @Nullable diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/ExternalDocumentation.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/ExternalDocumentation.java index d9023f23..70f8248e 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/ExternalDocumentation.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/ExternalDocumentation.java @@ -1,6 +1,6 @@ package com.asyncapi.v2._6_0.model; -import com.asyncapi.v2.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/Tag.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/Tag.java index f441e6ab..69f4ee51 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/Tag.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/Tag.java @@ -1,6 +1,6 @@ package com.asyncapi.v2._6_0.model; -import com.asyncapi.v2.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/ChannelItem.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/ChannelItem.java index 57fcad88..f5f6873a 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/ChannelItem.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/ChannelItem.java @@ -1,10 +1,11 @@ package com.asyncapi.v2._6_0.model.channel; -import com.asyncapi.v2.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._6_0.jackson.model.channel.ChannelParametersDeserializer; import com.asyncapi.v2._6_0.model.channel.operation.Operation; -import com.asyncapi.v2.binding.channel.ChannelBinding; -import com.asyncapi.v2.jackson.binding.channel.ChannelBindingsDeserializer; +import com.asyncapi.bindings.ChannelBinding; +import com.asyncapi.bindings.ChannelBindingsDeserializer; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.AllArgsConstructor; @@ -73,7 +74,7 @@ public class ChannelItem extends ExtendableObject { *

* MUST BE: *

    - *
  • {@link com.asyncapi.v2.Reference}
  • + *
  • {@link Reference}
  • *
  • {@link com.asyncapi.v2._6_0.model.channel.Parameter}
  • *
*/ @@ -86,7 +87,7 @@ public class ChannelItem extends ExtendableObject { *

* MUST BE: *

    - *
  • {@link com.asyncapi.v2.Reference}
  • + *
  • {@link Reference}
  • *
  • {@link ChannelBinding}
  • *
*/ diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/Parameter.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/Parameter.java index e14cc2d9..d97e901d 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/Parameter.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/Parameter.java @@ -1,6 +1,8 @@ package com.asyncapi.v2._6_0.model.channel; -import com.asyncapi.v2.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.asyncapi.schemas.asyncapi.Reference; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; import com.asyncapi.v2._6_0.jackson.model.schema.SchemaDeserializer; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.AllArgsConstructor; @@ -35,8 +37,8 @@ public class Parameter extends ExtendableObject { *

* MUST BE: *

    - *
  • {@link com.asyncapi.v2.Reference}
  • - *
  • {@link com.asyncapi.v2.schema.Schema}
  • + *
  • {@link Reference}
  • + *
  • {@link AsyncAPISchema}
  • *
*/ @Nullable diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/message/CorrelationId.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/message/CorrelationId.java index c88a7415..3cf82e4b 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/message/CorrelationId.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/message/CorrelationId.java @@ -1,6 +1,6 @@ package com.asyncapi.v2._6_0.model.channel.message; -import com.asyncapi.v2.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/message/Message.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/message/Message.java index 6db494a8..b41da3c0 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/message/Message.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/message/Message.java @@ -1,20 +1,18 @@ package com.asyncapi.v2._6_0.model.channel.message; -import com.asyncapi.v2.ExtendableObject; -import com.asyncapi.v2._6_0.jackson.model.channel.message.MessageCorrelationIdDeserializer; -import com.asyncapi.v2._6_0.jackson.model.channel.message.MessageHeadersDeserializer; -import com.asyncapi.v2._6_0.jackson.model.channel.message.MessagePayloadDeserializer; -import com.asyncapi.v2._6_0.jackson.model.channel.message.MessageTraitsDeserializer; +import com.asyncapi.bindings.MessageBinding; +import com.asyncapi.bindings.MessageBindingsDeserializer; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.asyncapi.schemas.json.JsonSchema; +import com.asyncapi.schemas.asyncapi.Reference; +import com.asyncapi.schemas.avro.v1._9_0.AvroSchema; +import com.asyncapi.schemas.openapi.v3._0_0.OpenAPISchema; +import com.asyncapi.v2._6_0.jackson.model.channel.message.*; import com.asyncapi.v2._6_0.model.ExternalDocumentation; import com.asyncapi.v2._6_0.model.Tag; -import com.asyncapi.v2.binding.message.MessageBinding; -import com.asyncapi.v2.jackson.binding.message.MessageBindingsDeserializer; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; +import lombok.*; import org.jetbrains.annotations.Nullable; import java.util.List; @@ -32,6 +30,7 @@ @NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode(callSuper = true) +@JsonDeserialize(using = MessageDeserializer.class) public class Message extends ExtendableObject { /** @@ -50,8 +49,8 @@ public class Message extends ExtendableObject { *

* MUST BE: *

    - *
  • {@link com.asyncapi.v2.schema.Schema}
  • - *
  • {@link com.asyncapi.v2.Reference}
  • + *
  • {@link AsyncAPISchema}
  • + *
  • {@link Reference}
  • *
*/ @Nullable @@ -63,13 +62,16 @@ public class Message extends ExtendableObject { * It must match the schema format, including encoding type - e.g Avro should be inlined as either a YAML or JSON object * NOT a string to be parsed as YAML or JSON. *

- * WILL BE: + * MUST BE: *

    - *
  • {@link com.asyncapi.v2.schema.Schema}
  • + *
  • {@link AsyncAPISchema}
  • + *
  • {@link OpenAPISchema}
  • + *
  • {@link JsonSchema}
  • + *
  • {@link AvroSchema}
  • + *
  • {@link Reference}
  • *
*/ @Nullable - @JsonDeserialize(using = MessagePayloadDeserializer.class) private Object payload; /** @@ -78,7 +80,7 @@ public class Message extends ExtendableObject { * MUST BE: *
    *
  • {@link com.asyncapi.v2._6_0.model.channel.message.CorrelationId}
  • - *
  • {@link com.asyncapi.v2.Reference}
  • + *
  • {@link Reference}
  • *
*/ @Nullable @@ -87,7 +89,7 @@ public class Message extends ExtendableObject { /** * A string containing the name of the schema format used to define the message payload. - * If omitted, implementations should parse the payload as a {@link com.asyncapi.v2.schema.Schema} object. When the payload is defined using a + * If omitted, implementations should parse the payload as a {@link AsyncAPISchema} object. When the payload is defined using a * $ref to a remote file, it is RECOMMENDED the schema format includes the file encoding type to allow implementations * to parse the file correctly. E.g., adding +yaml if content type is application/vnd.apache.avro results in * application/vnd.apache.avro+yaml. @@ -149,7 +151,7 @@ public class Message extends ExtendableObject { *

* MUST BE: *

    - *
  • {@link com.asyncapi.v2.Reference}
  • + *
  • {@link Reference}
  • *
  • {@link MessageBinding}
  • *
*/ @@ -170,7 +172,7 @@ public class Message extends ExtendableObject { *

* MUST BE: *

    - *
  • {@link com.asyncapi.v2.Reference}
  • + *
  • {@link Reference}
  • *
  • {@link com.asyncapi.v2._6_0.model.channel.message.MessageTrait}
  • *
*/ diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/message/MessageExample.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/message/MessageExample.java index 9d461a0a..04a66349 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/message/MessageExample.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/message/MessageExample.java @@ -1,6 +1,6 @@ package com.asyncapi.v2._6_0.model.channel.message; -import com.asyncapi.v2.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/message/MessageTrait.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/message/MessageTrait.java index e4fba669..2cda480b 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/message/MessageTrait.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/message/MessageTrait.java @@ -1,12 +1,14 @@ package com.asyncapi.v2._6_0.model.channel.message; -import com.asyncapi.v2.ExtendableObject; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._6_0.jackson.model.channel.message.MessageCorrelationIdDeserializer; import com.asyncapi.v2._6_0.jackson.model.channel.message.MessageHeadersDeserializer; import com.asyncapi.v2._6_0.model.ExternalDocumentation; import com.asyncapi.v2._6_0.model.Tag; -import com.asyncapi.v2.binding.message.MessageBinding; -import com.asyncapi.v2.jackson.binding.message.MessageBindingsDeserializer; +import com.asyncapi.bindings.MessageBinding; +import com.asyncapi.bindings.MessageBindingsDeserializer; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.AllArgsConstructor; import lombok.Builder; @@ -54,8 +56,8 @@ public class MessageTrait extends ExtendableObject { *

* MUST BE: *

    - *
  • {@link com.asyncapi.v2.schema.Schema}
  • - *
  • {@link com.asyncapi.v2.Reference}
  • + *
  • {@link AsyncAPISchema}
  • + *
  • {@link Reference}
  • *
*/ @Nullable @@ -68,7 +70,7 @@ public class MessageTrait extends ExtendableObject { * MUST BE: *
    *
  • {@link com.asyncapi.v2._6_0.model.channel.message.CorrelationId}
  • - *
  • {@link com.asyncapi.v2.Reference}
  • + *
  • {@link Reference}
  • *
*/ @Nullable @@ -77,7 +79,7 @@ public class MessageTrait extends ExtendableObject { /** * A string containing the name of the schema format used to define the message payload. - * If omitted, implementations should parse the payload as a {@link com.asyncapi.v2.schema.Schema} object. When the payload is defined using a + * If omitted, implementations should parse the payload as a {@link AsyncAPISchema} object. When the payload is defined using a * $ref to a remote file, it is RECOMMENDED the schema format includes the file encoding type to allow implementations * to parse the file correctly. E.g., adding +yaml if content type is application/vnd.apache.avro results in * application/vnd.apache.avro+yaml. @@ -139,7 +141,7 @@ public class MessageTrait extends ExtendableObject { *

* MUST BE: *

    - *
  • {@link com.asyncapi.v2.Reference}
  • + *
  • {@link Reference}
  • *
  • {@link MessageBinding}
  • *
*/ diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/message/OneOfMessages.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/message/OneOfMessages.java index 4261338f..8a7eb3cc 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/message/OneOfMessages.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/message/OneOfMessages.java @@ -1,5 +1,6 @@ package com.asyncapi.v2._6_0.model.channel.message; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._6_0.jackson.model.channel.message.MessagesDeserializer; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.AllArgsConstructor; @@ -26,7 +27,7 @@ public class OneOfMessages { * Given message MUST be one of provided messages. * *
    - *
  • {@link com.asyncapi.v2.Reference}
  • + *
  • {@link Reference}
  • *
  • {@link com.asyncapi.v2._6_0.model.channel.message.Message}
  • *
*/ diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/operation/Operation.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/operation/Operation.java index 0a94bdb7..d9d891c2 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/operation/Operation.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/operation/Operation.java @@ -1,12 +1,13 @@ package com.asyncapi.v2._6_0.model.channel.operation; -import com.asyncapi.v2.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._6_0.jackson.model.channel.operation.OperationMessageDeserializer; import com.asyncapi.v2._6_0.jackson.model.channel.operation.OperationTraitsDeserializer; import com.asyncapi.v2._6_0.model.ExternalDocumentation; import com.asyncapi.v2._6_0.model.Tag; -import com.asyncapi.v2.binding.operation.OperationBinding; -import com.asyncapi.v2.jackson.binding.operation.OperationBindingsDeserializer; +import com.asyncapi.bindings.OperationBinding; +import com.asyncapi.bindings.OperationBindingsDeserializer; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.AllArgsConstructor; import lombok.Builder; @@ -87,7 +88,7 @@ public class Operation extends ExtendableObject { *

* MUST BE: *

    - *
  • {@link com.asyncapi.v2.Reference}
  • + *
  • {@link Reference}
  • *
  • {@link OperationBinding}
  • *
*/ @@ -101,7 +102,7 @@ public class Operation extends ExtendableObject { *

* MUST BE: *

    - *
  • {@link com.asyncapi.v2.Reference}
  • + *
  • {@link Reference}
  • *
  • {@link com.asyncapi.v2._6_0.model.channel.operation.OperationTrait}
  • *
*/ @@ -116,7 +117,7 @@ public class Operation extends ExtendableObject { *

* MUST BE: *

    - *
  • {@link com.asyncapi.v2.Reference}
  • + *
  • {@link Reference}
  • *
  • {@link com.asyncapi.v2._6_0.model.channel.message.Message}
  • *
  • {@link com.asyncapi.v2._6_0.model.channel.message.OneOfMessages}
  • *
diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/operation/OperationTrait.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/operation/OperationTrait.java index aee233b5..b231ac53 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/operation/OperationTrait.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/channel/operation/OperationTrait.java @@ -1,10 +1,11 @@ package com.asyncapi.v2._6_0.model.channel.operation; -import com.asyncapi.v2.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._6_0.model.ExternalDocumentation; import com.asyncapi.v2._6_0.model.Tag; -import com.asyncapi.v2.binding.operation.OperationBinding; -import com.asyncapi.v2.jackson.binding.operation.OperationBindingsDeserializer; +import com.asyncapi.bindings.OperationBinding; +import com.asyncapi.bindings.OperationBindingsDeserializer; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.AllArgsConstructor; import lombok.Builder; @@ -92,7 +93,7 @@ public class OperationTrait extends ExtendableObject { *

* MUST BE: *

    - *
  • {@link com.asyncapi.v2.Reference}
  • + *
  • {@link Reference}
  • *
  • {@link OperationBinding}
  • *
*/ diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/component/Components.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/component/Components.java index 99b5ec1a..d032f645 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/component/Components.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/component/Components.java @@ -1,6 +1,9 @@ package com.asyncapi.v2._6_0.model.component; -import com.asyncapi.v2.ExtendableObject; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.asyncapi.schemas.asyncapi.Reference; +import com.asyncapi.schemas.asyncapi.multiformat.MultiFormatSchema; import com.asyncapi.v2._6_0.jackson.model.component.ComponentsCorrelationIdsDeserializer; import com.asyncapi.v2._6_0.jackson.model.component.ComponentsMessageTraitsDeserializer; import com.asyncapi.v2._6_0.jackson.model.component.ComponentsMessagesDeserializer; @@ -11,15 +14,15 @@ import com.asyncapi.v2._6_0.jackson.model.component.ComponentsServerVariablesDeserializer; import com.asyncapi.v2._6_0.jackson.model.component.ComponentsServersDeserializer; import com.asyncapi.v2._6_0.model.channel.ChannelItem; -import com.asyncapi.v2.binding.channel.ChannelBinding; -import com.asyncapi.v2.binding.message.MessageBinding; -import com.asyncapi.v2.binding.operation.OperationBinding; -import com.asyncapi.v2.binding.server.ServerBinding; -import com.asyncapi.v2.jackson.binding.channel.ChannelBindingsDeserializer; -import com.asyncapi.v2.jackson.binding.message.MessageBindingsDeserializer; -import com.asyncapi.v2.jackson.binding.operation.OperationBindingsDeserializer; -import com.asyncapi.v2.jackson.binding.server.ServerBindingsDeserializer; -import com.asyncapi.v2.security_scheme.SecurityScheme; +import com.asyncapi.bindings.ChannelBinding; +import com.asyncapi.bindings.MessageBinding; +import com.asyncapi.bindings.OperationBinding; +import com.asyncapi.bindings.ServerBinding; +import com.asyncapi.bindings.ChannelBindingsDeserializer; +import com.asyncapi.bindings.MessageBindingsDeserializer; +import com.asyncapi.bindings.OperationBindingsDeserializer; +import com.asyncapi.bindings.ServerBindingsDeserializer; +import com.asyncapi.schemas.asyncapi.security.v2.SecurityScheme; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.AllArgsConstructor; import lombok.Builder; @@ -51,8 +54,9 @@ public class Components extends ExtendableObject { *

* MUST BE: *

    - *
  • {@link com.asyncapi.v2.schema.Schema}
  • - *
  • {@link com.asyncapi.v2.Reference}
  • + *
  • {@link AsyncAPISchema}
  • + *
  • {@link MultiFormatSchema}
  • + *
  • {@link Reference}
  • *
*/ @Nullable @@ -65,7 +69,7 @@ public class Components extends ExtendableObject { * MUST BE: *
    *
  • {@link com.asyncapi.v2._6_0.model.server.Server}
  • - *
  • {@link com.asyncapi.v2.Reference}
  • + *
  • {@link Reference}
  • *
*/ @Nullable @@ -78,7 +82,7 @@ public class Components extends ExtendableObject { * MUST BE: *
    *
  • {@link com.asyncapi.v2._6_0.model.server.ServerVariable}
  • - *
  • {@link com.asyncapi.v2.Reference}
  • + *
  • {@link Reference}
  • *
*/ @Nullable @@ -96,7 +100,7 @@ public class Components extends ExtendableObject { * MUST BE: *
    *
  • {@link com.asyncapi.v2._6_0.model.channel.message.Message}
  • - *
  • {@link com.asyncapi.v2.Reference}
  • + *
  • {@link Reference}
  • *
*/ @Nullable @@ -109,7 +113,7 @@ public class Components extends ExtendableObject { * MUST BE: *
    *
  • {@link SecurityScheme}
  • - *
  • {@link com.asyncapi.v2.Reference}
  • + *
  • {@link Reference}
  • *
*/ @Nullable @@ -121,7 +125,7 @@ public class Components extends ExtendableObject { *

* MUST BE: *

    - *
  • {@link com.asyncapi.v2.Reference}
  • + *
  • {@link Reference}
  • *
  • {@link com.asyncapi.v2._6_0.model.channel.Parameter}
  • *
*/ @@ -134,7 +138,7 @@ public class Components extends ExtendableObject { *

* MUST BE: *

    - *
  • {@link com.asyncapi.v2.Reference}
  • + *
  • {@link Reference}
  • *
  • {@link com.asyncapi.v2._6_0.model.channel.message.CorrelationId}
  • *
*/ @@ -147,7 +151,7 @@ public class Components extends ExtendableObject { *

* MUST BE: *

    - *
  • {@link com.asyncapi.v2.Reference}
  • + *
  • {@link Reference}
  • *
  • {@link com.asyncapi.v2._6_0.model.channel.operation.OperationTrait}
  • *
*/ @@ -160,7 +164,7 @@ public class Components extends ExtendableObject { *

* MUST BE: *

    - *
  • {@link com.asyncapi.v2.Reference}
  • + *
  • {@link Reference}
  • *
  • {@link com.asyncapi.v2._6_0.model.channel.message.MessageTrait}
  • *
*/ @@ -172,7 +176,7 @@ public class Components extends ExtendableObject { * An object to hold reusable {@link ServerBinding} Objects. * MUST BE: *
    - *
  • {@link com.asyncapi.v2.Reference}
  • + *
  • {@link Reference}
  • *
  • {@link ServerBinding}
  • *
*/ @@ -184,7 +188,7 @@ public class Components extends ExtendableObject { * An object to hold reusable {@link ChannelBinding} Objects. * MUST BE: *
    - *
  • {@link com.asyncapi.v2.Reference}
  • + *
  • {@link Reference}
  • *
  • {@link ChannelBinding}
  • *
*/ @@ -196,7 +200,7 @@ public class Components extends ExtendableObject { * An object to hold reusable {@link OperationBinding} Objects. * MUST BE: *
    - *
  • {@link com.asyncapi.v2.Reference}
  • + *
  • {@link Reference}
  • *
  • {@link OperationBinding}
  • *
*/ @@ -208,7 +212,7 @@ public class Components extends ExtendableObject { * An object to hold reusable {@link MessageBinding} Objects. * MUST BE: *
    - *
  • {@link com.asyncapi.v2.Reference}
  • + *
  • {@link Reference}
  • *
  • {@link MessageBinding}
  • *
*/ diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/info/Contact.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/info/Contact.java index 0967dc56..67805e12 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/info/Contact.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/info/Contact.java @@ -1,6 +1,6 @@ package com.asyncapi.v2._6_0.model.info; -import com.asyncapi.v2.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/info/Info.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/info/Info.java index 0d659fa6..c9d54c76 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/info/Info.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/info/Info.java @@ -1,6 +1,6 @@ package com.asyncapi.v2._6_0.model.info; -import com.asyncapi.v2.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/info/License.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/info/License.java index aa38568a..21c5cd63 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/info/License.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/info/License.java @@ -1,6 +1,6 @@ package com.asyncapi.v2._6_0.model.info; -import com.asyncapi.v2.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/server/Server.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/server/Server.java index 21e2ad1e..a29f727b 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/server/Server.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/server/Server.java @@ -1,10 +1,11 @@ package com.asyncapi.v2._6_0.model.server; -import com.asyncapi.v2.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v2._6_0.jackson.model.server.ServerVariablesDeserializer; import com.asyncapi.v2._6_0.model.Tag; -import com.asyncapi.v2.binding.server.ServerBinding; -import com.asyncapi.v2.jackson.binding.server.ServerBindingsDeserializer; +import com.asyncapi.bindings.ServerBinding; +import com.asyncapi.bindings.ServerBindingsDeserializer; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.AllArgsConstructor; import lombok.Builder; @@ -73,7 +74,7 @@ public class Server extends ExtendableObject { *

* MUST be one of: *

    - *
  • {@link com.asyncapi.v2.Reference}
  • + *
  • {@link Reference}
  • *
  • {@link com.asyncapi.v2._6_0.model.server.ServerVariable}
  • *
*/ @@ -107,7 +108,7 @@ public class Server extends ExtendableObject { *

* MUST be one of: *

    - *
  • {@link com.asyncapi.v2.Reference}
  • + *
  • {@link Reference}
  • *
  • {@link ServerBinding}
  • *
*/ diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/server/ServerVariable.java b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/server/ServerVariable.java index 368b7a0f..b63eb655 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/server/ServerVariable.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v2/_6_0/model/server/ServerVariable.java @@ -1,6 +1,6 @@ package com.asyncapi.v2._6_0.model.server; -import com.asyncapi.v2.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/ChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/ChannelBinding.java deleted file mode 100644 index 90d9c6fc..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/ChannelBinding.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.asyncapi.v2.binding.channel; - -import com.asyncapi.v2.ExtendableObject; -import lombok.EqualsAndHashCode; - -/** - * Describes AsyncAPI channel binding. - * - * @author Pavel Bodiachevskii - */ -@EqualsAndHashCode(callSuper = true) -public class ChannelBinding extends ExtendableObject { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/amqp/AMQPChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/amqp/AMQPChannelBinding.java deleted file mode 100644 index 616b92ba..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/amqp/AMQPChannelBinding.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.asyncapi.v2.binding.channel.amqp; - -import com.asyncapi.v2.binding.channel.ChannelBinding; -import com.asyncapi.v2.binding.channel.amqp.exchange.AMQPChannelExchangeProperties; -import com.asyncapi.v2.binding.channel.amqp.queue.AMQPChannelQueueProperties; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * Describes AMQP 0-9-1 channel binding. - *

- * Contains information about the channel representation in AMQP. - * - * @version 0.2.0 - * @see AMQP channel binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes AMQP 0-9-1 channel binding.") -public class AMQPChannelBinding extends ChannelBinding { - - /** - * Defines what type of channel is it. Can be either queue or routingKey (default). - */ - @NotNull - @Builder.Default - @javax.validation.constraints.NotNull - @JsonProperty(value = "is", required = true, defaultValue = "routingKey") - @JsonPropertyDescription("Defines what type of channel is it. Can be either queue or routingKey (default).") - private AMQPChannelType is = AMQPChannelType.ROUTING_KEY; - - /** - * When is=routingKey, this object defines the exchange properties. - */ - @Nullable - @JsonProperty("exchange") - @JsonPropertyDescription("When is=routingKey, this object defines the exchange properties.") - private AMQPChannelExchangeProperties exchange; - - /** - * When is=queue, this object defines the queue properties. - */ - @Nullable - @JsonProperty("queue") - @JsonPropertyDescription("When is=queue, this object defines the queue properties.") - private AMQPChannelQueueProperties queue; - - @Nullable - @Builder.Default - @JsonProperty(value = "bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private final String bindingVersion = "0.2.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/amqp/AMQPChannelType.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/amqp/AMQPChannelType.java deleted file mode 100644 index 82d13019..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/amqp/AMQPChannelType.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.asyncapi.v2.binding.channel.amqp; - -import com.fasterxml.jackson.annotation.JsonAlias; -import com.fasterxml.jackson.annotation.JsonProperty; - -/** - * Describes AMQP 0-9-1 channel type. - *

- * Contains information about the type of channel in AMQP. - * - * @version 0.2.0 - * @see AMQP channel binding - * @author Pavel Bodiachevskii - */ -public enum AMQPChannelType { - - @JsonProperty("queue") - QUEUE, - - @JsonProperty("routingKey") - @JsonAlias("routingKey") - ROUTING_KEY - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/amqp/exchange/AMQPChannelExchangeProperties.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/amqp/exchange/AMQPChannelExchangeProperties.java deleted file mode 100644 index 6b07844d..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/amqp/exchange/AMQPChannelExchangeProperties.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.asyncapi.v2.binding.channel.amqp.exchange; - -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -/** - * Describes AMQP 0-9-1 channel exchange properties. - *

- * Contains information about the channel exchange properties in AMQP. - * - * @version 0.2.0 - * @see AMQP channel binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode -@JsonClassDescription("Describes AMQP 0-9-1 channel exchange properties.") -public class AMQPChannelExchangeProperties { - - /** - * The name of the exchange. It MUST NOT exceed 255 characters long. - */ - @Nullable - @javax.validation.constraints.Size( - max = 255, - message = "Exchange name must not exceed 255 characters long." - ) - @JsonProperty("name") - @JsonPropertyDescription("The name of the exchange. It MUST NOT exceed 255 characters long.") - private String name; - - /** - * The type of the exchange. Can be either topic, direct, fanout, default or headers. - */ - @Nullable - @JsonProperty("type") - @JsonPropertyDescription("The type of the exchange. Can be either topic, direct, fanout, default or headers.") - private AMQPChannelExchangeType type; - - /** - * Whether the exchange should survive broker restarts or not. - */ - @Nullable - @JsonProperty("durable") - @JsonPropertyDescription("Whether the exchange should survive broker restarts or not.") - private Boolean durable; - - /** - * Whether the exchange should be deleted when the last queue is unbound from it. - */ - @Nullable - @JsonProperty("autoDelete") - @JsonPropertyDescription("Whether the exchange should be deleted when the last queue is unbound from it.") - private Boolean autoDelete; - - /** - * The virtual host of the exchange. Defaults to /. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "vhost", defaultValue = "/") - @JsonPropertyDescription("The virtual host of the exchange. Defaults to /.") - private String vhost = "/"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/amqp/exchange/AMQPChannelExchangeType.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/amqp/exchange/AMQPChannelExchangeType.java deleted file mode 100644 index 373cff20..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/amqp/exchange/AMQPChannelExchangeType.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.asyncapi.v2.binding.channel.amqp.exchange; - -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; - -/** - * Describes AMQP 0-9-1 channel exchange type. - *

- * Contains information about the channel exchange type in AMQP. - * - * @version 0.2.0 - * @see AMQP channel binding - * @author Pavel Bodiachevskii - */ -@JsonClassDescription("Describes AMQP 0-9-1 channel exchange type.") -public enum AMQPChannelExchangeType { - - @JsonProperty("topic") - TOPIC, - - @JsonProperty("direct") - DIRECT, - - @JsonProperty("fanout") - FANOUT, - - @JsonProperty("default") - DEFAULT, - - @JsonProperty("headers") - HEADERS - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/amqp/queue/AMQPChannelQueueProperties.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/amqp/queue/AMQPChannelQueueProperties.java deleted file mode 100644 index f3a1e09c..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/amqp/queue/AMQPChannelQueueProperties.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.asyncapi.v2.binding.channel.amqp.queue; - -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -/** - * Describes AMQP 0-9-1 channel queue properties. - *

- * Contains information about the queue exchange properties in AMQP. - * - * @version 0.2.0 - * @see AMQP channel binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode -@JsonClassDescription("Describes AMQP 0-9-1 channel queue properties.") -public class AMQPChannelQueueProperties { - - /** - * The name of the queue. It MUST NOT exceed 255 characters long. - */ - @Nullable - @javax.validation.constraints.Size( - max = 255, - message = "Queue name must not exceed 255 characters long." - ) - @JsonProperty("name") - @JsonPropertyDescription("The name of the queue. It MUST NOT exceed 255 characters long.") - private String name; - - /** - * Whether the queue should survive broker restarts or not. - */ - @Nullable - @JsonProperty("durable") - @JsonPropertyDescription("Whether the queue should survive broker restarts or not.") - private Boolean durable; - - /** - * Whether the queue should be used only by one connection or not. - */ - @Nullable - @JsonProperty("exclusive") - @JsonPropertyDescription("Whether the queue should be used only by one connection or not.") - private Boolean exclusive; - - /** - * Whether the queue should be deleted when the last consumer unsubscribes. - */ - @Nullable - @JsonProperty("autoDelete") - @JsonPropertyDescription("Whether the queue should be deleted when the last consumer unsubscribes.") - private Boolean autoDelete; - - /** - * The virtual host of the queue. Defaults to /. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "vhost", defaultValue = "/") - @JsonPropertyDescription("The virtual host of the queue. Defaults to /.") - private String vhost = "/"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/amqp1/AMQP1ChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/amqp1/AMQP1ChannelBinding.java deleted file mode 100644 index c214aa4a..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/amqp1/AMQP1ChannelBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.channel.amqp1; - -import com.asyncapi.v2.binding.channel.ChannelBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes AMQP 1.0 channel binding. - * - * @version 0.1.0 - * @see AMQP 1.0 channel binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class AMQP1ChannelBinding extends ChannelBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/anypointmq/AnypointMQChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/anypointmq/AnypointMQChannelBinding.java deleted file mode 100644 index 790ef4c0..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/anypointmq/AnypointMQChannelBinding.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.asyncapi.v2.binding.channel.anypointmq; - -import com.asyncapi.v2.binding.channel.ChannelBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -/** - * Describes Anypoint MQ channel binding. - * - * @version 0.0.1 - * @see Anypoint MQ channel binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes Anypoint MQ channel binding.") -public class AnypointMQChannelBinding extends ChannelBinding { - - /** - * OPTIONAL, defaults to the channel name. - *

- * 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. - */ - @Nullable - @JsonProperty("destination") - @JsonPropertyDescription("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.") - private String destination; - - /** - * OPTIONAL, defaults to queue. - *

- * The type of destination, which MUST be either exchange or queue or fifo-queue. - * SHOULD be specified to document the messaging model (publish/subscribe, point-to-point, strict message ordering) - * supported by this channel. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "destinationType", defaultValue = "queue") - @JsonPropertyDescription("The type of destination, which MUST be either exchange or queue or fifo-queue. SHOULD be specified to document the messaging model (publish/subscribe, point-to-point, strict message ordering) supported by this channel.") - private AnypointMQChannelDestinationType destinationType = AnypointMQChannelDestinationType.QUEUE; - - /** - * The version of this binding. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.0.1"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/anypointmq/AnypointMQChannelDestinationType.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/anypointmq/AnypointMQChannelDestinationType.java deleted file mode 100644 index 0571f156..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/anypointmq/AnypointMQChannelDestinationType.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v2.binding.channel.anypointmq; - -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; - -/** - * Describes Anypoint MQ channel destination type. - * - * @version 0.0.1 - * @see Anypoint MQ channel binding - * @author Pavel Bodiachevskii - */ -@JsonClassDescription("Describes Anypoint MQ channel destination type.") -public enum AnypointMQChannelDestinationType { - - @JsonProperty("exchange") - EXCHANGE, - - @JsonProperty("queue") - QUEUE, - - @JsonProperty("fifo-queue") - FIFO_QUEUE - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/googlepubsub/GooglePubSubChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/googlepubsub/GooglePubSubChannelBinding.java deleted file mode 100644 index 896a88b6..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/googlepubsub/GooglePubSubChannelBinding.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.asyncapi.v2.binding.channel.googlepubsub; - -import com.asyncapi.v2.binding.channel.ChannelBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Map; - -/** - * Describes Google Cloud Pub/Sub channel binding. - *

- * The Channel Bindings Object is used to describe the Google Cloud Pub/Sub specific Topic details with AsyncAPI. - * - * @version 0.1.0 - * @see Google Cloud Pub/Sub channel binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes Google Cloud Pub/Sub channel binding.") -public class GooglePubSubChannelBinding extends ChannelBinding { - - /** - * The Google Cloud Pub/Sub Topic name. - */ - @NotNull - @Builder.Default - @javax.validation.constraints.NotNull - @JsonProperty(value = "topic", required = true) - @JsonPropertyDescription("The Google Cloud Pub/Sub Topic name.") - private String topic = ""; - - /** - * An object of key-value pairs (These are used to categorize Cloud Resources like Cloud Pub/Sub Topics.) - */ - @Nullable - @JsonProperty("labels") - @JsonPropertyDescription("An object of key-value pairs (These are used to categorize Cloud Resources like Cloud Pub/Sub Topics.)") - private Map labels; - - /** - * Indicates the minimum duration to retain a message after it is published to the topic (Must be a valid Duration.) - */ - @Nullable - @JsonProperty("messageRetentionDuration") - @JsonPropertyDescription("Indicates the minimum duration to retain a message after it is published to the topic (Must be a valid https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Duration.)") - private String messageRetentionDuration; - - /** - * Policy constraining the set of Google Cloud Platform regions where messages published to the topic may be stored - */ - @Nullable - @JsonProperty("messageStoragePolicy") - @JsonPropertyDescription("Policy constraining the set of Google Cloud Platform regions where messages published to the topic may be stored") - private GooglePubSubChannelMessageStoragePolicy messageStoragePolicy; - - /** - * Settings for validating messages published against a schema - */ - @NotNull - @Builder.Default - @javax.validation.constraints.NotNull - @JsonProperty(value = "schemaSettings", required = true) - @JsonPropertyDescription("Settings for validating messages published against a schema") - private GooglePubSubChannelSchemaSettings schemaSettings = new GooglePubSubChannelSchemaSettings(); - - /** - * The version of this binding. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.1.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/googlepubsub/GooglePubSubChannelMessageStoragePolicy.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/googlepubsub/GooglePubSubChannelMessageStoragePolicy.java deleted file mode 100644 index 9e988335..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/googlepubsub/GooglePubSubChannelMessageStoragePolicy.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.asyncapi.v2.binding.channel.googlepubsub; - -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -/** - * Describes Google Cloud Pub/Sub MessageStoragePolicy. - *

- * The Message Storage Policy Object is used to describe the Google Cloud Pub/Sub MessageStoragePolicy Object with AsyncAPI. - * - * @version 0.1.0 - * @see Google Cloud Pub/Sub channel binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode -@JsonClassDescription("Describe the Google Cloud Pub/Sub MessageStoragePolicy") -public class GooglePubSubChannelMessageStoragePolicy { - - /** - * A list of IDs of GCP regions where messages that are published to the topic may be persisted in storage - */ - @Nullable - @JsonProperty("allowedPersistenceRegions") - @JsonPropertyDescription("A list of IDs of GCP regions where messages that are published to the topic may be persisted in storage") - private List allowedPersistenceRegions; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/googlepubsub/GooglePubSubChannelSchemaSettings.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/googlepubsub/GooglePubSubChannelSchemaSettings.java deleted file mode 100644 index 76e0fa79..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/googlepubsub/GooglePubSubChannelSchemaSettings.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.asyncapi.v2.binding.channel.googlepubsub; - -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * Describes Google Cloud Pub/Sub SchemaSettings. - *

- * The Schema Settings Object is used to describe the Google Cloud Pub/Sub SchemaSettings Object with AsyncAPI. - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode -@JsonClassDescription("Describe the Google Cloud Pub/Sub SchemaSettings") -public class GooglePubSubChannelSchemaSettings { - - /** - * The encoding of the message (Must be one of the possible Encoding values.) - */ - @NotNull - @Builder.Default - @javax.validation.constraints.NotNull - @JsonProperty(value = "encoding", required = true) - @JsonPropertyDescription("The encoding of the message (Must be one of the possible https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.topics#encoding values.)") - private String encoding = ""; - - /** - * The minimum (inclusive) revision allowed for validating messages - */ - @Nullable - @JsonProperty("firstRevisionId") - @JsonPropertyDescription("The minimum (inclusive) revision allowed for validating messages") - private String firstRevisionId; - - /** - * The maximum (inclusive) revision allowed for validating messages - */ - @Nullable - @JsonProperty("lastRevisionId") - @JsonPropertyDescription("The maximum (inclusive) revision allowed for validating messages") - private String lastRevisionId; - - /** - * The name of the schema that messages published should be validated against (The format is projects/{project}/schemas/{schema}.) - */ - @NotNull - @Builder.Default - @javax.validation.constraints.NotNull - @JsonProperty(value = "name", required = true) - @JsonPropertyDescription("The name of the schema that messages published should be validated against (The format is projects/{project}/schemas/{schema}.)") - private String name = ""; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/http/HTTPChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/http/HTTPChannelBinding.java deleted file mode 100644 index 11465c10..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/http/HTTPChannelBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.channel.http; - -import com.asyncapi.v2.binding.channel.ChannelBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes HTTP channel binding. - * - * @version 0.1.0 - * @see HTTP channel binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class HTTPChannelBinding extends ChannelBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/ibmmq/IBMMQChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/ibmmq/IBMMQChannelBinding.java deleted file mode 100644 index 47d14e4f..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/ibmmq/IBMMQChannelBinding.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.asyncapi.v2.binding.channel.ibmmq; - -import com.asyncapi.v2.binding.channel.ChannelBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -/** - * Describes IBM MQ channel binding. - *

- * This object contains information about the channel representation in IBM MQ. Each channel corresponds to a Queue or Topic within IBM MQ. - * - * @version 0.1.0 - * @see IBM MQ channel binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes IBM MQ channel binding.") -public class IBMMQChannelBinding extends ChannelBinding { - - /** - * Defines the type of AsyncAPI channel. - *

- * MUST be either topic or queue. For type topic, the AsyncAPI channel name MUST be assumed for the IBM MQ topic string unless overridden. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "destinationType", defaultValue = "topic") - @JsonPropertyDescription("Defines the type of AsyncAPI channel.") - private IBMMQChannelDestinationType destinationType = IBMMQChannelDestinationType.TOPIC; - - /** - * REQUIRED if destinationType = queue - *

- * queue and topic fields MUST NOT coexist within a channel binding - */ - @Nullable - @JsonProperty("queue") - @JsonPropertyDescription("Defines the properties of a queue.") - private IBMMQChannelQueueProperties queue; - - /** - * Defines the properties of a topic. - *

- * OPTIONAL if destinationType = topic - *

- * queue and topic fields MUST NOT coexist within a channel binding. - */ - @Nullable - @JsonProperty("topic") - @JsonPropertyDescription("Defines the properties of a topic.") - private IBMMQChannelTopicProperties topic; - - /** - * 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 in the IBM MQ Knowledge Center. - *

- * MUST be 0-104,857,600 bytes (100 MB). - */ - @Nullable - @javax.validation.constraints.Min( - value = 0, - message = "Maximum length of the physical message (in bytes) must be greater or equals to 0" - ) - @javax.validation.constraints.Max( - value = 104857600, - message = "Maximum length of the physical message (in bytes) must be lower or equals to 104857600" - ) - @JsonProperty("maxMsgLength") - @JsonPropertyDescription("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.") - private Integer maxMsgLength; - - /** - * The version of this binding. - */ - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.1.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/ibmmq/IBMMQChannelDestinationType.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/ibmmq/IBMMQChannelDestinationType.java deleted file mode 100644 index 7b0d7058..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/ibmmq/IBMMQChannelDestinationType.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.asyncapi.v2.binding.channel.ibmmq; - -import com.fasterxml.jackson.annotation.JsonProperty; - -/** - * Describes IBM MQ channel destination type. - * - * @version 0.1.0 - * @see IBM MQ channel binding - * @author Pavel Bodiachevskii - */ -public enum IBMMQChannelDestinationType { - - @JsonProperty("topic") - TOPIC, - - @JsonProperty("queue") - QUEUE - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/ibmmq/IBMMQChannelQueueProperties.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/ibmmq/IBMMQChannelQueueProperties.java deleted file mode 100644 index fa06b6a2..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/ibmmq/IBMMQChannelQueueProperties.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.asyncapi.v2.binding.channel.ibmmq; - -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * Describes IBM MQ channel queue properties. - * - * @version 0.1.0 - * @see IBM MQ channel binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode -@JsonClassDescription("Describes IBM MQ channel queue properties.") -public class IBMMQChannelQueueProperties { - - /** - * Defines the name of the IBM MQ queue associated with the channel. - *

- * A value MUST be specified. MUST NOT exceed 48 characters in length. MUST be a valid IBM MQ queue name - */ - @NotNull - @javax.validation.constraints.NotNull - @javax.validation.constraints.Size( - max = 48, - message = "Name of the IBM MQ queue must be less or equals to 48" - ) - @Builder.Default - @JsonProperty("objectName") - @JsonPropertyDescription("Defines the name of the IBM MQ queue associated with the channel.") - private String objectName = ""; - - /** - * 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. - *

- * If false, binding options SHOULD NOT be specified when accessing the queue. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "isPartitioned", defaultValue = "false") - @JsonPropertyDescription("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.") - private Boolean isPartitioned = false; - - /** - * Specifies if it is recommended to open the queue exclusively. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "exclusive", defaultValue = "false") - @JsonPropertyDescription("Specifies if it is recommended to open the queue exclusively.") - private Boolean exclusive = false; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/ibmmq/IBMMQChannelTopicProperties.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/ibmmq/IBMMQChannelTopicProperties.java deleted file mode 100644 index 7d3b54b4..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/ibmmq/IBMMQChannelTopicProperties.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.asyncapi.v2.binding.channel.ibmmq; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -/** - * Describes IBM MQ channel topic properties. - * - * @version 0.1.0 - * @see IBM MQ channel binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode -public class IBMMQChannelTopicProperties { - - /** - * The value of the IBM MQ topic string to be used. - *

- * OPTIONAL - * Note: if specified, SHALL override AsyncAPI channel name. - *

- * MUST NOT exceed 10240 characters in length. MAY coexist with topic.objectName - */ - @Nullable - @javax.validation.constraints.Max( - value = 10240, - message = "Maximum length of topic string must be lower or equals to 10240" - ) - @JsonProperty("string") - @JsonPropertyDescription("The value of the IBM MQ topic string to be used.") - private String string; - - /** - * The name of the IBM MQ topic object. - *

- * OPTIONAL - * Note: if specified, SHALL override AsyncAPI channel name. - *

- * MUST NOT exceed 48 characters in length. MAY coexist with topic.string - */ - @Nullable - @javax.validation.constraints.Max( - value = 48, - message = "Maximum length of topic name must be lower or equals to 48" - ) - @JsonProperty("objectName") - @JsonPropertyDescription("The name of the IBM MQ topic object.") - private String objectName; - - /** - * Defines if the subscription may be durable. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "durablePermitted", defaultValue = "true") - @JsonPropertyDescription("Defines if the subscription may be durable.") - private Boolean durablePermitted = true; - - /** - * Defines if the last message published will be made available to new subscriptions. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "lastMsgRetained", defaultValue = "false") - @JsonPropertyDescription("Defines if the last message published will be made available to new subscriptions.") - private Boolean lastMsgRetained = false; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/jms/JMSChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/jms/JMSChannelBinding.java deleted file mode 100644 index f1fa217f..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/jms/JMSChannelBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.channel.jms; - -import com.asyncapi.v2.binding.channel.ChannelBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes JMS channel binding. - * - * @version 0.1.0 - * @see JMS channel binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class JMSChannelBinding extends ChannelBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/kafka/KafkaChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/kafka/KafkaChannelBinding.java deleted file mode 100644 index 2408566b..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/kafka/KafkaChannelBinding.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.asyncapi.v2.binding.channel.kafka; - -import com.asyncapi.v2.binding.channel.ChannelBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -/** - * Describes Kafka channel binding. - * - * @version 0.4.0 - * @see Kafka channel binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes Kafka channel binding.") -public class KafkaChannelBinding extends ChannelBinding { - - /** - * Kafka topic name if different from channel name. - */ - @Nullable - @JsonProperty("topic") - @JsonPropertyDescription("Kafka topic name if different from channel name.") - private String topic; - - /** - * Number of partitions configured on this topic (useful to know how many parallel consumers you may run). - *

- * MUST be positive. - */ - @Nullable - @javax.validation.constraints.Min( - value = 1, - message = "Number of partitions must be greater or equals to 1" - ) - @JsonProperty("partitions") - @JsonPropertyDescription("Number of partitions configured on this topic (useful to know how many parallel consumers you may run).") - private Integer partitions; - - /** - * Number of replicas configured on this topic. - *

- * MUST be positive. - */ - @Nullable - @javax.validation.constraints.Min( - value = 1, - message = "Number of replicas must be greater or equals to 1" - ) - @JsonProperty("replicas") - @JsonPropertyDescription("Number of replicas configured on this topic.") - private Integer replicas; - - /** - * Topic configuration properties that are relevant for the API. - */ - @Nullable - @JsonProperty("topicConfiguration") - @JsonPropertyDescription("Topic configuration properties that are relevant for the API.") - private KafkaChannelTopicConfiguration topicConfiguration; - - /** - * The version of this binding. If omitted, "latest" MUST be assumed. - */ - @Nullable - @Builder.Default - private String bindingVersion = "0.4.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/kafka/KafkaChannelTopicCleanupPolicy.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/kafka/KafkaChannelTopicCleanupPolicy.java deleted file mode 100644 index 06fe5aa2..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/kafka/KafkaChannelTopicCleanupPolicy.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.asyncapi.v2.binding.channel.kafka; - -import com.fasterxml.jackson.annotation.JsonProperty; - -public enum KafkaChannelTopicCleanupPolicy { - - @JsonProperty("compact") - COMPACT, - - @JsonProperty("delete") - DELETE - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/kafka/KafkaChannelTopicConfiguration.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/kafka/KafkaChannelTopicConfiguration.java deleted file mode 100644 index 0e49c527..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/kafka/KafkaChannelTopicConfiguration.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.asyncapi.v2.binding.channel.kafka; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -/** - * This objects contains information about the API relevant topic configuration in Kafka. - * - * @version 0.4.0 - * @see Kafka channel binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class KafkaChannelTopicConfiguration { - - /** - * The cleanup.policy configuration option. - *

- * array may only contain delete and/or compact - */ - @Nullable - @JsonProperty("cleanup.policy") - private List cleanupPolicy; - - /** - * The retention.ms configuration option. - */ - @Nullable - @javax.validation.constraints.Min( - value = -1, - message = "retention.ms must be greater or equals to -1" - ) - @JsonProperty("retention.ms") - @JsonPropertyDescription("The [`retention.ms`](https://kafka.apache.org/documentation/#topicconfigs_retention.ms) configuration option.") - private Integer retentionMs; - - /** - * The retention.bytes configuration option. - */ - @Nullable - @javax.validation.constraints.Min( - value = -1, - message = "retention.bytes must be greater or equals to -1" - ) - @JsonProperty("retention.bytes") - @JsonPropertyDescription("The [`retention.bytes`](https://kafka.apache.org/documentation/#topicconfigs_retention.bytes) configuration option.") - private Integer retentionBytes; - - /** - * The delete.retention.ms configuration option. - */ - @Nullable - @javax.validation.constraints.Min( - value = 0, - message = "delete.retention.ms must be greater or equals to 0" - ) - @JsonProperty("delete.retention.ms") - @JsonPropertyDescription("The [`delete.retention.ms`](https://kafka.apache.org/documentation/#topicconfigs_delete.retention.ms) configuration option.") - private Integer deleteRetentionMs; - - /** - * The max.message.bytes configuration option. - */ - @Nullable - @javax.validation.constraints.Min( - value = 0, - message = "max.message.bytes must be greater or equals to 0" - ) - @JsonProperty("max.message.bytes") - @JsonPropertyDescription("The [`max.message.bytes`](https://kafka.apache.org/documentation/#topicconfigs_max.message.bytes) configuration option.") - private Integer maxMessageBytes; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/mercure/MercureChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/mercure/MercureChannelBinding.java deleted file mode 100644 index d0c3703e..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/mercure/MercureChannelBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.channel.mercure; - -import com.asyncapi.v2.binding.channel.ChannelBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes Mercure channel binding. - * - * @version 0.1.0 - * @see Mercure channel binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class MercureChannelBinding extends ChannelBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/mqtt/MQTTChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/mqtt/MQTTChannelBinding.java deleted file mode 100644 index ca180f07..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/mqtt/MQTTChannelBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.channel.mqtt; - -import com.asyncapi.v2.binding.channel.ChannelBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes MQTT channel binding. - * - * @version 0.1.0 - * @see MQTT channel binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class MQTTChannelBinding extends ChannelBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/mqtt5/MQTT5ChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/mqtt5/MQTT5ChannelBinding.java deleted file mode 100644 index 6b073eae..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/mqtt5/MQTT5ChannelBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.channel.mqtt5; - -import com.asyncapi.v2.binding.channel.ChannelBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes MQTT 5 channel binding. - * - * @version 0.2.0 - * @see MQTT 5 channel binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class MQTT5ChannelBinding extends ChannelBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/nats/NATSChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/nats/NATSChannelBinding.java deleted file mode 100644 index d8b53857..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/nats/NATSChannelBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.channel.nats; - -import com.asyncapi.v2.binding.channel.ChannelBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes NATS channel binding. - * - * @version 0.1.0 - * @see NATS channel binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class NATSChannelBinding extends ChannelBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/pulsar/PulsarChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/pulsar/PulsarChannelBinding.java deleted file mode 100644 index 8c2e314b..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/pulsar/PulsarChannelBinding.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.asyncapi.v2.binding.channel.pulsar; - -import com.asyncapi.v2.binding.channel.ChannelBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -/** - * Describes Pulsar channel binding. - * - * @version 0.1.0 - * @see Pulsar channel binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes Pulsar channel binding.") -public class PulsarChannelBinding extends ChannelBinding { - - /** - * The namespace the channel is associated with. - */ - @NotNull - @Builder.Default - @javax.validation.constraints.NotNull - @JsonProperty("namespace") - @JsonPropertyDescription("The namespace the channel is associated with.") - private String namespace = ""; - - /** - * Persistence of the topic in Pulsar. It MUST be either persistent or non-persistent. - */ - @NotNull - @Builder.Default - @javax.validation.constraints.NotNull - @JsonProperty(value = "persistence", defaultValue = "persistent") - @JsonPropertyDescription("Persistence of the topic in Pulsar. It MUST be either persistent or non-persistent.") - private PulsarChannelPersistence persistence = PulsarChannelPersistence.PERSISTENT; - - /** - * Topic compaction threshold given in Megabytes. - */ - @Nullable - @javax.validation.constraints.Min( - value = 0, - message = "Topic compaction threshold must be greater or equals to 0." - ) - @JsonProperty("compaction") - @JsonPropertyDescription("Topic compaction threshold given in Megabytes.") - private Integer compaction; - - /** - * A list of clusters the topic is replicated to. - */ - @Nullable - @JsonProperty("geo-replication") - @JsonPropertyDescription("A list of clusters the topic is replicated to.") - private List geoReplication; - - /** - * Topic retention policy. - */ - @Nullable - @JsonProperty("retention") - @JsonPropertyDescription("Topic retention policy.") - private PulsarChannelRetentionDefinition retention; - - /** - * Message time-to-live in seconds. - */ - @Nullable - @JsonProperty("ttl") - @JsonPropertyDescription("Message time-to-live in seconds.") - private Integer ttl; - - /** - * Message deduplication. When true, it ensures that each message produced on Pulsar topics is persisted to disk only once. - */ - @Nullable - @JsonProperty("deduplication") - @JsonPropertyDescription("Message deduplication. When true, it ensures that each message produced on Pulsar topics is persisted to disk only once.") - private Boolean deduplication; - - /** - * The version of this binding. If omitted, "latest" MUST be assumed. - */ - @Nullable - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.1.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/pulsar/PulsarChannelPersistence.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/pulsar/PulsarChannelPersistence.java deleted file mode 100644 index 14cf634d..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/pulsar/PulsarChannelPersistence.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.asyncapi.v2.binding.channel.pulsar; - -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; - -/** - * Describes Pulsar channel persistence. - * - * @version 0.1.0 - * @see Pulsar channel binding - * @author Pavel Bodiachevskii - */ -@JsonClassDescription("Describes Pulsar channel persistence.") -public enum PulsarChannelPersistence { - - @JsonProperty("persistent") - PERSISTENT, - - @JsonProperty("non-persistent") - NON_PERSISTENT - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/pulsar/PulsarChannelRetentionDefinition.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/pulsar/PulsarChannelRetentionDefinition.java deleted file mode 100644 index 9a23fd29..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/pulsar/PulsarChannelRetentionDefinition.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.asyncapi.v2.binding.channel.pulsar; - -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -/** - * Describes Pulsar channel retention definition. - *

- * The Retention Definition Object is used to describe the Pulsar Retention policy. - * - * @version 0.1.0 - * @see Pulsar channel binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode -@JsonClassDescription("Describes Pulsar channel retention definition.") -public class PulsarChannelRetentionDefinition { - - /** - * Time given in Minutes. - */ - @Nullable - @Builder.Default - @JsonProperty("time") - @JsonPropertyDescription("Time given in Minutes.") - private Integer time = 0; - - /** - * Size given in MegaBytes. - */ - @Nullable - @Builder.Default - @JsonProperty("size") - @JsonPropertyDescription("Size given in MegaBytes.") - private Integer size = 0; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/redis/RedisChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/redis/RedisChannelBinding.java deleted file mode 100644 index 4edb073e..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/redis/RedisChannelBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.channel.redis; - -import com.asyncapi.v2.binding.channel.ChannelBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes Redis channel binding. - * - * @version 0.1.0 - * @see Redis channel binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class RedisChannelBinding extends ChannelBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/sns/SNSChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/sns/SNSChannelBinding.java deleted file mode 100644 index 101d3629..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/sns/SNSChannelBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.channel.sns; - -import com.asyncapi.v2.binding.channel.ChannelBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes SNS channel binding. - * - * @version 0.1.0 - * @see SNS channel binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class SNSChannelBinding extends ChannelBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/solace/SolaceChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/solace/SolaceChannelBinding.java deleted file mode 100644 index 58ff56e2..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/solace/SolaceChannelBinding.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.asyncapi.v2.binding.channel.solace; - -import com.asyncapi.v2.binding.channel.ChannelBinding; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes Solace channel binding. - * - * @version 0.3.0 - * @see Solace channel binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class SolaceChannelBinding extends ChannelBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/sqs/SQSChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/sqs/SQSChannelBinding.java deleted file mode 100644 index 8a23ba1c..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/sqs/SQSChannelBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.channel.sqs; - -import com.asyncapi.v2.binding.channel.ChannelBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes SQS channel binding. - * - * @version 0.1.0 - * @see SQS channel binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class SQSChannelBinding extends ChannelBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/stomp/STOMPChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/stomp/STOMPChannelBinding.java deleted file mode 100644 index df9b5f31..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/stomp/STOMPChannelBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.channel.stomp; - -import com.asyncapi.v2.binding.channel.ChannelBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes STOMP channel binding. - * - * @version 0.1.0 - * @see STOMP channel binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class STOMPChannelBinding extends ChannelBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/ws/WebSocketsChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/ws/WebSocketsChannelBinding.java deleted file mode 100644 index 4d8c66d7..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/ws/WebSocketsChannelBinding.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.asyncapi.v2.binding.channel.ws; - -import com.asyncapi.v2.binding.channel.ChannelBinding; -import com.asyncapi.v2.schema.Schema; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -/** - * Describes WebSockets channel binding. - *

- * 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. - * - * @version 0.1.0 - * @see WebSockets channel binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes WebSockets channel binding.") -public class WebSocketsChannelBinding extends ChannelBinding { - - /** - * The HTTP method to use when establishing the connection. Its value MUST be either GET or POST. - */ - @Nullable - @JsonProperty("method") - @JsonPropertyDescription("The HTTP method to use when establishing the connection. Its value MUST be either GET or POST.") - private WebSocketsChannelMethod method; - - /** - * A Schema object containing the definitions for each query parameter. This schema MUST be of type - * object and have a properties key. - */ - @Nullable - @JsonProperty("query") - @JsonPropertyDescription("A Schema object containing the definitions for each query parameter. This schema MUST be of type object and have a properties key.") - private Schema query; - - /** - * 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. - */ - @Nullable - @JsonProperty("headers") - @JsonPropertyDescription("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.") - private Schema headers; - - /** - * The version of this binding. If omitted, "latest" MUST be assumed. - */ - @Nullable - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.1.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/ws/WebSocketsChannelMethod.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/ws/WebSocketsChannelMethod.java deleted file mode 100644 index cdee8595..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/channel/ws/WebSocketsChannelMethod.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.asyncapi.v2.binding.channel.ws; - -import com.fasterxml.jackson.annotation.JsonProperty; - -public enum WebSocketsChannelMethod { - - @JsonProperty("GET") - GET, - - @JsonProperty("POST") - POST - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/MessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/MessageBinding.java deleted file mode 100644 index ebe7e2ed..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/MessageBinding.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.asyncapi.v2.binding.message; - -import com.asyncapi.v2.ExtendableObject; -import lombok.EqualsAndHashCode; - -/** - * Describes AsyncAPI message binding. - * - * @author Pavel Bodiachevskii - */ -@EqualsAndHashCode(callSuper = true) -public class MessageBinding extends ExtendableObject { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/amqp/AMQPMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/amqp/AMQPMessageBinding.java deleted file mode 100644 index d2281e2b..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/amqp/AMQPMessageBinding.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.asyncapi.v2.binding.message.amqp; - -import com.asyncapi.v2.binding.message.MessageBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -/** - * Describes AMQP 0-9-1 message binding. - *

- * Contains information about the message representation in AMQP. - * - * @version 0.2.0 - * @see AMQP message binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes AMQP 0-9-1 message binding.") -public class AMQPMessageBinding extends MessageBinding { - - /** - * A MIME encoding for the message content. - */ - @Nullable - @JsonProperty("contentEncoding") - @JsonPropertyDescription("A MIME encoding for the message content.") - private String contentEncoding; - - /** - * Application-specific message type. - */ - @Nullable - @JsonProperty("messageType") - @JsonPropertyDescription("Application-specific message type.") - private String messageType; - - /** - * The version of this binding. If omitted, "latest" MUST be assumed. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.2.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/amqp1/AMQP1MessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/amqp1/AMQP1MessageBinding.java deleted file mode 100644 index 5ef4bbaa..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/amqp1/AMQP1MessageBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.message.amqp1; - -import com.asyncapi.v2.binding.message.MessageBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes AMQP 1.0 message binding. - * - * @version 0.1.0 - * @see AMQP message binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class AMQP1MessageBinding extends MessageBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/anypointmq/AnypointMQMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/anypointmq/AnypointMQMessageBinding.java deleted file mode 100644 index d424ee88..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/anypointmq/AnypointMQMessageBinding.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.asyncapi.v2.binding.message.anypointmq; - -import com.asyncapi.v2.binding.message.MessageBinding; -import com.asyncapi.v2.schema.Schema; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -/** - * Describes Anypoint MQ message binding. - * - * @version 0.0.1 - * @see Anypoint MQ message binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes Anypoint MQ message binding.") -public class AnypointMQMessageBinding extends MessageBinding { - - /** - * A Schema object containing the definitions for Anypoint MQ-specific headers (so-called protocol headers). - * This schema MUST be of type object and have a properties key. Examples of Anypoint MQ protocol headers are - * messageId and messageGroupId. - */ - @Nullable - @JsonProperty("headers") - @JsonPropertyDescription("A Schema object containing the definitions for Anypoint MQ-specific headers (so-called protocol headers). This schema MUST be of type object and have a properties key. Examples of Anypoint MQ protocol headers are messageId and messageGroupId.") - private Schema headers; - - /** - * The version of this binding. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.0.1"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/googlepubsub/GooglePubSubMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/googlepubsub/GooglePubSubMessageBinding.java deleted file mode 100644 index 3f1771cc..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/googlepubsub/GooglePubSubMessageBinding.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.asyncapi.v2.binding.message.googlepubsub; - -import com.asyncapi.v2.binding.message.MessageBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -/** - * Describes Google Cloud Pub/Sub message binding. - *

- * The Message Binding Object is used to describe the Google Cloud Pub/Sub specific PubsubMessage details, alongside with - * pertintent parts of the Google Cloud Pub/Sub Schema Object, with AsyncAPI. - * - * @version 0.1.0 - * @see Google Cloud Pub/Sub message binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes Google Cloud Pub/Sub message binding.") -public class GooglePubSubMessageBinding extends MessageBinding { - - /** - * If non-empty, identifies related messages for which publish order should be respected (For more information, see ordering messages.) - */ - @Nullable - @JsonProperty("orderingKey") - @JsonPropertyDescription("If non-empty, identifies related messages for which publish order should be respected (For more information, see https://cloud.google.com/pubsub/docs/ordering messages") - private String orderingKey; - - /** - * Attributes for this message (If this field is empty, the message must contain non-empty data. This can be used to - * filter messages on the subscription.) - */ - @Nullable - @JsonProperty("attributes") - @JsonPropertyDescription("Attributes for this message (If this field is empty, the message must contain non-empty data. This can be used to filter messages on the subscription.)") - private Object attributes; - - /** - * Describes the schema used to validate the payload of this message - */ - @Nullable - @JsonProperty("schema") - @JsonPropertyDescription("Describes the schema used to validate the payload of this message") - private GooglePubSubMessageSchemaDefinition schema; - - /** - * The version of this binding. - */ - @Nullable - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.1.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/googlepubsub/GooglePubSubMessageSchemaDefinition.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/googlepubsub/GooglePubSubMessageSchemaDefinition.java deleted file mode 100644 index 2f70c8ac..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/googlepubsub/GooglePubSubMessageSchemaDefinition.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.asyncapi.v2.binding.message.googlepubsub; - -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.NotNull; - -/** - * Describes Google Cloud Pub/Sub message schema definition. - *

- * The Schema Definition Object is used to describe the Google Cloud Pub/Sub Schema Object with AsyncAPI. - * While some of this information could be, or is, described using native AsyncAPI, for consistency it makes sense to - * provide this information here at all times, especially for cases where AsyncAPI does not natively support describing - * payloads using a supported Google Cloud Pub/Sub schema format like Protobuf. - * - * @version 0.1.0 - * @see Google Cloud Pub/Sub message binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode -@JsonClassDescription("Describes Google Cloud Pub/Sub message schema definition.") -public class GooglePubSubMessageSchemaDefinition { - - /** - * The name of the schema - */ - @NotNull - @Builder.Default - @javax.validation.constraints.NotNull - @JsonProperty(value = "name", required = true) - @JsonPropertyDescription("The name of the schema") - private String name = ""; - - /** - * The type of the schema - */ - @NotNull - @Builder.Default - @javax.validation.constraints.NotNull - @JsonProperty(value = "type", required = true) - @JsonPropertyDescription("The type of the schema") - private GooglePubSubMessageSchemaDefinitionType type = GooglePubSubMessageSchemaDefinitionType.PROTOBUF; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/googlepubsub/GooglePubSubMessageSchemaDefinitionType.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/googlepubsub/GooglePubSubMessageSchemaDefinitionType.java deleted file mode 100644 index 305b8d51..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/googlepubsub/GooglePubSubMessageSchemaDefinitionType.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.asyncapi.v2.binding.message.googlepubsub; - -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; - -/** - * Describes Google Cloud Pub/Sub message schema definition type. - * - * @version 0.1.0 - * @see Google Cloud Pub/Sub message binding - * @see Types of schemas - * @author Pavel Bodiachevskii - */ -@JsonClassDescription("Describes Google Cloud Pub/Sub message schema definition type.") -public enum GooglePubSubMessageSchemaDefinitionType { - - @JsonProperty("avro") - AVRO, - - @JsonProperty("protobuf") - PROTOBUF - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/http/HTTPMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/http/HTTPMessageBinding.java deleted file mode 100644 index 863d2546..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/http/HTTPMessageBinding.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.asyncapi.v2.binding.message.http; - -import com.asyncapi.v2.binding.message.MessageBinding; -import com.asyncapi.v2.schema.Schema; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -/** - * Describes HTTP message binding. - *

- * Contains information about the message representation in HTTP. - * - * @version 0.1.0 - * @see HTTP message binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class HTTPMessageBinding extends MessageBinding { - - /** - * A Schema object containing the definitions for each query parameter. This schema MUST be of type object - * and have a properties key.* - */ - @Nullable - @JsonProperty("headers") - @JsonPropertyDescription("A Schema object containing the definitions for each query parameter. This schema MUST be of type object and have a properties key.") - private Schema headers; - - /** - * The version of this binding. - */ - @Nullable - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.1.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/ibmmq/IBMMQMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/ibmmq/IBMMQMessageBinding.java deleted file mode 100644 index 1b233d53..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/ibmmq/IBMMQMessageBinding.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.asyncapi.v2.binding.message.ibmmq; - -import com.asyncapi.v2.binding.message.MessageBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -/** - * Describes IBM MQ message binding. - *

- * This object contains information about the message representation in IBM MQ. - * - * @version 0.1.0 - * @see IBM MQ message binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes IBM MQ message binding.") -public class IBMMQMessageBinding extends MessageBinding { - - /** - * The type of the message. - *

- * MUST be either string, jms or binary - */ - @Nullable - @Builder.Default - @JsonProperty(value = "type", defaultValue = "string") - @JsonPropertyDescription("The type of the message.") - private IBMMQMessageType type = IBMMQMessageType.STRING; - - /** - * 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 in the IBM MQ Knowledge Center. - *

- * OPTIONAL if type = binary - *

- * headers MUST NOT be specified if type = string or jms - */ - @Nullable - @JsonProperty("headers") - @JsonPropertyDescription("Defines the IBM MQ message headers to include with this message. More than one header can be specified as a comma separated list.") - private String headers; - - /** - * Provides additional information for application developers: describes the message type or format. - *

- * The description field of the IBM MQ message binding object MAY include CommonMark markdown formatting. - * A minimum markdown syntax as described by CommonMark 0.27 is assumed. - */ - @Nullable - @JsonProperty("description") - @JsonPropertyDescription("Provides additional information for application developers: describes the message type or format.") - private String 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 in the IBM MQ Knowledge Center. - *

- * expiry value MUST be either zero (unlimited) or greater than zero. - */ - @Nullable - @Builder.Default - @javax.validation.constraints.Min( - value = 0, - message = "Expiry must be greater or equals to 0" - ) - @JsonProperty(value = "expiry", defaultValue = "0") - @JsonPropertyDescription("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.") - private Integer expiry = 0; - - /** - * The version of this binding. - */ - @Nullable - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.1.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/ibmmq/IBMMQMessageType.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/ibmmq/IBMMQMessageType.java deleted file mode 100644 index 02a24a33..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/ibmmq/IBMMQMessageType.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v2.binding.message.ibmmq; - -import com.fasterxml.jackson.annotation.JsonProperty; - -/** - * Describes IBM MQ message type. - *

- * This object contains information about the message type in IBM MQ. - * - * @version 0.1.0 - * @see IBM MQ message binding - * @author Pavel Bodiachevskii - */ -public enum IBMMQMessageType { - - @JsonProperty("string") - STRING, - - @JsonProperty("jms") - JMS, - - @JsonProperty("binary") - BINARY - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/jms/JMSMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/jms/JMSMessageBinding.java deleted file mode 100644 index 46d271ad..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/jms/JMSMessageBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.message.jms; - -import com.asyncapi.v2.binding.message.MessageBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes JMS message binding. - * - * @version 0.1.0 - * @see JMS message binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class JMSMessageBinding extends MessageBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/kafka/KafkaMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/kafka/KafkaMessageBinding.java deleted file mode 100644 index e7728c9d..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/kafka/KafkaMessageBinding.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.asyncapi.v2.binding.message.kafka; - -import com.asyncapi.v2.binding.message.MessageBinding; -import com.asyncapi.v2.schema.Schema; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -/** - * Describes Kafka message binding. - *

- * Contains information about the message representation in Kafka. - * - * @version 0.1.0 - * @see Kafka message binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class KafkaMessageBinding extends MessageBinding { - - /** - * The message key. - */ - @Nullable - @JsonProperty("key") - @JsonPropertyDescription("The message key.") - private Schema key; - - /** - * If a Schema Registry is used when performing this operation, tells where the id of schema is stored (e.g. header or payload). - */ - @Nullable - @JsonProperty("schemaIdLocation") - @JsonPropertyDescription("If a Schema Registry is used when performing this operation, tells where the id of schema is stored (e.g. header or payload).") - private KafkaMessageSchemaIdLocation schemaIdLocation; - - /** - * Number of bytes or vendor specific values when schema id is encoded in payload (e.g confluent/ apicurio-legacy / apicurio-new). - */ - @Nullable - @JsonProperty("schemaIdPayloadEncoding") - @JsonPropertyDescription("Number of bytes or vendor specific values when schema id is encoded in payload (e.g confluent/ apicurio-legacy / apicurio-new).") - private String schemaIdPayloadEncoding; - - /** - * Freeform string for any naming strategy class to use. Clients should default to the vendor default if not supplied. - */ - @Nullable - @JsonProperty("schemaLookupStrategy") - @JsonPropertyDescription("Freeform string for any naming strategy class to use. Clients should default to the vendor default if not supplied.") - private String schemaLookupStrategy; - - /** - * The version of this binding. If omitted, "latest" MUST be assumed. - */ - @Nullable - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.4.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/kafka/KafkaMessageSchemaIdLocation.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/kafka/KafkaMessageSchemaIdLocation.java deleted file mode 100644 index a413bf46..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/kafka/KafkaMessageSchemaIdLocation.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.asyncapi.v2.binding.message.kafka; - -import com.fasterxml.jackson.annotation.JsonProperty; - -/** - * Describes Kafka message schema id location. - * - * @version 0.1.0 - * @see Kafka message binding - * @author Pavel Bodiachevskii - */ -public enum KafkaMessageSchemaIdLocation { - - @JsonProperty("header") - HEADER, - - @JsonProperty("payload") - PAYLOAD - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/mercure/MercureMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/mercure/MercureMessageBinding.java deleted file mode 100644 index 0bbe57b1..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/mercure/MercureMessageBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.message.mercure; - -import com.asyncapi.v2.binding.message.MessageBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes Mercure message binding. - * - * @version 0.1.0 - * @see Mercure message binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class MercureMessageBinding extends MessageBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/mqtt/MQTTMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/mqtt/MQTTMessageBinding.java deleted file mode 100644 index c08ece8f..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/mqtt/MQTTMessageBinding.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.asyncapi.v2.binding.message.mqtt; - -import com.asyncapi.v2.binding.message.MessageBinding; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -/** - * Describes MQTT message binding. - *

- * Contains information about the message representation in MQTT. - * - * @version 0.1.0 - * @see MQTT message binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class MQTTMessageBinding extends MessageBinding { - - /** - * The version of this binding. If omitted, "latest" MUST be assumed. - */ - @Nullable - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.1.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/mqtt5/MQTT5MessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/mqtt5/MQTT5MessageBinding.java deleted file mode 100644 index 9b850e40..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/mqtt5/MQTT5MessageBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.message.mqtt5; - -import com.asyncapi.v2.binding.message.MessageBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes MQTT 5 message binding. - * - * @version 0.2.0 - * @see MQTT 5 message binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class MQTT5MessageBinding extends MessageBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/nats/NATSMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/nats/NATSMessageBinding.java deleted file mode 100644 index d1d75520..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/nats/NATSMessageBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.message.nats; - -import com.asyncapi.v2.binding.message.MessageBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes NATS message binding. - * - * @version 0.1.0 - * @see NATS message binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class NATSMessageBinding extends MessageBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/pulsar/PulsarMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/pulsar/PulsarMessageBinding.java deleted file mode 100644 index 909994a2..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/pulsar/PulsarMessageBinding.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.asyncapi.v2.binding.message.pulsar; - -import com.asyncapi.v2.binding.message.MessageBinding; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * Describes Pulsar message binding. - *

- * This object MUST NOT contain any properties. Its name is reserved for future use. - * - * @version 0.1.0 - * @see Pulsar message binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class PulsarMessageBinding extends MessageBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/redis/RedisMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/redis/RedisMessageBinding.java deleted file mode 100644 index 8218be2d..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/redis/RedisMessageBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.message.redis; - -import com.asyncapi.v2.binding.message.MessageBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes Redis message binding. - * - * @version 0.1.0 - * @see Redis message binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class RedisMessageBinding extends MessageBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/sns/SNSMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/sns/SNSMessageBinding.java deleted file mode 100644 index d20c2d12..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/sns/SNSMessageBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.message.sns; - -import com.asyncapi.v2.binding.message.MessageBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes SNS message binding. - * - * @version 0.1.0 - * @see SNS message binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class SNSMessageBinding extends MessageBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/solace/SolaceMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/solace/SolaceMessageBinding.java deleted file mode 100644 index 3da3d1d5..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/solace/SolaceMessageBinding.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.asyncapi.v2.binding.message.solace; - -import com.asyncapi.v2.binding.message.MessageBinding; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes Solace message binding. - * - * @version 0.3.0 - * @see Solace message binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class SolaceMessageBinding extends MessageBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/sqs/SQSMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/sqs/SQSMessageBinding.java deleted file mode 100644 index 5ed5ea51..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/sqs/SQSMessageBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.message.sqs; - -import com.asyncapi.v2.binding.message.MessageBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes SQS message binding. - * - * @version 0.1.0 - * @see SQS message binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class SQSMessageBinding extends MessageBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/stomp/STOMPMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/stomp/STOMPMessageBinding.java deleted file mode 100644 index e6428f0d..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/stomp/STOMPMessageBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.message.stomp; - -import com.asyncapi.v2.binding.message.MessageBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes STOMP message binding. - * - * @version 0.1.0 - * @see STOMP message binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class STOMPMessageBinding extends MessageBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/ws/WebSocketsMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/ws/WebSocketsMessageBinding.java deleted file mode 100644 index 61582b36..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/message/ws/WebSocketsMessageBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.message.ws; - -import com.asyncapi.v2.binding.message.MessageBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes WebSockets message binding. - * - * @version 0.1.0 - * @see WebSockets message binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class WebSocketsMessageBinding extends MessageBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/OperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/OperationBinding.java deleted file mode 100644 index 7b167eec..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/OperationBinding.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.asyncapi.v2.binding.operation; - -import com.asyncapi.v2.ExtendableObject; -import lombok.EqualsAndHashCode; - -/** - * Describes AsyncAPI operation binding. - * - * @author Pavel Bodiachevskii - */ -@EqualsAndHashCode(callSuper = true) -public class OperationBinding extends ExtendableObject { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/amqp/AMQPOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/amqp/AMQPOperationBinding.java deleted file mode 100644 index 034337ae..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/amqp/AMQPOperationBinding.java +++ /dev/null @@ -1,154 +0,0 @@ -package com.asyncapi.v2.binding.operation.amqp; - -import com.asyncapi.v2.binding.operation.OperationBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -/** - * Describes AMQP 0-9-1 operation binding. - *

- * Contains information about the operation representation in AMQP. - * - * @version 0.2.0 - * @see AMQP operation binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes AMQP 0-9-1 operation binding.") -public class AMQPOperationBinding extends OperationBinding { - - /** - * TTL (Time-To-Live) for the message. It MUST be greater than or equal to zero. - *

- * Applies to: publish, subscribe - */ - @Nullable - @javax.validation.constraints.Min( - value = 0, - message = "TTL (Time-To-Live) for the message must be greater than or equal to zero" - ) - @JsonProperty("expiration") - @JsonPropertyDescription("TTL (Time-To-Live) for the message. It MUST be greater than or equal to zero.") - private Integer expiration; - - /** - * Identifies the user who has sent the message. - *

- * Applies to: publish, subscribe - */ - @Nullable - @JsonProperty("userId") - @JsonPropertyDescription("Identifies the user who has sent the message.") - private String userId; - - /** - * The routing keys the message should be routed to at the time of publishing. - *

- * Applies to: publish, subscribe - */ - @Nullable - @JsonProperty("cc") - @JsonPropertyDescription("The routing keys the message should be routed to at the time of publishing.") - private List cc; - - /** - * A priority for the message. - *

- * Applies to: publish, subscribe - */ - @Nullable - @JsonProperty("priority") - @JsonPropertyDescription("A priority for the message.") - private Integer priority; - - /** - * Delivery mode of the message. Its value MUST be either 1 (transient) or 2 (persistent). - *

- * Applies to: publish, subscribe - */ - @Nullable - @javax.validation.constraints.Min( - value = 1, - message = "Delivery mode of the message must be either 1 (transient) or 2 (persistent)" - ) - @javax.validation.constraints.Max( - value = 2, - message = "Delivery mode of the message must be either 1 (transient) or 2 (persistent)" - ) - @JsonProperty("deliveryMode") - @JsonPropertyDescription("Delivery mode of the message. Its value MUST be either 1 (transient) or 2 (persistent).") - private Integer deliveryMode; - - /** - * Whether the message is mandatory or not. - *

- * Applies to: publish - */ - @Nullable - @JsonProperty("mandatory") - @JsonPropertyDescription("Whether the message is mandatory or not.") - private Boolean mandatory; - - /** - * Like {@link #cc} but consumers will not receive this information. - *

- * Applies to: publish - */ - @Nullable - @JsonProperty("bcc") - @JsonPropertyDescription("Like cc but consumers will not receive this information.") - private List bcc; - - /** - * Name of the queue where the consumer should send the response. - *

- * Applies to: publish, subscribe - */ - @Nullable - @JsonProperty("replyTo") - @JsonPropertyDescription("Name of the queue where the consumer should send the response.") - private String replyTo; - - /** - * Whether the message should include a timestamp or not. - *

- * Applies to: publish, subscribe - */ - @Nullable - @JsonProperty("timestamp") - @JsonPropertyDescription("Whether the message should include a timestamp or not.") - private Boolean timestamp; - - /** - * Whether the consumer should ack the message or not. - *

- * Applies to: subscribe - */ - @Nullable - @JsonProperty("ack") - @JsonPropertyDescription("Whether the consumer should ack the message or not.") - private Boolean ack; - - /** - * The version of this binding. If omitted, "latest" MUST be assumed. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.2.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/amqp1/AMQP1OperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/amqp1/AMQP1OperationBinding.java deleted file mode 100644 index f92e1e29..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/amqp1/AMQP1OperationBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.operation.amqp1; - -import com.asyncapi.v2.binding.operation.OperationBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes AMQP 1.0 operation binding. - * - * @version 0.1.0 - * @see AMQP operation binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class AMQP1OperationBinding extends OperationBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/anypointmq/AnypointMQOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/anypointmq/AnypointMQOperationBinding.java deleted file mode 100644 index c2f2fb18..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/anypointmq/AnypointMQOperationBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.operation.anypointmq; - -import com.asyncapi.v2.binding.operation.OperationBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes Anypoint MQ operation binding. - * - * @version 0.0.1 - * @see Anypoint MQ operation binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class AnypointMQOperationBinding extends OperationBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/googlepubsub/GooglePubSubOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/googlepubsub/GooglePubSubOperationBinding.java deleted file mode 100644 index 69727478..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/googlepubsub/GooglePubSubOperationBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.operation.googlepubsub; - -import com.asyncapi.v2.binding.operation.OperationBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes Google Cloud Pub/Sub operation binding. - * - * @version 0.1.0 - * @see Google Cloud Pub/Sub operation binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class GooglePubSubOperationBinding extends OperationBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/http/HTTPOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/http/HTTPOperationBinding.java deleted file mode 100644 index 50de41dd..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/http/HTTPOperationBinding.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.asyncapi.v2.binding.operation.http; - -import com.asyncapi.v2.binding.operation.OperationBinding; -import com.asyncapi.v2.schema.Schema; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * Describes HTTP operation binding. - *

- * Contains information about the operation representation in HTTP. - * - * @version 0.1.0 - * @see HTTP operation binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class HTTPOperationBinding extends OperationBinding { - - /** - * Required. - *

- * Type of operation. Its value MUST be either request or response. - */ - @NotNull - @Builder.Default - @javax.validation.constraints.NotNull - @JsonProperty(value = "type", required = true) - @JsonPropertyDescription("Type of operation. Its value MUST be either request or response.") - private HTTPOperationType type = HTTPOperationType.REQUEST; - - /** - * 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. - */ - @Nullable - @JsonProperty("method") - @JsonPropertyDescription("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.") - private HTTPOperationMethod method; - - /** - * A Schema object containing the definitions for each query parameter. This schema MUST be of type object - * and have a properties key. - */ - @Nullable - @JsonProperty("query") - @JsonPropertyDescription("A Schema object containing the definitions for each query parameter. This schema MUST be of type object and have a properties key.") - private Schema query; - - /** - * The version of this binding. If omitted, "latest" MUST be assumed. - */ - @Nullable - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.1.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/http/HTTPOperationMethod.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/http/HTTPOperationMethod.java deleted file mode 100644 index 6781a41c..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/http/HTTPOperationMethod.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.asyncapi.v2.binding.operation.http; - -/** - * Describes HTTP operation type. - *

- * Contains information about the operation type. - * - * @version 0.1.0 - * @see HTTP operation binding - * @author Pavel Bodiachevskii - */ -public enum HTTPOperationMethod { - GET, - PUT, - POST, - PATCH, - DELETE, - HEAD, - OPTIONS, - CONNECT, - TRACE -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/http/HTTPOperationType.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/http/HTTPOperationType.java deleted file mode 100644 index c45309eb..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/http/HTTPOperationType.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.asyncapi.v2.binding.operation.http; - -import com.fasterxml.jackson.annotation.JsonProperty; - -public enum HTTPOperationType { - - @JsonProperty("request") - REQUEST, - - @JsonProperty("response") - RESPONSE - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/ibmmq/IBMMQOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/ibmmq/IBMMQOperationBinding.java deleted file mode 100644 index e974652a..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/ibmmq/IBMMQOperationBinding.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.asyncapi.v2.binding.operation.ibmmq; - -import com.asyncapi.v2.binding.operation.OperationBinding; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * Describes IBM MQ operation binding. - *

- * This object MUST NOT contain any properties. Its name is reserved for future use. - * - * @version 0.1.0 - * @see IBM MQ operation binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class IBMMQOperationBinding extends OperationBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/jms/JMSOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/jms/JMSOperationBinding.java deleted file mode 100644 index 20c32de1..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/jms/JMSOperationBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.operation.jms; - -import com.asyncapi.v2.binding.operation.OperationBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes JMS operation binding. - * - * @version 0.1.0 - * @see JMS operation binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class JMSOperationBinding extends OperationBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/kafka/KafkaOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/kafka/KafkaOperationBinding.java deleted file mode 100644 index 8ca426d2..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/kafka/KafkaOperationBinding.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.asyncapi.v2.binding.operation.kafka; - -import com.asyncapi.v2.binding.operation.OperationBinding; -import com.asyncapi.v2.schema.Schema; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -/** - * Describes Kafka operation binding. - *

- * Contains information about the operation representation in Kafka. - * - * @version 0.1.0 - * @see Kafka operation binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class KafkaOperationBinding extends OperationBinding { - - /** - * Id of the consumer group. - */ - @Nullable - @JsonProperty("groupId") - @JsonPropertyDescription("Id of the consumer group.") - private Schema groupId; - - /** - * Id of the consumer inside a consumer group. - */ - @Nullable - @JsonProperty("clientId") - @JsonPropertyDescription("Id of the consumer inside a consumer group.") - private Schema clientId; - - /** - * The version of this binding. If omitted, "latest" MUST be assumed. - */ - @Nullable - @Builder.Default - private String bindingVersion = "0.4.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/mercure/MercureOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/mercure/MercureOperationBinding.java deleted file mode 100644 index 0161bd0c..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/mercure/MercureOperationBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.operation.mercure; - -import com.asyncapi.v2.binding.operation.OperationBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes Mercure operation binding. - * - * @version 0.1.0 - * @see Mercure operation binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class MercureOperationBinding extends OperationBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/mqtt/MQTTOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/mqtt/MQTTOperationBinding.java deleted file mode 100644 index d76d9d86..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/mqtt/MQTTOperationBinding.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.asyncapi.v2.binding.operation.mqtt; - -import com.asyncapi.v2.binding.operation.OperationBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -/** - * Describes MQTT operation binding. - *

- * Contains information about the operation representation in MQTT. - * - * @version 0.1.0 - * @see MQTT operation binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes MQTT operation binding.") -public class MQTTOperationBinding extends OperationBinding { - - /** - * Defines how hard the broker/client will try to ensure that a message is received. - * Its value MUST be either 0, 1 or 2. - *

- * Applies to: publish, subscribe - */ - @Nullable - @javax.validation.constraints.Min( - value = 0, - message = "QoS must be greater or equals to 0." - ) - @javax.validation.constraints.Max( - value = 2, - message = "QoS must be lower or equals to 0." - ) - @JsonProperty("qos") - @JsonPropertyDescription("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).") - private Integer qos; - - /** - * Whether the broker should retain the message or not. - *

- * Applies to: publish, subscribe - */ - @Nullable - @JsonProperty("retain") - @JsonPropertyDescription("Whether the broker should retain the message or not.") - private Boolean retain; - - /** - * The version of this binding. If omitted, "latest" MUST be assumed. - *

- * Applies to: publish, subscribe - */ - @Nullable - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.1.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/mqtt5/MQTT5OperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/mqtt5/MQTT5OperationBinding.java deleted file mode 100644 index 1d804a44..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/mqtt5/MQTT5OperationBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.operation.mqtt5; - -import com.asyncapi.v2.binding.operation.OperationBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes MQTT 5 operation binding. - * - * @version 0.2.0 - * @see MQTT 5 operation binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class MQTT5OperationBinding extends OperationBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/nats/NATSOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/nats/NATSOperationBinding.java deleted file mode 100644 index 6a82e9e6..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/nats/NATSOperationBinding.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.asyncapi.v2.binding.operation.nats; - -import com.asyncapi.v2.binding.operation.OperationBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -/** - * Describes NATS operation binding. - * - * @version 0.1.0 - * @see NATS operation binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes NATS operation binding.") -public class NATSOperationBinding extends OperationBinding { - - /** - * Defines the name of the queue to use. It MUST NOT exceed 255 characters. - */ - @Nullable - @javax.validation.constraints.Size( - max = 255, - message = "Queue name must be lower or equals to 255." - ) - @JsonProperty("queue") - @JsonPropertyDescription("Defines the name of the queue to use. It MUST NOT exceed 255 characters.") - private String queue; - - /** - * The version of this binding. If omitted, "latest" MUST be assumed. - */ - @Nullable - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.1.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/pulsar/PulsarOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/pulsar/PulsarOperationBinding.java deleted file mode 100644 index 4401701e..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/pulsar/PulsarOperationBinding.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.asyncapi.v2.binding.operation.pulsar; - -import com.asyncapi.v2.binding.operation.OperationBinding; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * Describes Pulsar operation binding. - *

- * This object MUST NOT contain any properties. Its name is reserved for future use. - * - * @version 0.1.0 - * @see Pulsar operation binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class PulsarOperationBinding extends OperationBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/redis/RedisOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/redis/RedisOperationBinding.java deleted file mode 100644 index a48e021a..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/redis/RedisOperationBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.operation.redis; - -import com.asyncapi.v2.binding.operation.OperationBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes Redis operation binding. - * - * @version 0.1.0 - * @see Redis operation binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class RedisOperationBinding extends OperationBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/sns/SNSOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/sns/SNSOperationBinding.java deleted file mode 100644 index c066056a..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/sns/SNSOperationBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.operation.sns; - -import com.asyncapi.v2.binding.operation.OperationBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes SNS operation binding. - * - * @version 0.1.0 - * @see SNS operation binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class SNSOperationBinding extends OperationBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/solace/SolaceOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/solace/SolaceOperationBinding.java deleted file mode 100644 index ff0a4ef7..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/solace/SolaceOperationBinding.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.asyncapi.v2.binding.operation.solace; - -import com.asyncapi.v2.binding.operation.OperationBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -/** - * Describes Solace operation binding. - *

- * Contains information about the operation representation in Solace PubSub+ Broker. - * - * @version 0.3.0 - * @see Solace operation binding - * @author Dennis Brinley, Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes Solace operation binding.") -public class SolaceOperationBinding extends OperationBinding { - - /** - * List of destinations - */ - @Nullable - @JsonProperty("destinations") - @JsonPropertyDescription("List of destinations") - private List destinations; - - /** - * The version of this binding. (e.g. bindingVersion: 0.3.0) - */ - @Nullable - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.3.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/solace/SolaceOperationDestination.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/solace/SolaceOperationDestination.java deleted file mode 100644 index fb3b075e..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/solace/SolaceOperationDestination.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.asyncapi.v2.binding.operation.solace; - -import com.asyncapi.v2.binding.operation.solace.queue.SolaceOperationQueue; -import com.asyncapi.v2.binding.operation.solace.topic.SolaceOperationTopic; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -/** - * Describes Solace destination. - *

- * Contains information about the destination in Solace PubSub+ Broker. - * - * @version 0.3.0 - * @see Solace operation binding - * @author Dennis Brinley, Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@JsonClassDescription("Describes Solace destination.") -public class SolaceOperationDestination { - - /** - * 'queue' or 'topic'. If the type is queue, then the subscriber can bind to the queue, which in turn will - * subscribe to the topic as represented by the channel name or to the provided topicSubscriptions. - */ - @Nullable - @JsonProperty("destinationType") - @JsonPropertyDescription("'queue' or 'topic'. If the type is queue, then the subscriber can bind to the queue, which in turn will subscribe to the topic as represented by the channel name or to the provided topicSubscriptions.") - private Type destinationType; - - /** - * 'direct' or 'persistent'. This determines the quality of service for publishing messages as documented here. - * Default is 'persistent'. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "deliveryMode", defaultValue = "persistent") - @JsonPropertyDescription("'direct' or 'persistent'. This determines the quality of service for publishing messages as documented at https://docs.solace.com/Get-Started/Core-Concepts-Message-Delivery-Modes.htm. Default is 'persistent'.") - private DeliveryMode deliveryMode = DeliveryMode.PERSISTENT; - - /** - * Solace queue destination details. - */ - @Nullable - @JsonProperty("queue") - @JsonPropertyDescription("Solace queue destination details.") - private SolaceOperationQueue queue; - - /** - * Solace topic destination details. - */ - @Nullable - @JsonProperty("topic") - @JsonPropertyDescription("Solace topic destination details.") - private SolaceOperationTopic topic; - - public enum Type { - - @JsonProperty("queue") - QUEUE, - @JsonProperty("topic") - TOPIC - - } - - public enum DeliveryMode { - - @JsonProperty("direct") - DIRECT, - @JsonProperty("persistent") - PERSISTENT - - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/solace/queue/SolaceOperationQueue.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/solace/queue/SolaceOperationQueue.java deleted file mode 100644 index acd627d1..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/solace/queue/SolaceOperationQueue.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.asyncapi.v2.binding.operation.solace.queue; - -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -/** - * Describes Solace queue. - *

- * Contains information about the queue in Solace PubSub+ Broker. - * - * @version 0.3.0 - * @see Solace operation binding - * @author Dennis Brinley, Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@JsonClassDescription("Describes Solace queue.") -public class SolaceOperationQueue { - - /** - * The name of the queue, only applicable when destinationType is 'queue'. - */ - @Nullable - @JsonProperty("name") - @JsonPropertyDescription("The name of the queue, only applicable when destinationType is 'queue'.") - private String name; - - /** - * A list of topics that the queue subscribes to, only applicable when destinationType is 'queue'. - * If none is given, the queue subscribes to the topic as represented by the channel name. - */ - @Nullable - @JsonProperty("topicSubscriptions") - @JsonPropertyDescription("A list of topics that the queue subscribes to, only applicable when destinationType is 'queue'. If none is given, the queue subscribes to the topic as represented by the channel name.") - private List topicSubscriptions; - - /** - * 'exclusive' or 'nonexclusive'. This is documented here. Only applicable when destinationType is 'queue'. - */ - @Nullable - @JsonProperty("accessType") - @JsonPropertyDescription("'exclusive' or 'nonexclusive'. This is documented at https://docs.solace.com/Messaging/Guaranteed-Msg/Endpoints.htm#Queues. Only applicable when destinationType is 'queue'.") - private AccessType accessType; - - /** - * The maximum amount of message spool that the given queue may use. This is documented here. - * Only applicable when destinationType is 'queue'. - */ - @Nullable - @JsonProperty("maxMsgSpoolSize") - @JsonPropertyDescription("The maximum amount of message spool that the given queue may use. This is documented at https://docs.solace.com/Messaging/Guaranteed-Msg/Message-Spooling.htm#max-spool-usage. Only applicable when destinationType is 'queue'.") - private String maxMsgSpoolSize; - - /** - * The maximum TTL to apply to messages to be spooled. This is documented here. - * Only applicable when destinationType is 'queue'. - */ - @Nullable - @JsonProperty("maxTtl") - @JsonPropertyDescription("The maximum TTL to apply to messages to be spooled. This is documented at https://docs.solace.com/Messaging/Guaranteed-Msg/Configuring-Queues.htm. Only applicable when destinationType is 'queue'.") - private String maxTtl; - - public enum AccessType { - - @JsonProperty("exclusive") - EXCLUSIVE, - @JsonProperty("non-exclusive") - NON_EXCLUSIVE - - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/solace/topic/SolaceOperationTopic.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/solace/topic/SolaceOperationTopic.java deleted file mode 100644 index bdf54d6d..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/solace/topic/SolaceOperationTopic.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.asyncapi.v2.binding.operation.solace.topic; - -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -/** - * Describes Solace topic. - *

- * Contains information about the topic in Solace PubSub+ Broker. - * - * @version 0.3.0 - * @see Solace operation binding - * @author Dennis Brinley, Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@JsonClassDescription("Describes Solace topic.") -public class SolaceOperationTopic { - - /** - * A list of topics that the client subscribes to, only applicable when destinationType is 'topic'. - * If none is given, the client subscribes to the topic as represented by the channel name. - */ - @Nullable - @JsonProperty("topicSubscriptions") - @JsonPropertyDescription("A list of topics that the client subscribes to, only applicable when destinationType is 'topic'. If none is given, the client subscribes to the topic as represented by the channel name.") - protected List topicSubscriptions; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/sqs/SQSOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/sqs/SQSOperationBinding.java deleted file mode 100644 index e527e551..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/sqs/SQSOperationBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.operation.sqs; - -import com.asyncapi.v2.binding.operation.OperationBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes SQS operation binding. - * - * @version 0.1.0 - * @see SQS operation binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class SQSOperationBinding extends OperationBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/stomp/STOMPOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/stomp/STOMPOperationBinding.java deleted file mode 100644 index db615991..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/stomp/STOMPOperationBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.operation.stomp; - -import com.asyncapi.v2.binding.operation.OperationBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes STOMP operation binding. - * - * @version 0.1.0 - * @see STOMP operation binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class STOMPOperationBinding extends OperationBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/ws/WebSocketsOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/ws/WebSocketsOperationBinding.java deleted file mode 100644 index bba61517..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/operation/ws/WebSocketsOperationBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.operation.ws; - -import com.asyncapi.v2.binding.operation.OperationBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes WebSockets operation binding. - * - * @version 0.1.0 - * @see WebSockets operation binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class WebSocketsOperationBinding extends OperationBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/ServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/ServerBinding.java deleted file mode 100644 index ed0c727c..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/ServerBinding.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.asyncapi.v2.binding.server; - -import com.asyncapi.v2.ExtendableObject; -import lombok.EqualsAndHashCode; - -/** - * Describes AsyncAPI server binding. - * - * @version 2.6.0 - * @author Pavel Bodiachevskii - */ -@EqualsAndHashCode(callSuper = true) -public class ServerBinding extends ExtendableObject { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/amqp/AMQPServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/amqp/AMQPServerBinding.java deleted file mode 100644 index 78523a63..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/amqp/AMQPServerBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.server.amqp; - -import com.asyncapi.v2.binding.server.ServerBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes AMQP 0-9-1 server binding. - * - * @version 0.2.0 - * @see AMQP server binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class AMQPServerBinding extends ServerBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/amqp1/AMQP1ServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/amqp1/AMQP1ServerBinding.java deleted file mode 100644 index 661759c1..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/amqp1/AMQP1ServerBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.server.amqp1; - -import com.asyncapi.v2.binding.server.ServerBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes AMQP 1.0 server binding. - * - * @version 0.1.0 - * @see AMQP server binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class AMQP1ServerBinding extends ServerBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/anypointmq/AnypointMQServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/anypointmq/AnypointMQServerBinding.java deleted file mode 100644 index 08ec2b17..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/anypointmq/AnypointMQServerBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.server.anypointmq; - -import com.asyncapi.v2.binding.server.ServerBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes Anypoint MQ server binding. - * - * @version 0.0.1 - * @see Anypoint MQ server binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class AnypointMQServerBinding extends ServerBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/googlepubsub/GooglePubSubServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/googlepubsub/GooglePubSubServerBinding.java deleted file mode 100644 index 56ffd92a..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/googlepubsub/GooglePubSubServerBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.server.googlepubsub; - -import com.asyncapi.v2.binding.server.ServerBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes Google Cloud Pub/Sub server binding. - * - * @version 0.1.0 - * @see Google Cloud Pub/Sub server binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class GooglePubSubServerBinding extends ServerBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/http/HTTPServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/http/HTTPServerBinding.java deleted file mode 100644 index 091ac279..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/http/HTTPServerBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.server.http; - -import com.asyncapi.v2.binding.server.ServerBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes HTTP server binding. - * - * @version 0.1.0 - * @see HTTP server binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class HTTPServerBinding extends ServerBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/ibmmq/IBMMQServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/ibmmq/IBMMQServerBinding.java deleted file mode 100644 index fdeef6d9..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/ibmmq/IBMMQServerBinding.java +++ /dev/null @@ -1,106 +0,0 @@ -package com.asyncapi.v2.binding.server.ibmmq; - -import com.asyncapi.v2.binding.server.ServerBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -/** - * Describes IBM MQ server binding. - *

- * 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. - * - * @version 0.1.0 - * @see IBM MQ server binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes IBM MQ server binding.") -public class IBMMQServerBinding extends ServerBinding { - - /** - * 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. - *

- * MUST NOT be specified for URI Scheme http:// or file:// - */ - @Nullable - @JsonProperty("groupId") - @JsonPropertyDescription("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.") - private String groupId; - - /** - * The name of the IBM MQ queue manager to bind to in the CCDT file. - *

- * MUST NOT be specified for URI Scheme ibmmq:// - */ - @Nullable - @Builder.Default - @JsonProperty(value = "ccdtQueueManagerName", defaultValue = "*") - @JsonPropertyDescription("The name of the IBM MQ queue manager to bind to in the CCDT file.") - private String ccdtQueueManagerName = "*"; - - /** - * 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. - *

- * MUST NOT be specified for protocol ibmmq or URI Scheme file:// or http:// - */ - @Nullable - @Builder.Default - @JsonProperty(value = "cipherSpec", defaultValue = "ANY") - @JsonPropertyDescription("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.") - private String cipherSpec = "ANY"; - - /** - * 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. - *

- * MUST NOT be specified for URI Scheme file:// or http:// - */ - @Builder.Default - @JsonProperty(value = "multiEndpointServer", defaultValue = "false") - @JsonPropertyDescription("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. MUST NOT be specified for URI Scheme file:// or http://") - private Boolean multiEndpointServer = false; - - /** - * 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. - *

- * MUST be 0-999999 - */ - @Builder.Default - @javax.validation.constraints.Min( - value = 0, - message = "Heart beat interval must be greater or equals to 0" - ) - @javax.validation.constraints.Max( - value = 999999, - message = "Heart beat interval must be less or equals to 999999" - ) - @JsonProperty(value = "heartBeatInterval", defaultValue = "300") - @JsonPropertyDescription("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.") - private int heartBeatInterval = 300; - - /** - * The version of this binding. - */ - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.1.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/jms/JMSServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/jms/JMSServerBinding.java deleted file mode 100644 index f205f22a..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/jms/JMSServerBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.server.jms; - -import com.asyncapi.v2.binding.server.ServerBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes JMS server binding. - * - * @version 0.1.0 - * @see JMS server binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class JMSServerBinding extends ServerBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/kafka/KafkaServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/kafka/KafkaServerBinding.java deleted file mode 100644 index 87f21cec..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/kafka/KafkaServerBinding.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.asyncapi.v2.binding.server.kafka; - -import com.asyncapi.v2.binding.server.ServerBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -/** - * Describes Kafka server binding. - * - * @version 0.4.0 - * @see Kafka server binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes Kafka server binding.") -public class KafkaServerBinding extends ServerBinding { - - /** - * API URL for the Schema Registry used when producing Kafka messages (if a Schema Registry was used) - */ - @Nullable - @JsonProperty("schemaRegistryUrl") - @JsonPropertyDescription("API URL for the Schema Registry used when producing Kafka messages (if a Schema Registry was used)") - private String schemaRegistryUrl; - - /** - * MUST NOT be specified if schemaRegistryUrl is not specified - *

- * The vendor of Schema Registry and Kafka serdes library that should be used (e.g. apicurio, confluent, ibm, or karapace) - */ - @Nullable - @JsonProperty("schemaRegistryVendor") - @JsonPropertyDescription("The vendor of Schema Registry and Kafka serdes library that should be used (e.g. apicurio, confluent, ibm, or karapace)") - private String schemaRegistryVendor; - - /** - * The version of this binding. - */ - @Nullable - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.4.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/mercure/MercureServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/mercure/MercureServerBinding.java deleted file mode 100644 index 4941376b..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/mercure/MercureServerBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.server.mercure; - -import com.asyncapi.v2.binding.server.ServerBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes Mercure server binding. - * - * @version 0.1.0 - * @see Mercure server binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class MercureServerBinding extends ServerBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/mqtt/MQTTServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/mqtt/MQTTServerBinding.java deleted file mode 100644 index b60dacb7..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/mqtt/MQTTServerBinding.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.asyncapi.v2.binding.server.mqtt; - -import com.asyncapi.v2.binding.server.ServerBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -/** - * Describes MQTT server binding. - *

- * Contains information about the server representation in MQTT. - * - * @version 0.1.0 - * @see MQTT server binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes MQTT server binding.") -public class MQTTServerBinding extends ServerBinding { - - /** - * The client identifier. - */ - @Nullable - @JsonProperty("clientId") - @JsonPropertyDescription("The client identifier.") - private String clientId; - - /** - * Whether to create a persisten connection or not. When false, the connection will be persistent. - */ - @Nullable - @JsonProperty("cleanSession") - @JsonPropertyDescription("Whether to create a persisten connection or not. When false, the connection will be persistent.") - private Boolean cleanSession; - - /** - * Last Will and Testament configuration. - */ - @Nullable - @JsonProperty("lastWill") - @JsonPropertyDescription("Last Will and Testament configuration.") - private MQTTServerLastWillConfiguration lastWill; - - /** - * Interval in seconds of the longest period of time the broker and the client can endure without sending a message. - */ - @Nullable - @JsonProperty("keepAlive") - @JsonPropertyDescription("Interval in seconds of the longest period of time the broker and the client can endure without sending a message.") - private Integer keepAlive; - - /** - * The version of this binding. If omitted, "latest" MUST be assumed. - */ - @Nullable - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.1.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/mqtt/MQTTServerLastWillConfiguration.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/mqtt/MQTTServerLastWillConfiguration.java deleted file mode 100644 index 5accb133..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/mqtt/MQTTServerLastWillConfiguration.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.asyncapi.v2.binding.server.mqtt; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -/** - * Describes MQTT server last will configuration. - * - * @version 0.1.0 - * @see MQTT server binding - * @author Pavel Bodiachevskii - */ -@Data -@EqualsAndHashCode -@NoArgsConstructor -@AllArgsConstructor -public class MQTTServerLastWillConfiguration { - - /** - * The topic where the Last Will and Testament message will be sent. - */ - @Nullable - @JsonProperty("topic") - @JsonPropertyDescription("The topic where the Last Will and Testament message will be sent.") - private String topic; - - /** - * 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. - */ - @Nullable - @javax.validation.constraints.Min( - value = 0, - message = "QoS must be greater or equals to 0." - ) - @javax.validation.constraints.Max( - value = 2, - message = "QoS must be lower or equals to 0." - ) - @JsonProperty("qos") - @JsonPropertyDescription("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.") - private Integer qos; - - /** - * Last Will message. - */ - @Nullable - @JsonProperty("message") - @JsonPropertyDescription("Last Will message.") - private String message; - - /** - * Whether the broker should retain the Last Will and Testament message or not. - */ - @Nullable - @JsonProperty("retain") - @JsonPropertyDescription("Whether the broker should retain the Last Will and Testament message or not.") - private Boolean retain; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/mqtt5/MQTT5ServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/mqtt5/MQTT5ServerBinding.java deleted file mode 100644 index d2bf748f..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/mqtt5/MQTT5ServerBinding.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.asyncapi.v2.binding.server.mqtt5; - -import com.asyncapi.v2.binding.server.ServerBinding; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * Describes MQTT 5 server binding. - * - * @version 0.2.0 - * @see MQTT 5 server binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class MQTT5ServerBinding extends ServerBinding { - - /** - * TODO: support reference, Schema object - * Session Expiry Interval in seconds or a Schema Object containing the definition of the interval. - */ - private int sessionExpiryInterval; - - @Builder.Default - private String bindingVersion = "0.2.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/nats/NATSServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/nats/NATSServerBinding.java deleted file mode 100644 index 913b1fb4..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/nats/NATSServerBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.server.nats; - -import com.asyncapi.v2.binding.server.ServerBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes NATS channel binding. - * - * @version 0.1.0 - * @see NATS server binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class NATSServerBinding extends ServerBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/pulsar/PulsarServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/pulsar/PulsarServerBinding.java deleted file mode 100644 index 1e6edea8..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/pulsar/PulsarServerBinding.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.asyncapi.v2.binding.server.pulsar; - -import com.asyncapi.v2.binding.server.ServerBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -/** - * Describes Pulsar server binding. - * - * @version 0.1.0 - * @see Redis server binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes Pulsar server binding.") -public class PulsarServerBinding extends ServerBinding { - - /** - * The pulsar tenant. If omitted, "public" MUST be assumed. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "tenant", defaultValue = "public") - @JsonPropertyDescription("The pulsar tenant. If omitted, \"public\" MUST be assumed.") - private String tenant = "public"; - - /** - * The version of this binding. - */ - @Nullable - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.1.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/redis/RedisServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/redis/RedisServerBinding.java deleted file mode 100644 index ba4018c7..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/redis/RedisServerBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.server.redis; - -import com.asyncapi.v2.binding.server.ServerBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes Redis server binding. - * - * @version 0.1.0 - * @see Redis server binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class RedisServerBinding extends ServerBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/sns/SNSServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/sns/SNSServerBinding.java deleted file mode 100644 index 15fbfa81..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/sns/SNSServerBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.server.sns; - -import com.asyncapi.v2.binding.server.ServerBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes SNS server binding. - * - * @version 0.1.0 - * @see SNS server binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class SNSServerBinding extends ServerBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/solace/SolaceServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/solace/SolaceServerBinding.java deleted file mode 100644 index a8b1467a..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/solace/SolaceServerBinding.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.asyncapi.v2.binding.server.solace; - -import com.asyncapi.v2.binding.server.ServerBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -/** - * Describes Solace server binding. - * - * @version 0.3.0 - * @see Solace server binding - * @author Dennis Brinley, Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes Solace server binding.") -public class SolaceServerBinding extends ServerBinding { - - /** - * Message VPN of the Solace Broker - *

- * e.g. msgVpn: solace-broker-msg-vpn - */ - @Nullable - @JsonProperty("msgVpn") - @JsonPropertyDescription("Message VPN of the Solace Broker") - private String msgVpn; - - /** - * The version of this binding. - */ - @Nullable - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.3.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/sqs/SQSServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/sqs/SQSServerBinding.java deleted file mode 100644 index bb6f90ef..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/sqs/SQSServerBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.server.sqs; - -import com.asyncapi.v2.binding.server.ServerBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes SQS server binding. - * - * @version 0.1.0 - * @see SQS server binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class SQSServerBinding extends ServerBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/stomp/STOMPServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/stomp/STOMPServerBinding.java deleted file mode 100644 index 9d3b4ac5..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/stomp/STOMPServerBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.server.stomp; - -import com.asyncapi.v2.binding.server.ServerBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes STOMP server binding. - * - * @version 0.1.0 - * @see STOMP server binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class STOMPServerBinding extends ServerBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/ws/WebSocketsServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/ws/WebSocketsServerBinding.java deleted file mode 100644 index 99f76072..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/binding/server/ws/WebSocketsServerBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.server.ws; - -import com.asyncapi.v2.binding.server.ServerBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes WebSockets server binding. - * - * @version 0.1.0 - * @see WebSockets server binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class WebSocketsServerBinding extends ServerBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/jackson/BindingsMapDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/jackson/BindingsMapDeserializer.java deleted file mode 100644 index 7b78380f..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/jackson/BindingsMapDeserializer.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.asyncapi.v2.jackson; - -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; - -/** - * Deserializes AsyncAPI bindings map. - */ -public abstract class BindingsMapDeserializer extends JsonDeserializer> { - - public abstract Object chooseKnownPojo(String bindingKey, JsonNode binding, ObjectCodec objectCodec) throws IOException; - - @Override - public Map deserialize( - JsonParser p, - DeserializationContext ctxt - ) throws IOException, JsonProcessingException { - ObjectCodec objectCodec = p.getCodec(); - JsonNode node = objectCodec.readTree(p); - - Map bindings = new HashMap<>(); - - node.fieldNames().forEachRemaining( - fieldName -> { - try { - bindings.put(fieldName, chooseKnownPojo(fieldName, node.get(fieldName), objectCodec)); - } catch (IOException e) { - e.printStackTrace(); - } - } - ); - - return bindings; - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/jackson/ListOfReferencesOrObjectsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/jackson/ListOfReferencesOrObjectsDeserializer.java deleted file mode 100644 index 4a2baf05..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/jackson/ListOfReferencesOrObjectsDeserializer.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.asyncapi.v2.jackson; - -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -public abstract class ListOfReferencesOrObjectsDeserializer extends JsonDeserializer> { - - abstract public Class objectTypeClass(); - - abstract public Class referenceClass(); - - @Override - public List deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException { - ObjectCodec objectCodec = p.getCodec(); - JsonNode node = objectCodec.readTree(p); - - List traits = new ArrayList<>(); - - node.forEach( - traitsValue -> { - try { - traits.add(chooseKnownPojo(traitsValue, objectCodec)); - } catch (IOException e) { - e.printStackTrace(); - } - } - ); - - return traits; - } - - private Object chooseKnownPojo(JsonNode jsonNode, ObjectCodec objectCodec) throws IOException { - JsonNode ref = jsonNode.get("$ref"); - try (JsonParser jsonParser = jsonNode.traverse(objectCodec)) { - if (ref != null) { - return jsonParser.readValueAs(referenceClass()); - } else { - return jsonParser.readValueAs(objectTypeClass()); - } - } - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/jackson/MapOfReferencesOrObjectsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/jackson/MapOfReferencesOrObjectsDeserializer.java deleted file mode 100644 index 2fb73bc1..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/jackson/MapOfReferencesOrObjectsDeserializer.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.asyncapi.v2.jackson; - -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; - -/** - * Deserializes AsyncAPI map of parameters - * @param object - */ -public abstract class MapOfReferencesOrObjectsDeserializer extends JsonDeserializer> { - - abstract public Class objectTypeClass(); - - abstract public Class referenceClass(); - - @Override - public Map deserialize(JsonParser jsonParser, - DeserializationContext deserializationContext - ) throws IOException, JsonProcessingException { - ObjectCodec objectCodec = jsonParser.getCodec(); - JsonNode map = objectCodec.readTree(jsonParser); - - Map parameters = new HashMap<>(); - - map.fieldNames().forEachRemaining( - fieldName -> { - /* - Problem: - Both, Reference class and Schema class have $ref field. - So, this is only reason why I receive next exception: - "com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: - Unrecognized field "title" (class com.asyncapi.v2._6_0.model.Reference), - not marked as ignorable (one known property: "$ref"])" - in case when Schema contains $ref. - Solution: - Try to deserialize reference. In case of exception, try to deserialize it as given ObjectType. In case of - one more exception, throw it. - TODO: Think how to improve. - */ - try { - parameters.put(fieldName, chooseKnownPojo(map.get(fieldName), objectCodec)); - } catch (IOException ignore) { - try { - parameters.put(fieldName, readAsObject(map.get(fieldName), objectCodec)); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - ); - - return parameters; - } - - private Object chooseKnownPojo(JsonNode jsonNode, ObjectCodec objectCodec) throws IOException { - JsonNode ref = jsonNode.get("$ref"); - try (JsonParser jsonParser = jsonNode.traverse(objectCodec)) { - if (ref != null) { - return jsonParser.readValueAs(referenceClass()); - } else { - return jsonParser.readValueAs(objectTypeClass()); - } - } - } - - private Object readAsObject(JsonNode jsonNode, ObjectCodec objectCodec) throws IOException { - try (JsonParser jsonParser = jsonNode.traverse(objectCodec)) { - return jsonParser.readValueAs(objectTypeClass()); - } - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/jackson/ReferenceOrObjectDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/jackson/ReferenceOrObjectDeserializer.java deleted file mode 100644 index a378ee70..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/jackson/ReferenceOrObjectDeserializer.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.asyncapi.v2.jackson; - -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException; - -import java.io.IOException; - -public abstract class ReferenceOrObjectDeserializer extends JsonDeserializer { - - abstract public Class objectTypeClass(); - - abstract public Class referenceClass(); - - @Override - public Object deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException { - ObjectCodec objectCodec = p.getCodec(); - JsonNode node = objectCodec.readTree(p); - - /* - Problem: - Both, Reference class and Schema class have $ref field. - So, this is only reason why I receive next exception: - "com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: - Unrecognized field "title" (class com.asyncapi.v2._6_0.model.Reference), - not marked as ignorable (one known property: "$ref"])" - in case when Schema contains $ref. - Solution: - Try to deserialize reference. In case of exception, try to deserialize it as given ObjectType. In case of - one more exception, throw it. - TODO: Think how to improve. - */ - try { - return chooseKnownPojo(node, objectCodec); - } catch (UnrecognizedPropertyException unrecognizedPropertyException) { - return readAsObject(node, objectCodec); - } - } - - private Object chooseKnownPojo(JsonNode jsonNode, ObjectCodec objectCodec) throws IOException { - JsonNode ref = jsonNode.get("$ref"); - try (JsonParser jsonParser = jsonNode.traverse(objectCodec)) { - if (ref != null) { - return jsonParser.readValueAs(referenceClass()); - } else { - return jsonParser.readValueAs(objectTypeClass()); - } - } - } - - private Object readAsObject(JsonNode jsonNode, ObjectCodec objectCodec) throws IOException { - try (JsonParser jsonParser = jsonNode.traverse(objectCodec)) { - return jsonParser.readValueAs(objectTypeClass()); - } - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/jackson/SchemaItemsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/jackson/SchemaItemsDeserializer.java deleted file mode 100644 index 4b90358f..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/jackson/SchemaItemsDeserializer.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.asyncapi.v2.jackson; - -import com.asyncapi.v2.schema.Schema; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.node.ArrayNode; -import com.fasterxml.jackson.databind.node.JsonNodeType; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -public class SchemaItemsDeserializer extends JsonDeserializer { - - @Override - public Object deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException { - ObjectCodec objectCodec = jsonParser.getCodec(); - JsonNode node = objectCodec.readTree(jsonParser); - JsonNodeType nodeType = node.getNodeType(); - if (nodeType == JsonNodeType.OBJECT) { - return readAsSchema(node, objectCodec); - } - if (nodeType == JsonNodeType.ARRAY) { - return readAsListOfSchemas((ArrayNode) node, objectCodec); - } - return readAsObject(node, objectCodec); - } - - private List readAsListOfSchemas(ArrayNode arrayNode, ObjectCodec objectCodec) throws IOException { - List schemaList = new ArrayList<>(); - for (JsonNode childNode : arrayNode) { - schemaList.add(readAsSchema(childNode, objectCodec)); - } - return schemaList; - } - - private Schema readAsSchema(JsonNode jsonNode, ObjectCodec objectCodec) throws IOException { - try (JsonParser parser = jsonNode.traverse(objectCodec)) { - return parser.readValueAs(Schema.class); - } - } - - private Object readAsObject(JsonNode jsonNode, ObjectCodec objectCodec) throws IOException { - try (JsonParser jsonParser = jsonNode.traverse(objectCodec)) { - return jsonParser.readValueAs(Object.class); - } - } -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/jackson/binding/channel/ChannelBindingsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/jackson/binding/channel/ChannelBindingsDeserializer.java deleted file mode 100644 index 0ed343fa..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/jackson/binding/channel/ChannelBindingsDeserializer.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.asyncapi.v2.jackson.binding.channel; - -import com.asyncapi.v2.Reference; -import com.asyncapi.v2.binding.channel.amqp.AMQPChannelBinding; -import com.asyncapi.v2.binding.channel.amqp1.AMQP1ChannelBinding; -import com.asyncapi.v2.binding.channel.anypointmq.AnypointMQChannelBinding; -import com.asyncapi.v2.binding.channel.googlepubsub.GooglePubSubChannelBinding; -import com.asyncapi.v2.binding.channel.http.HTTPChannelBinding; -import com.asyncapi.v2.binding.channel.ibmmq.IBMMQChannelBinding; -import com.asyncapi.v2.binding.channel.jms.JMSChannelBinding; -import com.asyncapi.v2.binding.channel.kafka.KafkaChannelBinding; -import com.asyncapi.v2.binding.channel.mercure.MercureChannelBinding; -import com.asyncapi.v2.binding.channel.mqtt.MQTTChannelBinding; -import com.asyncapi.v2.binding.channel.mqtt5.MQTT5ChannelBinding; -import com.asyncapi.v2.binding.channel.nats.NATSChannelBinding; -import com.asyncapi.v2.binding.channel.pulsar.PulsarChannelBinding; -import com.asyncapi.v2.binding.channel.redis.RedisChannelBinding; -import com.asyncapi.v2.binding.channel.sns.SNSChannelBinding; -import com.asyncapi.v2.binding.channel.solace.SolaceChannelBinding; -import com.asyncapi.v2.binding.channel.sqs.SQSChannelBinding; -import com.asyncapi.v2.binding.channel.stomp.STOMPChannelBinding; -import com.asyncapi.v2.binding.channel.ws.WebSocketsChannelBinding; -import com.asyncapi.v2.jackson.BindingsMapDeserializer; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -/** - * Serializes channel bindings map. - * - * @author Pavel Bodiachevskii - */ -public class ChannelBindingsDeserializer extends BindingsMapDeserializer { - - public Object chooseKnownPojo(String bindingKey, JsonNode binding, ObjectCodec objectCodec) throws IOException { - try (JsonParser jsonParser = binding.traverse(objectCodec)) { - if (binding.get("$ref" ) != null) { - return jsonParser.readValueAs(Reference.class); - } - - switch (bindingKey) { - case "amqp": return jsonParser.readValueAs(AMQPChannelBinding.class); - case "amqp1": return jsonParser.readValueAs(AMQP1ChannelBinding.class); - case "anypointmq": return jsonParser.readValueAs(AnypointMQChannelBinding.class); - case "googlepubsub": return jsonParser.readValueAs(GooglePubSubChannelBinding.class); - case "http": return jsonParser.readValueAs(HTTPChannelBinding.class); - case "ibmmq": return jsonParser.readValueAs(IBMMQChannelBinding.class); - case "jms": return jsonParser.readValueAs(JMSChannelBinding.class); - case "kafka": return jsonParser.readValueAs(KafkaChannelBinding.class); - case "mercure": return jsonParser.readValueAs(MercureChannelBinding.class); - case "mqtt": return jsonParser.readValueAs(MQTTChannelBinding.class); - case "mqtt5": return jsonParser.readValueAs(MQTT5ChannelBinding.class); - case "nats": return jsonParser.readValueAs(NATSChannelBinding.class); - case "pulsar": return jsonParser.readValueAs(PulsarChannelBinding.class); - case "redis": return jsonParser.readValueAs(RedisChannelBinding.class); - case "sns": return jsonParser.readValueAs(SNSChannelBinding.class); - case "solace": return jsonParser.readValueAs(SolaceChannelBinding.class); - case "sqs": return jsonParser.readValueAs(SQSChannelBinding.class); - case "stomp": return jsonParser.readValueAs(STOMPChannelBinding.class); - case "ws": return jsonParser.readValueAs(WebSocketsChannelBinding.class); - default: return null; - } - } - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/jackson/binding/message/MessageBindingsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/jackson/binding/message/MessageBindingsDeserializer.java deleted file mode 100644 index 991d2a06..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/jackson/binding/message/MessageBindingsDeserializer.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.asyncapi.v2.jackson.binding.message; - -import com.asyncapi.v2.Reference; -import com.asyncapi.v2.binding.message.amqp.AMQPMessageBinding; -import com.asyncapi.v2.binding.message.amqp1.AMQP1MessageBinding; -import com.asyncapi.v2.binding.message.anypointmq.AnypointMQMessageBinding; -import com.asyncapi.v2.binding.message.googlepubsub.GooglePubSubMessageBinding; -import com.asyncapi.v2.binding.message.http.HTTPMessageBinding; -import com.asyncapi.v2.binding.message.ibmmq.IBMMQMessageBinding; -import com.asyncapi.v2.binding.message.jms.JMSMessageBinding; -import com.asyncapi.v2.binding.message.kafka.KafkaMessageBinding; -import com.asyncapi.v2.binding.message.mercure.MercureMessageBinding; -import com.asyncapi.v2.binding.message.mqtt.MQTTMessageBinding; -import com.asyncapi.v2.binding.message.mqtt5.MQTT5MessageBinding; -import com.asyncapi.v2.binding.message.nats.NATSMessageBinding; -import com.asyncapi.v2.binding.message.pulsar.PulsarMessageBinding; -import com.asyncapi.v2.binding.message.redis.RedisMessageBinding; -import com.asyncapi.v2.binding.message.sns.SNSMessageBinding; -import com.asyncapi.v2.binding.message.solace.SolaceMessageBinding; -import com.asyncapi.v2.binding.message.sqs.SQSMessageBinding; -import com.asyncapi.v2.binding.message.stomp.STOMPMessageBinding; -import com.asyncapi.v2.binding.message.ws.WebSocketsMessageBinding; -import com.asyncapi.v2.jackson.BindingsMapDeserializer; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -/** - * Serializes message bindings map. - * - * @author Pavel Bodiachevskii - */ -public class MessageBindingsDeserializer extends BindingsMapDeserializer { - - public Object chooseKnownPojo(String bindingKey, JsonNode binding, ObjectCodec objectCodec) throws IOException { - try (JsonParser jsonParser = binding.traverse(objectCodec)) { - if (binding.get("$ref" ) != null) { - return jsonParser.readValueAs(Reference.class); - } - - switch (bindingKey) { - case "amqp": return jsonParser.readValueAs(AMQPMessageBinding.class); - case "amqp1": return jsonParser.readValueAs(AMQP1MessageBinding.class); - case "anypointmq": return jsonParser.readValueAs(AnypointMQMessageBinding.class); - case "googlepubsub": return jsonParser.readValueAs(GooglePubSubMessageBinding.class); - case "http": return jsonParser.readValueAs(HTTPMessageBinding.class); - case "ibmmq": return jsonParser.readValueAs(IBMMQMessageBinding.class); - case "jms": return jsonParser.readValueAs(JMSMessageBinding.class); - case "kafka": return jsonParser.readValueAs(KafkaMessageBinding.class); - case "mercure": return jsonParser.readValueAs(MercureMessageBinding.class); - case "mqtt": return jsonParser.readValueAs(MQTTMessageBinding.class); - case "mqtt5": return jsonParser.readValueAs(MQTT5MessageBinding.class); - case "nats": return jsonParser.readValueAs(NATSMessageBinding.class); - case "pulsar": return jsonParser.readValueAs(PulsarMessageBinding.class); - case "redis": return jsonParser.readValueAs(RedisMessageBinding.class); - case "sns": return jsonParser.readValueAs(SNSMessageBinding.class); - case "solace": return jsonParser.readValueAs(SolaceMessageBinding.class); - case "sqs": return jsonParser.readValueAs(SQSMessageBinding.class); - case "stomp": return jsonParser.readValueAs(STOMPMessageBinding.class); - case "ws": return jsonParser.readValueAs(WebSocketsMessageBinding.class); - default: return null; - } - } - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/jackson/binding/operation/OperationBindingsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/jackson/binding/operation/OperationBindingsDeserializer.java deleted file mode 100644 index 47392755..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/jackson/binding/operation/OperationBindingsDeserializer.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.asyncapi.v2.jackson.binding.operation; - -import com.asyncapi.v2.Reference; -import com.asyncapi.v2.binding.operation.amqp.AMQPOperationBinding; -import com.asyncapi.v2.binding.operation.amqp1.AMQP1OperationBinding; -import com.asyncapi.v2.binding.operation.anypointmq.AnypointMQOperationBinding; -import com.asyncapi.v2.binding.operation.googlepubsub.GooglePubSubOperationBinding; -import com.asyncapi.v2.binding.operation.http.HTTPOperationBinding; -import com.asyncapi.v2.binding.operation.ibmmq.IBMMQOperationBinding; -import com.asyncapi.v2.binding.operation.jms.JMSOperationBinding; -import com.asyncapi.v2.binding.operation.kafka.KafkaOperationBinding; -import com.asyncapi.v2.binding.operation.mercure.MercureOperationBinding; -import com.asyncapi.v2.binding.operation.mqtt.MQTTOperationBinding; -import com.asyncapi.v2.binding.operation.mqtt5.MQTT5OperationBinding; -import com.asyncapi.v2.binding.operation.nats.NATSOperationBinding; -import com.asyncapi.v2.binding.operation.pulsar.PulsarOperationBinding; -import com.asyncapi.v2.binding.operation.redis.RedisOperationBinding; -import com.asyncapi.v2.binding.operation.sns.SNSOperationBinding; -import com.asyncapi.v2.binding.operation.solace.SolaceOperationBinding; -import com.asyncapi.v2.binding.operation.sqs.SQSOperationBinding; -import com.asyncapi.v2.binding.operation.stomp.STOMPOperationBinding; -import com.asyncapi.v2.binding.operation.ws.WebSocketsOperationBinding; -import com.asyncapi.v2.jackson.BindingsMapDeserializer; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -/** - * Serializes operation bindings map. - * - * @version 2.6.0 - * @author Pavel Bodiachevskii - */ -public class OperationBindingsDeserializer extends BindingsMapDeserializer { - - public Object chooseKnownPojo(String bindingKey, JsonNode binding, ObjectCodec objectCodec) throws IOException { - try (JsonParser jsonParser = binding.traverse(objectCodec)) { - if (binding.get("$ref" ) != null) { - return jsonParser.readValueAs(Reference.class); - } - - switch (bindingKey) { - case "amqp": return jsonParser.readValueAs(AMQPOperationBinding.class); - case "amqp1": return jsonParser.readValueAs(AMQP1OperationBinding.class); - case "anypointmq": return jsonParser.readValueAs(AnypointMQOperationBinding.class); - case "googlepubsub": return jsonParser.readValueAs(GooglePubSubOperationBinding.class); - case "http": return jsonParser.readValueAs(HTTPOperationBinding.class); - case "ibmmq": return jsonParser.readValueAs(IBMMQOperationBinding.class); - case "jms": return jsonParser.readValueAs(JMSOperationBinding.class); - case "kafka": return jsonParser.readValueAs(KafkaOperationBinding.class); - case "mercure": return jsonParser.readValueAs(MercureOperationBinding.class); - case "mqtt": return jsonParser.readValueAs(MQTTOperationBinding.class); - case "mqtt5": return jsonParser.readValueAs(MQTT5OperationBinding.class); - case "nats": return jsonParser.readValueAs(NATSOperationBinding.class); - case "pulsar": return jsonParser.readValueAs(PulsarOperationBinding.class); - case "redis": return jsonParser.readValueAs(RedisOperationBinding.class); - case "sns": return jsonParser.readValueAs(SNSOperationBinding.class); - case "solace": return jsonParser.readValueAs(SolaceOperationBinding.class); - case "sqs": return jsonParser.readValueAs(SQSOperationBinding.class); - case "stomp": return jsonParser.readValueAs(STOMPOperationBinding.class); - case "ws": return jsonParser.readValueAs(WebSocketsOperationBinding.class); - default: return null; - } - } - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/jackson/binding/server/ServerBindingsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v2/jackson/binding/server/ServerBindingsDeserializer.java deleted file mode 100644 index a896051d..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/jackson/binding/server/ServerBindingsDeserializer.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.asyncapi.v2.jackson.binding.server; - -import com.asyncapi.v2.Reference; -import com.asyncapi.v2.binding.server.amqp.AMQPServerBinding; -import com.asyncapi.v2.binding.server.amqp1.AMQP1ServerBinding; -import com.asyncapi.v2.binding.server.anypointmq.AnypointMQServerBinding; -import com.asyncapi.v2.binding.server.googlepubsub.GooglePubSubServerBinding; -import com.asyncapi.v2.binding.server.http.HTTPServerBinding; -import com.asyncapi.v2.binding.server.ibmmq.IBMMQServerBinding; -import com.asyncapi.v2.binding.server.jms.JMSServerBinding; -import com.asyncapi.v2.binding.server.kafka.KafkaServerBinding; -import com.asyncapi.v2.binding.server.mercure.MercureServerBinding; -import com.asyncapi.v2.binding.server.mqtt.MQTTServerBinding; -import com.asyncapi.v2.binding.server.mqtt5.MQTT5ServerBinding; -import com.asyncapi.v2.binding.server.nats.NATSServerBinding; -import com.asyncapi.v2.binding.server.pulsar.PulsarServerBinding; -import com.asyncapi.v2.binding.server.redis.RedisServerBinding; -import com.asyncapi.v2.binding.server.sns.SNSServerBinding; -import com.asyncapi.v2.binding.server.solace.SolaceServerBinding; -import com.asyncapi.v2.binding.server.sqs.SQSServerBinding; -import com.asyncapi.v2.binding.server.stomp.STOMPServerBinding; -import com.asyncapi.v2.binding.server.ws.WebSocketsServerBinding; -import com.asyncapi.v2.jackson.BindingsMapDeserializer; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -/** - * Serializes server bindings map. - * - * @version 2.6.0 - * @author Pavel Bodiachevskii - */ -public class ServerBindingsDeserializer extends BindingsMapDeserializer { - - @Override - public Object chooseKnownPojo(String bindingKey, JsonNode binding, ObjectCodec objectCodec) throws IOException { - try (JsonParser jsonParser = binding.traverse(objectCodec)) { - if (binding.get("$ref" ) != null) { - return jsonParser.readValueAs(Reference.class); - } - - switch (bindingKey) { - case "amqp": return jsonParser.readValueAs(AMQPServerBinding.class); - case "amqp1": return jsonParser.readValueAs(AMQP1ServerBinding.class); - case "anypointmq": return jsonParser.readValueAs(AnypointMQServerBinding.class); - case "googlepubsub": return jsonParser.readValueAs(GooglePubSubServerBinding.class); - case "http": return jsonParser.readValueAs(HTTPServerBinding.class); - case "ibmmq": return jsonParser.readValueAs(IBMMQServerBinding.class); - case "jms": return jsonParser.readValueAs(JMSServerBinding.class); - case "kafka": return jsonParser.readValueAs(KafkaServerBinding.class); - case "mercure": return jsonParser.readValueAs(MercureServerBinding.class); - case "mqtt": return jsonParser.readValueAs(MQTTServerBinding.class); - case "mqtt5": return jsonParser.readValueAs(MQTT5ServerBinding.class); - case "nats": return jsonParser.readValueAs(NATSServerBinding.class); - case "pulsar": return jsonParser.readValueAs(PulsarServerBinding.class); - case "redis": return jsonParser.readValueAs(RedisServerBinding.class); - case "sns": return jsonParser.readValueAs(SNSServerBinding.class); - case "solace": return jsonParser.readValueAs(SolaceServerBinding.class); - case "sqs": return jsonParser.readValueAs(SQSServerBinding.class); - case "stomp": return jsonParser.readValueAs(STOMPServerBinding.class); - case "ws": return jsonParser.readValueAs(WebSocketsServerBinding.class); - default: return null; - } - } - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/schema/Schema.java b/asyncapi-core/src/main/java/com/asyncapi/v2/schema/Schema.java deleted file mode 100644 index 42c71db3..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/schema/Schema.java +++ /dev/null @@ -1,696 +0,0 @@ -package com.asyncapi.v2.schema; - -import com.asyncapi.v2.ExtendableObject; -import com.asyncapi.v2._0_0.jackson.model.schema.SchemasAdditionalPropertiesDeserializer; -import com.asyncapi.v2._0_0.model.ExternalDocumentation; -import com.asyncapi.v2.jackson.SchemaItemsDeserializer; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -import java.math.BigDecimal; -import java.util.List; -import java.util.Map; - -// TODO: Finish. Not all properties are present. -// TODO: Write tests - -/** - * 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. - *
- * Further information about the properties can be found in JSON Schema Core and JSON Schema Validation. - * Unless stated otherwise, the property definitions follow the JSON Schema specification as referenced here. - *

- * The AsyncAPI Schema Object is a JSON Schema vocabulary which extends JSON Schema Core and Validation vocabularies. - * As such, any keyword available for those vocabularies is by definition available in AsyncAPI, and will work the - * exact same way, including but not limited to defined properties. - *

- * New properties may appear in this class after community requests. - * - * @see AnyncAPI Schema Object - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class Schema extends ExtendableObject { - - /* - Schema Annotations - - Schema validation is a useful mechanism for annotating instance data - with additional information. The rules for determining when and how - annotations are associated with an instance are outlined in section - 3.3. - - These general-purpose annotation keywords provide commonly used - information for documentation and user interface display purposes. - They are not intended to form a comprehensive set of features. - Rather, additional vocabularies can be defined for more complex - annotation-based applications. - */ - - /** - * The value of these keyword MUST be a string. - *

- * This keywords can be used to decorate a user interface with information about the data produced by this user - * interface. - *

- * A title will preferably be short - */ - @Nullable - @JsonProperty - public String title; - - /** - * The value of these keyword MUST be a string. - *

- * This property definition was adjusted to the AsyncAPI Specification. - * CommonMark syntax can be used for rich text representation. - *

- * This keywords can be used to decorate a user interface with information about the data produced by this user - * interface. - *

- * A description will provide explanation about the purpose of the instance described by this schema. - */ - @Nullable - @JsonProperty - public String description; - - /** - * There are no restrictions placed on the value of this keyword. When multiple occurrences of this keyword are - * applicable to a single sub-instance, implementations SHOULD remove duplicates. - *

- * This keyword can be used to supply a default JSON value associated with a particular schema. - * It is RECOMMENDED that a default value be valid against the associated schema. - *

- * This property definition was adjusted to the AsyncAPI Specification. - * The default value represents what would be assumed by the consumer of the input as the value of the schema if one - * is not provided. Unlike JSON Schema, the value MUST conform to the defined type for the Schema Object defined at - * the same level. For example, of type is string, then default can be "foo" but cannot be 1. - */ - @Nullable - @JsonProperty("default") - public Object defaultValue; - - /** - * The value of this keyword MUST be a boolean. When multiple occurrences of this keyword are applicable to a - * single sub-instance, the resulting value MUST be true if any occurrence specifies a true value, and MUST be false otherwise. - *

- * If "readOnly" has a value of boolean true, it indicates that the value of the instance is managed exclusively by the owning authority, - * and attempts by an application to modify the value of this property are expected to be ignored or rejected by that owning authority. - *

- * An instance document that is marked as "readOnly for the entire document MAY be ignored if sent to the owning authority, or MAY - * result in an error, at the authority's discretion. - *

- * For example, "readOnly" would be used to mark a database-generated serial number as read-only, while "writeOnly" would be used to mark a - * password input field. - *

- * This keyword can be used to assist in user interface instance generation. In particular, an application MAY choose to use a widget - * that hides input values as they are typed for write-only fields. - *

- * Omitting this keyword has the same behavior as values of false. - */ - @Nullable - @JsonProperty - public Boolean readOnly; - - /** - * The value of this keyword MUST be a boolean. When multiple occurrences of this keyword are applicable to a - * single sub-instance, the resulting value MUST be true if any occurrence specifies a true value, and MUST be false otherwise. - *

- * If "writeOnly" has a value of boolean true, it indicates that the value is never present when the instance is retrieved from the owning - * authority. It can be present when sent to the owning authority to update or create the document (or the resource it represents), but it - * will not be included in any updated or newly created version of the instance. - *

- * An instance document that is marked as "writeOnly" for the entire document MAY be returned as a blank document of some sort, or MAY - * produce an error upon retrieval, or have the retrieval request ignored, at the authority's discretion. - *

- * This keyword can be used to assist in user interface instance generation. In particular, an application MAY choose to use a widget - * that hides input values as they are typed for write-only fields. - *

- * Omitting this keyword has the same behavior as values of false. - */ - @Nullable - @JsonProperty - public Boolean writeOnly; - - /** - * The value of this keyword MUST be an array. There are no restrictions placed on the values within the array. - * When multiple occurrences of this keyword are applicable to a single sub-instance, implementations MUST provide - * a flat array of all values rather than an array of arrays. - *

- * This keyword can be used to provide sample JSON values associated with a particular schema, for the purpose of - * illustrating usage. It is RECOMMENDED that these values be valid against the associated schema. - *

- * Implementations MAY use the value(s) of "default", if present, as an additional example. If "examples" is absent, - * "default" MAY still be used in this manner. - */ - @Nullable - @JsonProperty - public List examples; - - @Nullable - @JsonProperty("$ref") - private String ref; - - /* - String-Encoding Non-JSON Data - - Foreword - - Properties defined in this section indicate that an instance contains - non-JSON data encoded in a JSON string. They describe the type of - content and how it is encoded. - - These properties provide additional information required to interpret - JSON data as rich multimedia documents. - - Implementation Requirements - - The content keywords function as both annotations (Section 3.3) and - as assertions (Section 3.2). While no special effort is required to - implement them as annotations conveying how applications can - interpret the data in the string, implementing validation of - conformance to the media type and encoding is non-trivial. - - Implementations MAY support the "contentMediaType" and - "contentEncoding" keywords as validation assertions. Should they - choose to do so, they SHOULD offer an option to disable validation - for these keywords. - */ - - /** - * If the instance value is a string, this property defines that the string SHOULD be interpreted as binary data and - * decoded using the encoding named by this property. RFC 2045, Sec 6.1 [RFC2045] lists the possible values for this property. - *

- * The value of this property MUST be a string. - *

- * The value of this property SHOULD be ignored if the instance described is not a string. - */ - @Nullable - @JsonProperty - private String contentEncoding; - - /** - * The value of this property must be a media type, as defined by RFC 2046 [RFC2046]. This property defines the media - * type of instances which this schema defines. - *

- * The value of this property MUST be a string. - *

- * The value of this property SHOULD be ignored if the instance described is not a string. - *

- * If the "contentEncoding" property is not present, but the instance value is a string, then the value of this property SHOULD specify a - * text document type, and the character set SHOULD be the character set into which the JSON string value was decoded (for which the default - * is Unicode). - */ - @Nullable - @JsonProperty - private String contentMediaType; - - /* - Validation. - */ - - /* - Validation Keywords for Any Instance Type - */ - - /** - * The value of this keyword MUST be either a string or an array. If it is an array, elements of the array MUST - * be strings and MUST be unique. - *
- * String values MUST be one of the six primitive types ("null", "boolean", "object", "array", "number", or "string"), - * or "integer" which matches any number with a zero fractional part. - *
- * An instance validates if and only if the instance is in any of the sets listed for this keyword. - * - */ - @Nullable - @JsonProperty - public Object type; - - /** - * The value of this keyword MUST be an array. This array SHOULD have at least one element. Elements in the array SHOULD be unique. - *
- * An instance validates successfully against this keyword if its value is equal to one of the elements in this keyword's array value. - *
- * Elements in the array might be of any value, including null. - */ - @Nullable - @JsonProperty("enum") - public List enumValue; - - /** - * The value of this keyword MAY be of any type, including null. - *
- * An instance validates successfully against this keyword if its value is equal to the value of the keyword. - */ - @Nullable - @JsonProperty("const") - public Object constValue; - - /* - Validation Keywords for Numeric Instances (number and integer) - */ - - /** - * The value of "multipleOf" MUST be a number, strictly greater than 0. - *
- * A numeric instance is valid only if division by this keyword's value results in an integer. - */ - @Nullable - @JsonProperty - public Number multipleOf; - - /** - * The value of "maximum" MUST be a number, representing an inclusive upper limit for a numeric instance. - *
- * If the instance is a number, then this keyword validates only if the instance is less than or exactly equal to "maximum". - */ - @Nullable - @JsonProperty - public BigDecimal maximum; - - /** - * The value of "exclusiveMaximum" MUST be number, representing an exclusive upper limit for a numeric instance. - *
- * If the instance is a number, then the instance is valid only if it has a value strictly less than (not equal to) "exclusiveMaximum". - */ - @Nullable - @JsonProperty - public BigDecimal exclusiveMaximum; - - /** - * The value of "minimum" MUST be a number, representing an inclusive lower limit for a numeric instance. - *
- * If the instance is a number, then this keyword validates only if the instance is greater than or exactly equal to "minimum". - */ - @Nullable - @JsonProperty - public BigDecimal minimum; - - /** - * The value of "exclusiveMinimum" MUST be number, representing an exclusive lower limit for a numeric instance. - *
- * If the instance is a number, then the instance is valid only if it has a value strictly greater than (not equal to) "exclusiveMinimum". - */ - @Nullable - @JsonProperty - public BigDecimal exclusiveMinimum; - - /* - Validation Keywords for Strings - */ - - /** - * The value of this keyword MUST be a non-negative integer. - *
- * A string instance is valid against this keyword if its length is less than, or equal to, the value of this keyword. - *
- * The length of a string instance is defined as the number of its characters as defined by RFC 7159 [RFC7159]. - */ - @Nullable - @JsonProperty - public Integer maxLength; - - /** - * The value of this keyword MUST be a non-negative integer. - *
- * A string instance is valid against this keyword if its length is greater than, or equal to, the value of this keyword. - *
- * The length of a string instance is defined as the number of its characters as defined by RFC 7159 [RFC7159]. - *
- * Omitting this keyword has the same behavior as a value of 0. - */ - @Nullable - @JsonProperty - public Integer minLength; - - /** - * The value of this keyword MUST be a string. This string SHOULD be a valid regular expression, according - * to the ECMA 262 regular expression dialect. - *
- * A string instance is considered valid if the regular expression matches the instance successfully. - * Recall: regular expressions are not implicitly anchored. - */ - @Nullable - @JsonProperty - public String pattern; - - /* - Validation Keywords for Arrays - */ - - /** - * The value of "items" MUST be either a valid JSON Schema or an array of valid JSON Schemas. - *
- * This keyword determines how child instances validate for arrays, and does not directly validate the immediate instance itself. - *
- * If "items" is a schema, validation succeeds if all elements in the array successfully validate against that schema. - *
- * If "items" is an array of schemas, validation succeeds if each element of the instance validates against the schema at the same - * position, if any. - *
- * Omitting this keyword has the same behavior as an empty schema. - */ - @Nullable - @JsonDeserialize(using = SchemaItemsDeserializer.class) - public Object items; - - /** - * The value of "additionalItems" MUST be a valid JSON Schema. - *
- * This keyword determines how child instances validate for arrays, and does not directly validate the immediate instance itself. - *
- * If "items" is an array of schemas, validation succeeds if every instance element at a position greater than the size of "items" - * validates against "additionalItems". - *
- * Otherwise, "additionalItems" MUST be ignored, as the "items" schema (possibly the default value of an empty schema) is applied - * to all elements. - *
- * Omitting this keyword has the same behavior as an empty schema. - */ - @Nullable - public Schema additionalItems; - - /** - * The value of this keyword MUST be a non-negative integer. - *
- * An array instance is valid against "maxItems" if its size is less than, or equal to, the value of this keyword. - */ - @Nullable - @JsonProperty - public Integer maxItems; - - /** - * The value of this keyword MUST be a non-negative integer. - *
- * An array instance is valid against "minItems" if its size is greater than, or equal to, the value of this keyword. - *
- * Omitting this keyword has the same behavior as a value of 0. - */ - @Nullable - @JsonProperty - public Integer minItems; - - /** - * The value of this keyword MUST be a boolean. - *
- * If this keyword has boolean value false, the instance validates successfully. If it has boolean value true, - * the instance validates successfully if all of its elements are unique. - *
- * Omitting this keyword has the same behavior as a value of false. - */ - @Nullable - @JsonProperty - public Boolean uniqueItems; - - /** - * The value of this keyword MUST be a valid JSON Schema. - *
- * An array instance is valid against "contains" if at least one of its elements is valid against the given schema. - */ - @Nullable - @JsonProperty - public Schema contains; - - /* - Validation Keywords for Objects - */ - - /** - * The value of this keyword MUST be a non-negative integer. - *
- * An object instance is valid against "maxProperties" if its number of properties is less than, or equal to, - * the value of this keyword. - */ - @Nullable - @JsonProperty - public Integer maxProperties; - - /** - * The value of this keyword MUST be a non-negative integer. - *

- * An object instance is valid against "minProperties" if its number of properties is greater than, or equal to, - * the value of this keyword. - *

- * Omitting this keyword has the same behavior as a value of 0. - */ - @Nullable - @JsonProperty - public Integer minProperties; - - /** - * The value of this keyword MUST be an array. Elements of this array, if any, MUST be strings, and MUST be unique. - *

- * An object instance is valid against this keyword if every item in the array is the name of a property in the instance. - *

- * Omitting this keyword has the same behavior as an empty array. - */ - @Nullable - @JsonProperty - public List required; - - /** - * The value of "properties" MUST be an object. Each value of this object MUST be a valid JSON Schema. - *

- * This keyword determines how child instances validate for objects, and does not directly validate the immediate - * instance itself. - *

- * Validation succeeds if, for each name that appears in both the instance and as a name within this keyword's value, - * the child instance for that name successfully validates against the corresponding schema. - *

- * Omitting this keyword has the same behavior as an empty object. - */ - @Nullable - @JsonProperty - public Map properties; - - /** - * The value of "patternProperties" MUST be an object. Each property name of this object SHOULD be a valid regular - * expression, according to the ECMA 262 regular expression dialect. Each property value of this object MUST be a - * valid JSON Schema. - *

- * This keyword determines how child instances validate for objects, and does not directly validate the immediate - * instance itself. Validation of the primitive instance type against this keyword always succeeds. - *

- * Validation succeeds if, for each instance name that matches any regular expressions that appear as a property name - * in this keyword's value, the child instance for that name successfully validates against each schema that corresponds - * to a matching regular expression. - *

- * Omitting this keyword has the same behavior as an empty object. - */ - @Nullable - @JsonProperty - public Map patternProperties; - - /** - * The value of "additionalProperties" MUST be a valid JSON Schema. - *

- * This keyword determines how child instances validate for objects, and does not directly validate the immediate - * instance itself. - *

- * Validation with "additionalProperties" applies only to the child values of instance names that do not match any - * names in "properties", and do not match any regular expression in "patternProperties". - *

- * For all such properties, validation succeeds if the child instance validates against the "additionalProperties" schema. - *

- * Omitting this keyword has the same behavior as an empty schema. - */ - @Nullable - @JsonProperty - @JsonDeserialize(using = SchemasAdditionalPropertiesDeserializer.class) - public Object additionalProperties; - - /** - * [[CREF1: This keyword may be split into two, with the variation that uses an array of property names rather than a - * subschema getting a new name. The dual behavior is confusing and relatively difficult to implement. In the previous - * draft, we proposed dropping the keyword altogether, or dropping one of its forms, but we received feedback in support of - * keeping it. See issues #442 and #528 at https://github.com/json-schema-org/json-schema-spec/issues for further discussion. - * Further feedback is encouraged.]] - *

- * This keyword specifies rules that are evaluated if the instance is an object and contains a certain property. - *

- * This keyword's value MUST be an object. Each property specifies a dependency. Each dependency value MUST be an array - * or a valid JSON Schema. - *

- * If the dependency value is a subschema, and the dependency key is a property in the instance, the entire instance must validate - * against the dependency value. - *

- * If the dependency value is an array, each element in the array, if any, MUST be a string, and MUST be unique. If the dependency - * key is a property in the instance, each of the items in the dependency value must be a property that exists in the instance. - *

- * Omitting this keyword has the same behavior as an empty object. - */ - @Nullable - @JsonProperty - public Object dependencies; - - /** - * The value of "propertyNames" MUST be a valid JSON Schema. - *

- * If the instance is an object, this keyword validates if every property name in the instance validates against the provided schema. - * Note the property name that the schema is testing will always be a string. - *

- * Omitting this keyword has the same behavior as an empty schema. - */ - @Nullable - @JsonProperty - public Schema propertyNames; - - /* - Keywords for Applying Subschemas Conditionally - - These keywords work together to implement conditional application of - a subschema based on the outcome of another subschema. - - These keywords MUST NOT interact with each other across subschema - boundaries. In other words, an "if" in one branch of an "allOf" MUST - NOT have an impact on a "then" or "else" in another branch. - - There is no default behavior for any of these keywords when they are - not present. In particular, they MUST NOT be treated as if present - with an empty schema, and when "if" is not present, both "then" and - "else" MUST be entirely ignored. - */ - - /** - * This keyword's value MUST be a valid JSON Schema. - *

- * This validation outcome of this keyword's subschema has no direct effect on the overall validation result. - * Rather, it controls which of the "then" or "else" keywords are evaluated. - *

- * Instances that successfully validate against this keyword's subschema MUST also be valid against the subschema - * value of the "then" keyword, if present. - *

- * Instances that fail to validate against this keyword's subschema MUST also be valid against the subschema value of - * the "else" keyword, if present. - *

- * If annotations (Section 3.3) are being collected, they are collected from this keyword's subschema in the usual way, - * including when the keyword is present without either "then" or "else". - */ - @JsonProperty("if") - @Nullable - public Schema ifValue; - - /** - * This keyword's value MUST be a valid JSON Schema. - *

- * When "if" is present, and the instance successfully validates against its subschema, then valiation succeeds against - * this keyword if the instance also successfully validates against this keyword's subschema. - *

- * This keyword has no effect when "if" is absent, or when the instance fails to validate against its subschema. - * Implementations MUST NOT evaluate the instance against this keyword, for either validation or annotation collection - * purposes, in such cases. - */ - @JsonProperty("then") - @Nullable - public Schema thenValue; - - /** - * This keyword's value MUST be a valid JSON Schema. - *

- * When "if" is present, and the instance fails to validate against its subschema, then valiation succeeds against this - * keyword if the instance successfully validates against this keyword's subschema. - *

- * This keyword has no effect when "if" is absent, or when the instance successfully validates against its subschema. - * Implementations MUST NOT evaluate the instance against this keyword, for either validation or annotation collection - * purposes, in such cases. - */ - @JsonProperty("else") - @Nullable - public Schema elseValue; - - /* - Keywords for Applying Subschemas With Boolean Logic - */ - - /** - * This keyword's value MUST be a non-empty array. Each item of the array MUST be a valid JSON Schema. - *

- * An instance validates successfully against this keyword if it validates successfully against all schemas defined - * by this keyword's value. - */ - @Nullable - @JsonProperty - public List allOf; - - /** - * This keyword's value MUST be a non-empty array. Each item of the array MUST be a valid JSON Schema. - *

- * An instance validates successfully against this keyword if it validates successfully against at least one schema - * defined by this keyword's value. - */ - @Nullable - @JsonProperty - public List anyOf; - - /** - * This keyword's value MUST be a non-empty array. Each item of the array MUST be a valid JSON Schema. - *

- * An instance validates successfully against this keyword if it validates successfully against exactly one schema - * defined by this keyword's value. - */ - @Nullable - @JsonProperty - public List oneOf; - - /** - * This keyword's value MUST be a valid JSON Schema. - *

- * An instance is valid against this keyword if it fails to validate successfully against the schema defined by this keyword. - */ - @Nullable - @JsonProperty - public Schema not; - - // Fields defined in AsyncAPI below - - /* - The following properties are taken from the JSON Schema definition but their definitions were adjusted to the AsyncAPI Specification. - */ - /** - * See Data Type Formats for further details. - * While relying on JSON Schema's defined formats, the AsyncAPI Specification offers a few additional predefined formats. - */ - @Nullable - @JsonProperty - public Object format; - - /* - In addition to the JSON Schema fields, the following AsyncAPI vocabulary fields MAY be used for further schema documentation: - */ - /** - * 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. - */ - @Nullable - @JsonProperty - public String discriminator; - /** - * Additional external documentation for this schema. - */ - @Nullable - @JsonProperty - public ExternalDocumentation externalDocs; - - /** - * Specifies that a schema is deprecated and SHOULD be transitioned out of usage. Default value is false. - */ - @Nullable - @JsonProperty - public Boolean deprecated; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/schema/Type.java b/asyncapi-core/src/main/java/com/asyncapi/v2/schema/Type.java deleted file mode 100644 index 1a0572aa..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/schema/Type.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.asyncapi.v2.schema; - -/** - * @author Pavel Bodiachevskii - */ -public class Type { - - public final static String NULL = "null"; - public final static String BOOLEAN = "boolean"; - public final static String OBJECT = "object"; - public final static String ARRAY = "array"; - public final static String NUMBER = "number"; - public final static String STRING = "string"; - public final static String INTEGER = "integer"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/ApiKeySecurityScheme.java b/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/ApiKeySecurityScheme.java deleted file mode 100644 index f9dd75d4..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/ApiKeySecurityScheme.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.asyncapi.v2.security_scheme; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * @version 2.6.0 - * @see SecurityScheme - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class ApiKeySecurityScheme extends SecurityScheme { - - /** - * REQUIRED. - *

- * The location of the API key. - */ - @NotNull - private ApiKeyLocation in = ApiKeyLocation.USER; - - @Builder(builderMethodName = "apiKeyBuilder") - public ApiKeySecurityScheme(@Nullable String description, - @NotNull ApiKeyLocation in) { - super(Type.API_KEY, description); - this.in = in; - } - - public enum ApiKeyLocation { - - @JsonProperty("user") - USER, - @JsonProperty("password") - PASSWORD - - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/OpenIdConnectSecurityScheme.java b/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/OpenIdConnectSecurityScheme.java deleted file mode 100644 index e1e52549..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/OpenIdConnectSecurityScheme.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.asyncapi.v2.security_scheme; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * @version 2.6.0 - * @see SecurityScheme - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class OpenIdConnectSecurityScheme extends SecurityScheme { - - /** - * REQUIRED. - *

- * OpenId Connect URL to discover OAuth2 configuration values. This MUST be in the form of a URL. - */ - @NotNull - private String openIdConnectUrl = ""; - - @Builder(builderMethodName = "openIdBuilder") - public OpenIdConnectSecurityScheme(@Nullable String description, - @NotNull String openIdConnectUrl) { - super(Type.OPENID_CONNECT, description); - this.openIdConnectUrl = openIdConnectUrl; - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/SecurityScheme.java b/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/SecurityScheme.java deleted file mode 100644 index c250e778..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/SecurityScheme.java +++ /dev/null @@ -1,123 +0,0 @@ -package com.asyncapi.v2.security_scheme; - -import com.asyncapi.v2.ExtendableObject; -import com.asyncapi.v2.security_scheme.http.HttpApiKeySecurityScheme; -import com.asyncapi.v2.security_scheme.http.HttpSecurityScheme; -import com.asyncapi.v2.security_scheme.oauth2.OAuth2SecurityScheme; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonSubTypes; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * Defines a security scheme that can be used by the operations. Supported schemes are: - *

    - *
  • User/Password.
  • - *
  • API key (either as user or as password).
  • - *
  • X.509 certificate.
  • - *
  • End-to-end encryption (either symmetric or asymmetric).
  • - *
  • HTTP authentication.
  • - *
  • HTTP API key.
  • - *
  • OAuth2’s common flows (Implicit, Resource Owner Protected Credentials, Client Credentials and Authorization Code) as defined in RFC6749.
  • - *
  • OpenID Connect Discovery.
  • - *
  • SASL (Simple Authentication and Security Layer) as defined in RFC4422.
  • - *
- * - * This object MAY be extended with Specification Extensions. - * - * @version 2.6.0 - * @see Security Scheme Object - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@JsonTypeInfo( - use = JsonTypeInfo.Id.NAME, - include = JsonTypeInfo.As.EXISTING_PROPERTY, - property = "type", - visible = true -) -@JsonSubTypes({ - @JsonSubTypes.Type(value = SecurityScheme.class, name = "userPassword"), - @JsonSubTypes.Type(value = ApiKeySecurityScheme.class, name = "apiKey"), - @JsonSubTypes.Type(value = SecurityScheme.class, name = "X509"), - @JsonSubTypes.Type(value = SecurityScheme.class, name = "symmetricEncryption"), - @JsonSubTypes.Type(value = SecurityScheme.class, name = "asymmetricEncryption"), - @JsonSubTypes.Type(value = HttpApiKeySecurityScheme.class, name = "httpApiKey"), - @JsonSubTypes.Type(value = HttpSecurityScheme.class, name = "http"), - @JsonSubTypes.Type(value = OAuth2SecurityScheme.class, name = "oauth2"), - @JsonSubTypes.Type(value = OpenIdConnectSecurityScheme.class, name = "openIdConnect"), - @JsonSubTypes.Type(value = SecurityScheme.class, name = "plain"), - @JsonSubTypes.Type(value = SecurityScheme.class, name = "scramSha256"), - @JsonSubTypes.Type(value = SecurityScheme.class, name = "scramSha512"), - @JsonSubTypes.Type(value = SecurityScheme.class, name = "gssapi"), -}) -@EqualsAndHashCode(callSuper = true) -public class SecurityScheme extends ExtendableObject { - - /** - * REQUIRED. - *

- * The type of the security scheme. Valid values are: - *

    - *
  • userPassword
  • - *
  • apiKey
  • - *
  • X509
  • - *
  • symmetricEncryption
  • - *
  • asymmetricEncryption
  • - *
  • httpApiKey
  • - *
  • http
  • - *
  • oauth2
  • - *
  • openIdConnect
  • - *
- */ - @NotNull - @Builder.Default - private Type type = Type.USER_PASSWORD; - - /** - * A short description for security scheme. CommonMark syntax MAY be used for rich text representation. - */ - @Nullable - private String description; - - public enum Type { - - @JsonProperty("userPassword") - USER_PASSWORD, - @JsonProperty("apiKey") - API_KEY, - @JsonProperty("X509") - X509, - @JsonProperty("symmetricEncryption") - SYMMETRIC_ENCRYPTION, - @JsonProperty("asymmetricEncryption") - ASYMMETRIC_ENCRYPTION, - @JsonProperty("httpApiKey") - HTTP_API_KEY, - @JsonProperty("http") - HTTP, - @JsonProperty("oauth2") - OAUTH2, - @JsonProperty("openIdConnect") - OPENID_CONNECT, - @JsonProperty("plain") - PLAIN, - @JsonProperty("scramSha256") - SCRAM_SHA256, - @JsonProperty("scramSha512") - SCRAM_SHA512, - @JsonProperty("gssapi") - GSSAPI - - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/http/HttpApiKeySecurityScheme.java b/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/http/HttpApiKeySecurityScheme.java deleted file mode 100644 index 13786bae..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/http/HttpApiKeySecurityScheme.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.asyncapi.v2.security_scheme.http; - -import com.asyncapi.v2.security_scheme.SecurityScheme; -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * @version 2.6.0 - * @see SecurityScheme - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class HttpApiKeySecurityScheme extends SecurityScheme { - - /** - * REQUIRED. - *

- * The name of the header, query or cookie parameter to be used. - */ - @NotNull - private String name = ""; - - /** - * REQUIRED. - *

- * The location of the API key. - */ - @Nullable - private ApiKeyLocation in; - - @Builder(builderMethodName = "httpApiKeyBuilder") - public HttpApiKeySecurityScheme(@Nullable String description, - @NotNull String name, - @Nullable ApiKeyLocation in) { - super(Type.HTTP_API_KEY, description); - this.name = name; - this.in = in; - } - - public enum ApiKeyLocation { - - @JsonProperty("query") - QUERY, - @JsonProperty("header") - HEADER, - @JsonProperty("cookie") - COOKIE - - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/http/HttpSecurityScheme.java b/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/http/HttpSecurityScheme.java deleted file mode 100644 index 63b77d0a..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/http/HttpSecurityScheme.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.asyncapi.v2.security_scheme.http; - -import com.asyncapi.v2.security_scheme.SecurityScheme; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * @version 2.6.0 - * @see SecurityScheme - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class HttpSecurityScheme extends SecurityScheme { - - /** - * REQUIRED. - *

- * The name of the HTTP Authorization scheme to be used in the Authorization header as defined in RFC7235. - */ - @NotNull - private String scheme = ""; - - /** - * 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. - */ - @Nullable - private String bearerFormat; - - @Builder(builderMethodName = "httpBuilder") - public HttpSecurityScheme(@Nullable String description, - @NotNull String scheme, - @Nullable String bearerFormat) { - super(Type.HTTP, description); - this.scheme = scheme; - this.bearerFormat = bearerFormat; - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/oauth2/OAuth2SecurityScheme.java b/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/oauth2/OAuth2SecurityScheme.java deleted file mode 100644 index 7bb2b660..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/oauth2/OAuth2SecurityScheme.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.asyncapi.v2.security_scheme.oauth2; - -import com.asyncapi.v2.security_scheme.SecurityScheme; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * @version 2.6.0 - * @see SecurityScheme - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class OAuth2SecurityScheme extends SecurityScheme { - - /** - * REQUIRED. - *

- * An object containing configuration information for the flow types supported. - */ - @NotNull - private OAuthFlows flows = new OAuthFlows(); - - @Builder(builderMethodName = "oauth2Builder") - public OAuth2SecurityScheme(@Nullable String description, - @NotNull OAuthFlows flows) { - super(Type.OAUTH2, description); - this.flows = flows; - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/oauth2/OAuthFlows.java b/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/oauth2/OAuthFlows.java deleted file mode 100644 index 835b636f..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/oauth2/OAuthFlows.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.asyncapi.v2.security_scheme.oauth2; - -import com.asyncapi.v2.ExtendableObject; -import com.asyncapi.v2.security_scheme.oauth2.flow.AuthorizationCodeOAuthFlow; -import com.asyncapi.v2.security_scheme.oauth2.flow.ClientCredentialsOAuthFlow; -import com.asyncapi.v2.security_scheme.oauth2.flow.ImplicitOAuthFlow; -import com.asyncapi.v2.security_scheme.oauth2.flow.PasswordOAuthFlow; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -/** - * Allows configuration of the supported OAuth Flows. - *

- * This object MAY be extended with Specification Extensions. - * - * @version 2.6.0 - * @see OAuth Flows Object - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class OAuthFlows extends ExtendableObject { - - /** - * Configuration for the OAuth Implicit flow - */ - @Nullable - private ImplicitOAuthFlow implicit; - - /** - * Configuration for the OAuth Resource Owner Protected Credentials flow - */ - @Nullable - private PasswordOAuthFlow password; - - /** - * Configuration for the OAuth Client Credentials flow. - */ - @Nullable - private ClientCredentialsOAuthFlow clientCredentials; - - /** - * Configuration for the OAuth Authorization Code flow - */ - @Nullable - private AuthorizationCodeOAuthFlow authorizationCode; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/oauth2/flow/AuthorizationCodeOAuthFlow.java b/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/oauth2/flow/AuthorizationCodeOAuthFlow.java deleted file mode 100644 index 34aeba7f..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/oauth2/flow/AuthorizationCodeOAuthFlow.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.asyncapi.v2.security_scheme.oauth2.flow; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Map; - -/** - * This object MAY be extended with Specification Extensions. - * - * @version 2.6.0 - * @see OAuth Flow Object - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class AuthorizationCodeOAuthFlow extends OAuthFlow { - - /** - * REQUIRED. - *

- * The authorization URL to be used for this flow. This MUST be in the form of an absolute URL. - */ - @NotNull - private String authorizationUrl = ""; - - /** - * REQUIRED. - *

- * The token URL to be used for this flow. This MUST be in the form of an absolute URL. - */ - @NotNull - private String tokenUrl = ""; - - @Builder(builderMethodName = "authorizationCodeBuilder") - public AuthorizationCodeOAuthFlow(@Nullable String refreshUrl, - @NotNull Map scopes, - @NotNull String authorizationUrl, - @NotNull String tokenUrl) { - super(refreshUrl, scopes); - this.authorizationUrl = authorizationUrl; - this.tokenUrl = tokenUrl; - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/oauth2/flow/ClientCredentialsOAuthFlow.java b/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/oauth2/flow/ClientCredentialsOAuthFlow.java deleted file mode 100644 index 15e05e07..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/oauth2/flow/ClientCredentialsOAuthFlow.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.asyncapi.v2.security_scheme.oauth2.flow; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Map; - -/** - * @version 2.6.0 - * @see OAuth Flow Object - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class ClientCredentialsOAuthFlow extends OAuthFlow { - - /** - * REQUIRED. - *

- * The token URL to be used for this flow. This MUST be in the form of a URL. - */ - @NotNull - private String tokenUrl = ""; - - @Builder(builderMethodName = "clientCredentialsBuilder") - public ClientCredentialsOAuthFlow(@Nullable String refreshUrl, - @NotNull Map scopes, - @NotNull String tokenUrl) { - super(refreshUrl, scopes); - this.tokenUrl = tokenUrl; - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/oauth2/flow/ImplicitOAuthFlow.java b/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/oauth2/flow/ImplicitOAuthFlow.java deleted file mode 100644 index 6518da51..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/oauth2/flow/ImplicitOAuthFlow.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.asyncapi.v2.security_scheme.oauth2.flow; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Map; - -/** - * @version 2.6.0 - * @see OAuth Flow Object - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class ImplicitOAuthFlow extends OAuthFlow { - - /** - * REQUIRED. - *

- * The authorization URL to be used for this flow. This MUST be in the form of a URL - */ - @NotNull - private String authorizationUrl = ""; - - @Builder(builderMethodName = "implicitBuilder") - public ImplicitOAuthFlow(@Nullable String refreshUrl, - @NotNull Map scopes, - @NotNull String authorizationUrl) { - super(refreshUrl, scopes); - this.authorizationUrl = authorizationUrl; - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/oauth2/flow/OAuthFlow.java b/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/oauth2/flow/OAuthFlow.java deleted file mode 100644 index 27e63b29..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/oauth2/flow/OAuthFlow.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.asyncapi.v2.security_scheme.oauth2.flow; - -import com.asyncapi.v2.ExtendableObject; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.HashMap; -import java.util.Map; - -/** - * Configuration details for a supported OAuth Flow - *

- * This object MAY be extended with Specification Extensions. - * - * @version 2.6.0 - * @see OAuth Flow Object - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class OAuthFlow extends ExtendableObject { - - /** - * The URL to be used for obtaining refresh tokens. This MUST be in the form of an absolute URL. - */ - @Nullable - @Builder.Default - private String refreshUrl = ""; - - /** - * REQUIRED. - *

- * The available scopes for the OAuth2 security scheme. A map between the scope name and a short description for it. - */ - @NotNull - @Builder.Default - private Map scopes = new HashMap<>(); - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/oauth2/flow/PasswordOAuthFlow.java b/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/oauth2/flow/PasswordOAuthFlow.java deleted file mode 100644 index 693d219c..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v2/security_scheme/oauth2/flow/PasswordOAuthFlow.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.asyncapi.v2.security_scheme.oauth2.flow; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Map; - -/** - * @version 2.6.0 - * @see OAuth Flow Object - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class PasswordOAuthFlow extends OAuthFlow { - - /** - * REQUIRED. - *

- * The token URL to be used for this flow. This MUST be in the form of a URL. - */ - @NotNull - private String tokenUrl = ""; - - @Builder(builderMethodName = "passwordBuilder") - public PasswordOAuthFlow(@Nullable String refreshUrl, - @NotNull Map scopes, - @NotNull String tokenUrl) { - super(refreshUrl, scopes); - this.tokenUrl = tokenUrl; - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/ExtendableObject.java b/asyncapi-core/src/main/java/com/asyncapi/v3/ExtendableObject.java deleted file mode 100644 index f8bb988a..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/ExtendableObject.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.asyncapi.v3; - -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -import java.util.HashMap; -import java.util.Map; -import java.util.regex.Pattern; - -/** - * While the AsyncAPI Specification tries to accommodate most use cases, - * additional data can be added to extend the specification at certain points. - *

- * The extensions properties are implemented as patterned fields that are always prefixed by "x-". - *

- * The extensions may or may not be supported by the available tooling, but those may be extended as - * well to add requested support (if tools are internal or open-sourced). - * - * @see Specification Extensions - * @author Pavel Bodiachevskii - * @version 3.0.0 - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -@JsonIgnoreProperties({"extensionFields"}) -public class ExtendableObject { - - private static final Pattern extensionPropertyNamePattern = Pattern.compile("^x-[\\w.\\x2d_]+$"); - - /** - * Extension fields in the form x-extension-field-name for the exposed API. - */ - @Nullable - @JsonAnyGetter - protected Map extensionFields; - - @JsonAnySetter - protected final void readExtensionProperty(String name, Object value) { - if (extensionPropertyNamePattern.matcher(name).matches()) { - if (extensionFields == null) { - extensionFields = new HashMap<>(); - } - - extensionFields.put(name, value); - } else { - throw new IllegalArgumentException(String.format("\"%s\" is not valid extension property", name)); - } - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/Reference.java b/asyncapi-core/src/main/java/com/asyncapi/v3/Reference.java deleted file mode 100644 index 05ac7c2f..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/Reference.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.asyncapi.v3; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.NotNull; - -/** - * A simple object to allow referencing other components in the specification, internally and externally. - *

- * The Reference Object is defined by JSON Reference and follows the same structure, behavior and rules. - * A JSON Reference SHALL only be used to refer to a schema that is formatted in either JSON or YAML. - * In the case of a YAML-formatted Schema, the JSON Reference SHALL be applied to the JSON representation of - * that schema. The JSON representation SHALL be made by applying the conversion described here. - *

- * For this specification, reference resolution is done as defined by the JSON Reference specification and not by - * the JSON Schema specification. - *

- * This object cannot be extended with additional properties and any properties added SHALL be ignored. - * - * @see Reference - * @author Pavel Bodiachevskii - * @version 3.0.0 - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -public class Reference { - - /** - * Required. - *

- * The reference string. - */ - @NotNull - @JsonProperty(value = "$ref") - private String ref = ""; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/ExternalDocumentationDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/ExternalDocumentationDeserializer.java index b09ac314..5600b99b 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/ExternalDocumentationDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/ExternalDocumentationDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v3._0_0.jackson.model; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.model.ExternalDocumentation; -import com.asyncapi.v3.jackson.ReferenceOrObjectDeserializer; +import com.asyncapi.serde.ReferenceOrObjectDeserializer; /** * Deserializes external documentation. diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/TagsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/TagsDeserializer.java index 71e39397..f2f3d07f 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/TagsDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/TagsDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v3._0_0.jackson.model; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.model.Tag; -import com.asyncapi.v3.jackson.ListOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.ListOfReferencesOrObjectsDeserializer; /** * Deserializes tags. diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/channel/ChannelParametersDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/channel/ChannelParametersDeserializer.java index 88e86b94..70bef43f 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/channel/ChannelParametersDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/channel/ChannelParametersDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v3._0_0.jackson.model.channel; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.model.channel.Parameter; -import com.asyncapi.v3.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; /** * Serializes {@link com.asyncapi.v3._0_0.model.channel.Parameter} variables map. diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/channel/ChannelsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/channel/ChannelsDeserializer.java index c5cc3c01..4bacfb8c 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/channel/ChannelsDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/channel/ChannelsDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v3._0_0.jackson.model.channel; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.model.channel.Channel; -import com.asyncapi.v3.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; /** * Serializes component channels map. diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/channel/message/MessageCorrelationIdDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/channel/message/MessageCorrelationIdDeserializer.java index 7c0988c2..9adef810 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/channel/message/MessageCorrelationIdDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/channel/message/MessageCorrelationIdDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v3._0_0.jackson.model.channel.message; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.model.channel.message.CorrelationId; -import com.asyncapi.v3.jackson.ReferenceOrObjectDeserializer; +import com.asyncapi.serde.ReferenceOrObjectDeserializer; /** * Serializes message correlation id. diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/channel/message/MessageHeadersDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/channel/message/MessageHeadersDeserializer.java index 34d85cdc..2fd28c14 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/channel/message/MessageHeadersDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/channel/message/MessageHeadersDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v3._0_0.jackson.model.channel.message; -import com.asyncapi.v3.Reference; -import com.asyncapi.v3.schema.AsyncAPISchema; -import com.asyncapi.v3.schema.multiformat.MultiFormatSchema; +import com.asyncapi.schemas.asyncapi.Reference; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.schemas.asyncapi.multiformat.MultiFormatSchema; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.ObjectCodec; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/channel/message/MessagePayloadDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/channel/message/MessagePayloadDeserializer.java index 2de3a298..f948de77 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/channel/message/MessagePayloadDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/channel/message/MessagePayloadDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v3._0_0.jackson.model.channel.message; -import com.asyncapi.v3.Reference; -import com.asyncapi.v3.schema.multiformat.MultiFormatSchema; -import com.asyncapi.v3.schema.AsyncAPISchema; +import com.asyncapi.schemas.asyncapi.Reference; +import com.asyncapi.schemas.asyncapi.multiformat.MultiFormatSchema; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.ObjectCodec; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/channel/message/MessageTraitsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/channel/message/MessageTraitsDeserializer.java index c5e5058a..bacdf014 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/channel/message/MessageTraitsDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/channel/message/MessageTraitsDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v3._0_0.jackson.model.channel.message; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.model.channel.message.MessageTrait; -import com.asyncapi.v3.jackson.ListOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.ListOfReferencesOrObjectsDeserializer; /** * Deserializes message traits. diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/channel/message/MessagesDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/channel/message/MessagesDeserializer.java index 8438ddc2..38a83c52 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/channel/message/MessagesDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/channel/message/MessagesDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v3._0_0.jackson.model.channel.message; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.model.channel.message.Message; -import com.asyncapi.v3.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; /** * Serializes {@link Message} variables map. diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsChannelsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsChannelsDeserializer.java index 3a233979..1077bb7f 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsChannelsDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsChannelsDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v3._0_0.jackson.model.component; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.model.channel.Channel; -import com.asyncapi.v3.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; public class ComponentsChannelsDeserializer extends MapOfReferencesOrObjectsDeserializer { diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsCorrelationIdsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsCorrelationIdsDeserializer.java index 3ca82f14..beb773d3 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsCorrelationIdsDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsCorrelationIdsDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v3._0_0.jackson.model.component; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.model.channel.message.CorrelationId; -import com.asyncapi.v3.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; public class ComponentsCorrelationIdsDeserializer extends MapOfReferencesOrObjectsDeserializer { diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsExternalDocsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsExternalDocsDeserializer.java index 238f3197..c0b58032 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsExternalDocsDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsExternalDocsDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v3._0_0.jackson.model.component; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.model.ExternalDocumentation; -import com.asyncapi.v3.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; public class ComponentsExternalDocsDeserializer extends MapOfReferencesOrObjectsDeserializer { diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsMessageTraitsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsMessageTraitsDeserializer.java index 766c33c1..fd37ca2d 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsMessageTraitsDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsMessageTraitsDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v3._0_0.jackson.model.component; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.model.channel.message.MessageTrait; -import com.asyncapi.v3.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; public class ComponentsMessageTraitsDeserializer extends MapOfReferencesOrObjectsDeserializer { diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsMessagesDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsMessagesDeserializer.java index 26c6c2e6..c8219c55 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsMessagesDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsMessagesDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v3._0_0.jackson.model.component; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.model.channel.message.Message; -import com.asyncapi.v3.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; public class ComponentsMessagesDeserializer extends MapOfReferencesOrObjectsDeserializer { diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsOperationTraitsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsOperationTraitsDeserializer.java index 23e65e59..0c9dd2b2 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsOperationTraitsDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsOperationTraitsDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v3._0_0.jackson.model.component; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.model.operation.OperationTrait; -import com.asyncapi.v3.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; public class ComponentsOperationTraitsDeserializer extends MapOfReferencesOrObjectsDeserializer { diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsOperationsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsOperationsDeserializer.java index d78264e2..5e6379b1 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsOperationsDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsOperationsDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v3._0_0.jackson.model.component; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.model.operation.Operation; -import com.asyncapi.v3.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; public class ComponentsOperationsDeserializer extends MapOfReferencesOrObjectsDeserializer { diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsParametersDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsParametersDeserializer.java index b35829d3..9c326f29 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsParametersDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsParametersDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v3._0_0.jackson.model.component; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.model.channel.Parameter; -import com.asyncapi.v3.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; public class ComponentsParametersDeserializer extends MapOfReferencesOrObjectsDeserializer { diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsRepliesDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsRepliesDeserializer.java index 97f5e213..fb46d2f3 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsRepliesDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsRepliesDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v3._0_0.jackson.model.component; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.model.operation.reply.OperationReply; -import com.asyncapi.v3.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; public class ComponentsRepliesDeserializer extends MapOfReferencesOrObjectsDeserializer { diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsReplyAddressesDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsReplyAddressesDeserializer.java index 369f9154..a094bf78 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsReplyAddressesDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsReplyAddressesDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v3._0_0.jackson.model.component; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.model.operation.reply.OperationReplyAddress; -import com.asyncapi.v3.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; public class ComponentsReplyAddressesDeserializer extends MapOfReferencesOrObjectsDeserializer { diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsSchemasDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsSchemasDeserializer.java index 675174bc..0435e3e8 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsSchemasDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsSchemasDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v3._0_0.jackson.model.component; -import com.asyncapi.v3.Reference; -import com.asyncapi.v3.schema.multiformat.MultiFormatSchema; -import com.asyncapi.v3.schema.AsyncAPISchema; +import com.asyncapi.schemas.asyncapi.Reference; +import com.asyncapi.schemas.asyncapi.multiformat.MultiFormatSchema; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.ObjectCodec; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsSecuritySchemesDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsSecuritySchemesDeserializer.java index 57f0dbbd..ed8bca44 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsSecuritySchemesDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsSecuritySchemesDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v3._0_0.jackson.model.component; -import com.asyncapi.v3.Reference; -import com.asyncapi.v3.jackson.MapOfReferencesOrObjectsDeserializer; -import com.asyncapi.v3.security_scheme.SecurityScheme; +import com.asyncapi.schemas.asyncapi.Reference; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.schemas.asyncapi.security.v3.SecurityScheme; public class ComponentsSecuritySchemesDeserializer extends MapOfReferencesOrObjectsDeserializer { diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsServerVariablesDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsServerVariablesDeserializer.java index 2836d0df..a3a99ad9 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsServerVariablesDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsServerVariablesDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v3._0_0.jackson.model.component; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.model.server.ServerVariable; -import com.asyncapi.v3.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; public class ComponentsServerVariablesDeserializer extends MapOfReferencesOrObjectsDeserializer { diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsServersDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsServersDeserializer.java index 64e77bfd..043a1a80 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsServersDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsServersDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v3._0_0.jackson.model.component; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.model.server.Server; -import com.asyncapi.v3.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; public class ComponentsServersDeserializer extends MapOfReferencesOrObjectsDeserializer { diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsTagsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsTagsDeserializer.java index ef193b9f..77e00a31 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsTagsDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/component/ComponentsTagsDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v3._0_0.jackson.model.component; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.model.Tag; -import com.asyncapi.v3.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; public class ComponentsTagsDeserializer extends MapOfReferencesOrObjectsDeserializer { diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/operation/OperationTraitsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/operation/OperationTraitsDeserializer.java index ee7cf16b..8a50cb5a 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/operation/OperationTraitsDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/operation/OperationTraitsDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v3._0_0.jackson.model.operation; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.model.operation.OperationTrait; -import com.asyncapi.v3.jackson.ListOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.ListOfReferencesOrObjectsDeserializer; /** * Serializes operation traits list. diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/operation/OperationsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/operation/OperationsDeserializer.java index 12e3b8b8..fdb1b034 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/operation/OperationsDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/operation/OperationsDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v3._0_0.jackson.model.operation; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.model.operation.Operation; -import com.asyncapi.v3.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; /** * Serializes component operations map. diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/operation/reply/OperationReplyAddressDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/operation/reply/OperationReplyAddressDeserializer.java index 08d220cc..1661e4f9 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/operation/reply/OperationReplyAddressDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/operation/reply/OperationReplyAddressDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v3._0_0.jackson.model.operation.reply; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.model.operation.reply.OperationReplyAddress; -import com.asyncapi.v3.jackson.ReferenceOrObjectDeserializer; +import com.asyncapi.serde.ReferenceOrObjectDeserializer; /** * Serializes operation reply address diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/operation/reply/OperationReplyDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/operation/reply/OperationReplyDeserializer.java index b019f92e..61ef57d9 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/operation/reply/OperationReplyDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/operation/reply/OperationReplyDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v3._0_0.jackson.model.operation.reply; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.model.operation.reply.OperationReply; -import com.asyncapi.v3.jackson.ReferenceOrObjectDeserializer; +import com.asyncapi.serde.ReferenceOrObjectDeserializer; /** * Serializes operation reply diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/server/ServerVariablesDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/server/ServerVariablesDeserializer.java index 2f31028a..450b650f 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/server/ServerVariablesDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/server/ServerVariablesDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v3._0_0.jackson.model.server; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.model.server.ServerVariable; -import com.asyncapi.v3.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; /** * Serializes {@link com.asyncapi.v3._0_0.model.server.Server} variables map. diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/server/ServersDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/server/ServersDeserializer.java index 9639ed77..c3f13865 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/server/ServersDeserializer.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/jackson/model/server/ServersDeserializer.java @@ -1,8 +1,8 @@ package com.asyncapi.v3._0_0.jackson.model.server; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.model.server.Server; -import com.asyncapi.v3.jackson.MapOfReferencesOrObjectsDeserializer; +import com.asyncapi.serde.MapOfReferencesOrObjectsDeserializer; /** * Serializes component servers map. diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/AsyncAPI.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/AsyncAPI.java index 80e68798..59c3dde4 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/AsyncAPI.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/AsyncAPI.java @@ -1,7 +1,7 @@ package com.asyncapi.v3._0_0.model; -import com.asyncapi.v3.ExtendableObject; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.jackson.model.channel.ChannelsDeserializer; import com.asyncapi.v3._0_0.jackson.model.operation.OperationsDeserializer; import com.asyncapi.v3._0_0.jackson.model.server.ServersDeserializer; @@ -47,7 +47,7 @@ public class AsyncAPI extends ExtendableObject { */ @NotNull @Builder.Default - private final String asyncapi = "3.0.0"; + private String asyncapi = "3.0.0"; /** * Identifier of the application the AsyncAPI document is defining. diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/ExternalDocumentation.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/ExternalDocumentation.java index 55b14b20..dd07e5d9 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/ExternalDocumentation.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/ExternalDocumentation.java @@ -1,6 +1,6 @@ package com.asyncapi.v3._0_0.model; -import com.asyncapi.v3.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import lombok.*; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/Tag.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/Tag.java index 7b77f09c..66e083ff 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/Tag.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/Tag.java @@ -1,7 +1,7 @@ package com.asyncapi.v3._0_0.model; -import com.asyncapi.v3.ExtendableObject; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.jackson.model.ExternalDocumentationDeserializer; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.*; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/channel/Channel.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/channel/Channel.java index 8c93f831..bfba7f4c 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/channel/Channel.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/channel/Channel.java @@ -1,7 +1,7 @@ package com.asyncapi.v3._0_0.model.channel; -import com.asyncapi.v3.ExtendableObject; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.jackson.model.ExternalDocumentationDeserializer; import com.asyncapi.v3._0_0.jackson.model.TagsDeserializer; import com.asyncapi.v3._0_0.jackson.model.channel.message.MessagesDeserializer; @@ -9,8 +9,8 @@ import com.asyncapi.v3._0_0.model.ExternalDocumentation; import com.asyncapi.v3._0_0.model.Tag; import com.asyncapi.v3._0_0.model.channel.message.Message; -import com.asyncapi.v3.binding.channel.ChannelBinding; -import com.asyncapi.v3.jackson.binding.channel.ChannelBindingsDeserializer; +import com.asyncapi.bindings.ChannelBinding; +import com.asyncapi.bindings.ChannelBindingsDeserializer; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.*; import org.jetbrains.annotations.Nullable; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/channel/Parameter.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/channel/Parameter.java index 2196d2e2..446c5279 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/channel/Parameter.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/channel/Parameter.java @@ -1,6 +1,6 @@ package com.asyncapi.v3._0_0.model.channel; -import com.asyncapi.v3.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.*; import org.jetbrains.annotations.Nullable; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/channel/message/CorrelationId.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/channel/message/CorrelationId.java index b7bfea89..10b3b0e7 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/channel/message/CorrelationId.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/channel/message/CorrelationId.java @@ -1,6 +1,6 @@ package com.asyncapi.v3._0_0.model.channel.message; -import com.asyncapi.v3.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import lombok.*; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/channel/message/Message.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/channel/message/Message.java index e739eece..fffcf3a7 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/channel/message/Message.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/channel/message/Message.java @@ -1,7 +1,8 @@ package com.asyncapi.v3._0_0.model.channel.message; -import com.asyncapi.v3.ExtendableObject; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.jackson.model.ExternalDocumentationDeserializer; import com.asyncapi.v3._0_0.jackson.model.TagsDeserializer; import com.asyncapi.v3._0_0.jackson.model.channel.message.MessageCorrelationIdDeserializer; @@ -10,8 +11,8 @@ import com.asyncapi.v3._0_0.jackson.model.channel.message.MessagePayloadDeserializer; import com.asyncapi.v3._0_0.model.ExternalDocumentation; import com.asyncapi.v3._0_0.model.Tag; -import com.asyncapi.v3.jackson.binding.message.MessageBindingsDeserializer; -import com.asyncapi.v3.schema.multiformat.MultiFormatSchema; +import com.asyncapi.bindings.MessageBindingsDeserializer; +import com.asyncapi.schemas.asyncapi.multiformat.MultiFormatSchema; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.*; import org.jetbrains.annotations.Nullable; @@ -40,15 +41,15 @@ public class Message extends ExtendableObject { *

* It MUST NOT define the protocol headers. *

- * If this is a {@link com.asyncapi.v3.schema.AsyncAPISchema}, then the schemaFormat will be assumed to + * If this is a {@link AsyncAPISchema}, 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. *

* MUST BE: *

    - *
  • {@link com.asyncapi.v3.schema.AsyncAPISchema}
  • + *
  • {@link AsyncAPISchema}
  • *
  • {@link MultiFormatSchema}
  • - *
  • {@link com.asyncapi.v3.Reference}
  • + *
  • {@link Reference}
  • *
*/ @Nullable @@ -58,14 +59,14 @@ public class Message extends ExtendableObject { /** * Definition of the message payload. *

- * If this is a {@link com.asyncapi.v3.schema.AsyncAPISchema}, then the schemaFormat will be assumed to be + * If this is a {@link AsyncAPISchema}, 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. *

* MUST BE: *

    - *
  • {@link com.asyncapi.v3.schema.AsyncAPISchema}
  • + *
  • {@link AsyncAPISchema}
  • *
  • {@link MultiFormatSchema}
  • - *
  • {@link com.asyncapi.v3.Reference}
  • + *
  • {@link Reference}
  • *
*/ @Nullable @@ -78,7 +79,7 @@ public class Message extends ExtendableObject { * MUST BE: *
    *
  • {@link CorrelationId}
  • - *
  • {@link com.asyncapi.v3.Reference}
  • + *
  • {@link Reference}
  • *
*/ @JsonDeserialize(using = MessageCorrelationIdDeserializer.class) @@ -123,8 +124,8 @@ public class Message extends ExtendableObject { *

* MUST BE: *

    - *
  • {@link com.asyncapi.v3.binding.message.MessageBinding}
  • - *
  • {@link com.asyncapi.v3.Reference}
  • + *
  • {@link com.asyncapi.bindings.MessageBinding}
  • + *
  • {@link Reference}
  • *
*/ @Nullable @@ -144,7 +145,7 @@ public class Message extends ExtendableObject { * MUST BE: *
    *
  • {@link com.asyncapi.v3._0_0.model.channel.message.MessageTrait}
  • - *
  • {@link com.asyncapi.v3.Reference}
  • + *
  • {@link Reference}
  • *
* * @see Traits Merge Mechanism @@ -159,7 +160,7 @@ public class Message extends ExtendableObject { * MUST BE: *
    *
  • {@link Tag}
  • - *
  • {@link com.asyncapi.v3.Reference}
  • + *
  • {@link Reference}
  • *
*/ @Nullable diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/channel/message/MessageExample.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/channel/message/MessageExample.java index 6593ff02..00baa026 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/channel/message/MessageExample.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/channel/message/MessageExample.java @@ -1,6 +1,6 @@ package com.asyncapi.v3._0_0.model.channel.message; -import com.asyncapi.v3.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import lombok.*; import org.jetbrains.annotations.Nullable; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/channel/message/MessageTrait.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/channel/message/MessageTrait.java index a9199d62..63cd6d58 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/channel/message/MessageTrait.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/channel/message/MessageTrait.java @@ -1,15 +1,16 @@ package com.asyncapi.v3._0_0.model.channel.message; -import com.asyncapi.v3.ExtendableObject; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.jackson.model.ExternalDocumentationDeserializer; import com.asyncapi.v3._0_0.jackson.model.TagsDeserializer; import com.asyncapi.v3._0_0.jackson.model.channel.message.MessageCorrelationIdDeserializer; import com.asyncapi.v3._0_0.jackson.model.channel.message.MessageHeadersDeserializer; import com.asyncapi.v3._0_0.model.ExternalDocumentation; import com.asyncapi.v3._0_0.model.Tag; -import com.asyncapi.v3.jackson.binding.message.MessageBindingsDeserializer; -import com.asyncapi.v3.schema.multiformat.MultiFormatSchema; +import com.asyncapi.bindings.MessageBindingsDeserializer; +import com.asyncapi.schemas.asyncapi.multiformat.MultiFormatSchema; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.*; import org.jetbrains.annotations.Nullable; @@ -40,15 +41,15 @@ public class MessageTrait extends ExtendableObject { *

* It MUST NOT define the protocol headers. *

- * If this is a {@link com.asyncapi.v3.schema.AsyncAPISchema}, then the schemaFormat will be assumed to + * If this is a {@link AsyncAPISchema}, 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. *

* MUST BE: *

    - *
  • {@link com.asyncapi.v3.schema.AsyncAPISchema}
  • + *
  • {@link AsyncAPISchema}
  • *
  • {@link MultiFormatSchema}
  • - *
  • {@link com.asyncapi.v3.Reference}
  • + *
  • {@link Reference}
  • *
*/ @Nullable @@ -61,7 +62,7 @@ public class MessageTrait extends ExtendableObject { * MUST BE: *
    *
  • {@link CorrelationId}
  • - *
  • {@link com.asyncapi.v3.Reference}
  • + *
  • {@link Reference}
  • *
*/ @JsonDeserialize(using = MessageCorrelationIdDeserializer.class) @@ -106,8 +107,8 @@ public class MessageTrait extends ExtendableObject { *

* MUST BE: *

    - *
  • {@link com.asyncapi.v3.binding.message.MessageBinding}
  • - *
  • {@link com.asyncapi.v3.Reference}
  • + *
  • {@link com.asyncapi.bindings.MessageBinding}
  • + *
  • {@link Reference}
  • *
*/ @Nullable @@ -126,7 +127,7 @@ public class MessageTrait extends ExtendableObject { * MUST BE: *
    *
  • {@link Tag}
  • - *
  • {@link com.asyncapi.v3.Reference}
  • + *
  • {@link Reference}
  • *
*/ @Nullable diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/component/Components.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/component/Components.java index 9f56b473..6346cc45 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/component/Components.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/component/Components.java @@ -1,7 +1,7 @@ package com.asyncapi.v3._0_0.model.component; import com.asyncapi.v3._0_0.jackson.model.component.*; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.model.ExternalDocumentation; import com.asyncapi.v3._0_0.model.Tag; import com.asyncapi.v3._0_0.model.channel.Channel; @@ -15,18 +15,18 @@ import com.asyncapi.v3._0_0.model.operation.reply.OperationReplyAddress; import com.asyncapi.v3._0_0.model.server.Server; import com.asyncapi.v3._0_0.model.server.ServerVariable; -import com.asyncapi.v3.binding.channel.ChannelBinding; -import com.asyncapi.v3.binding.message.MessageBinding; -import com.asyncapi.v3.binding.operation.OperationBinding; -import com.asyncapi.v3.binding.server.ServerBinding; -import com.asyncapi.v3.jackson.binding.channel.ChannelBindingsDeserializer; -import com.asyncapi.v3.jackson.binding.message.MessageBindingsDeserializer; -import com.asyncapi.v3.jackson.binding.operation.OperationBindingsDeserializer; -import com.asyncapi.v3.jackson.binding.server.ServerBindingsDeserializer; -import com.asyncapi.v3.schema.multiformat.MultiFormatSchema; -import com.asyncapi.v3.schema.AsyncAPISchema; -import com.asyncapi.v3.security_scheme.SecurityScheme; -import com.asyncapi.v3.ExtendableObject; +import com.asyncapi.bindings.ChannelBinding; +import com.asyncapi.bindings.MessageBinding; +import com.asyncapi.bindings.OperationBinding; +import com.asyncapi.bindings.ServerBinding; +import com.asyncapi.bindings.ChannelBindingsDeserializer; +import com.asyncapi.bindings.MessageBindingsDeserializer; +import com.asyncapi.bindings.OperationBindingsDeserializer; +import com.asyncapi.bindings.ServerBindingsDeserializer; +import com.asyncapi.schemas.asyncapi.multiformat.MultiFormatSchema; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.schemas.asyncapi.security.v3.SecurityScheme; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.*; import org.jetbrains.annotations.Nullable; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/info/Contact.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/info/Contact.java index bd2af1b2..f1b96d27 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/info/Contact.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/info/Contact.java @@ -1,6 +1,6 @@ package com.asyncapi.v3._0_0.model.info; -import com.asyncapi.v3.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import lombok.*; import org.jetbrains.annotations.Nullable; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/info/Info.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/info/Info.java index b9a131c3..af96e261 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/info/Info.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/info/Info.java @@ -1,11 +1,11 @@ package com.asyncapi.v3._0_0.model.info; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.jackson.model.ExternalDocumentationDeserializer; import com.asyncapi.v3._0_0.jackson.model.TagsDeserializer; import com.asyncapi.v3._0_0.model.ExternalDocumentation; import com.asyncapi.v3._0_0.model.Tag; -import com.asyncapi.v3.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.*; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/info/License.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/info/License.java index 415dd90b..ba30d175 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/info/License.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/info/License.java @@ -1,6 +1,6 @@ package com.asyncapi.v3._0_0.model.info; -import com.asyncapi.v3.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import lombok.*; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/operation/Operation.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/operation/Operation.java index 81310044..28337fb5 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/operation/Operation.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/operation/Operation.java @@ -1,7 +1,7 @@ package com.asyncapi.v3._0_0.model.operation; -import com.asyncapi.v3.ExtendableObject; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.jackson.model.ExternalDocumentationDeserializer; import com.asyncapi.v3._0_0.jackson.model.TagsDeserializer; import com.asyncapi.v3._0_0.jackson.model.operation.OperationTraitsDeserializer; @@ -9,10 +9,10 @@ import com.asyncapi.v3._0_0.model.ExternalDocumentation; import com.asyncapi.v3._0_0.model.Tag; import com.asyncapi.v3._0_0.model.operation.reply.OperationReply; -import com.asyncapi.v3.binding.operation.OperationBinding; -import com.asyncapi.v3.jackson.binding.operation.OperationBindingsDeserializer; -import com.asyncapi.v3.jackson.security_scheme.SecuritySchemesDeserializer; -import com.asyncapi.v3.security_scheme.SecurityScheme; +import com.asyncapi.bindings.OperationBinding; +import com.asyncapi.bindings.OperationBindingsDeserializer; +import com.asyncapi.schemas.serde.asyncapi.security.v3.SecuritySchemesDeserializer; +import com.asyncapi.schemas.asyncapi.security.v3.SecurityScheme; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.*; import org.jetbrains.annotations.NotNull; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/operation/OperationTrait.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/operation/OperationTrait.java index 8ea88346..94e78144 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/operation/OperationTrait.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/operation/OperationTrait.java @@ -1,17 +1,15 @@ package com.asyncapi.v3._0_0.model.operation; -import com.asyncapi.v3.ExtendableObject; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.jackson.model.ExternalDocumentationDeserializer; import com.asyncapi.v3._0_0.jackson.model.TagsDeserializer; -import com.asyncapi.v3._0_0.jackson.model.operation.reply.OperationReplyDeserializer; import com.asyncapi.v3._0_0.model.ExternalDocumentation; import com.asyncapi.v3._0_0.model.Tag; -import com.asyncapi.v3._0_0.model.operation.reply.OperationReply; -import com.asyncapi.v3.binding.operation.OperationBinding; -import com.asyncapi.v3.jackson.binding.operation.OperationBindingsDeserializer; -import com.asyncapi.v3.jackson.security_scheme.SecuritySchemesDeserializer; -import com.asyncapi.v3.security_scheme.SecurityScheme; +import com.asyncapi.bindings.OperationBinding; +import com.asyncapi.bindings.OperationBindingsDeserializer; +import com.asyncapi.schemas.serde.asyncapi.security.v3.SecuritySchemesDeserializer; +import com.asyncapi.schemas.asyncapi.security.v3.SecurityScheme; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.*; import org.jetbrains.annotations.Nullable; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/operation/reply/OperationReply.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/operation/reply/OperationReply.java index 1b90ba66..7d6520f6 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/operation/reply/OperationReply.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/operation/reply/OperationReply.java @@ -1,7 +1,7 @@ package com.asyncapi.v3._0_0.model.operation.reply; -import com.asyncapi.v3.ExtendableObject; -import com.asyncapi.v3.Reference; +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.jackson.model.operation.reply.OperationReplyAddressDeserializer; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.*; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/operation/reply/OperationReplyAddress.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/operation/reply/OperationReplyAddress.java index 8a9875ba..b9d495b2 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/operation/reply/OperationReplyAddress.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/operation/reply/OperationReplyAddress.java @@ -1,6 +1,6 @@ package com.asyncapi.v3._0_0.model.operation.reply; -import com.asyncapi.v3.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import lombok.*; import org.jetbrains.annotations.Nullable; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/server/Server.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/server/Server.java index 8d38cd89..b4aa06d2 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/server/Server.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/server/Server.java @@ -1,16 +1,16 @@ package com.asyncapi.v3._0_0.model.server; -import com.asyncapi.v3.jackson.binding.server.ServerBindingsDeserializer; +import com.asyncapi.bindings.ServerBindingsDeserializer; import com.asyncapi.v3._0_0.jackson.model.server.ServerVariablesDeserializer; -import com.asyncapi.v3.binding.server.ServerBinding; -import com.asyncapi.v3.ExtendableObject; -import com.asyncapi.v3.Reference; +import com.asyncapi.bindings.ServerBinding; +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.asyncapi.schemas.asyncapi.Reference; import com.asyncapi.v3._0_0.jackson.model.ExternalDocumentationDeserializer; import com.asyncapi.v3._0_0.jackson.model.TagsDeserializer; import com.asyncapi.v3._0_0.model.ExternalDocumentation; import com.asyncapi.v3._0_0.model.Tag; -import com.asyncapi.v3.jackson.security_scheme.SecuritySchemesDeserializer; -import com.asyncapi.v3.security_scheme.SecurityScheme; +import com.asyncapi.schemas.serde.asyncapi.security.v3.SecuritySchemesDeserializer; +import com.asyncapi.schemas.asyncapi.security.v3.SecurityScheme; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.*; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/server/ServerVariable.java b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/server/ServerVariable.java index 87f852e1..06d3a956 100644 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/server/ServerVariable.java +++ b/asyncapi-core/src/main/java/com/asyncapi/v3/_0_0/model/server/ServerVariable.java @@ -1,6 +1,6 @@ package com.asyncapi.v3._0_0.model.server; -import com.asyncapi.v3.ExtendableObject; +import com.asyncapi.schemas.asyncapi.ExtendableObject; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.*; import org.jetbrains.annotations.Nullable; diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/ChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/ChannelBinding.java deleted file mode 100644 index 825bc97b..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/ChannelBinding.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.asyncapi.v3.binding.channel; - -import com.asyncapi.v3.ExtendableObject; -import lombok.EqualsAndHashCode; - -/** - * Describes protocol-specific definition for a channel. - *

- * This object MAY be extended with {@link ExtendableObject}. - * - * @see Specification Extensions - * @see Channel Binding - * @author Pavel Bodiachevskii - * @version 3.0.0 - */ -@EqualsAndHashCode(callSuper = true) -public class ChannelBinding extends ExtendableObject { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/amqp/AMQPChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/amqp/AMQPChannelBinding.java deleted file mode 100644 index bed4fa16..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/amqp/AMQPChannelBinding.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.asyncapi.v3.binding.channel.amqp; - -import com.asyncapi.v3.binding.channel.ChannelBinding; -import com.asyncapi.v3.binding.channel.amqp.exchange.AMQPChannelExchangeProperties; -import com.asyncapi.v3.binding.channel.amqp.queue.AMQPChannelQueueProperties; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * Describes AMQP 0-9-1 channel binding. - *

- * Contains information about the channel representation in AMQP. - * - * @version 0.2.0 - * @see AMQP channel binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes AMQP 0-9-1 channel binding.") -public class AMQPChannelBinding extends ChannelBinding { - - /** - * Defines what type of channel is it. Can be either queue or routingKey (default). - */ - @NotNull - @Builder.Default - @javax.validation.constraints.NotNull - @JsonProperty(value = "is", required = true, defaultValue = "routingKey") - @JsonPropertyDescription("Defines what type of channel is it. Can be either queue or routingKey (default).") - private AMQPChannelType is = AMQPChannelType.ROUTING_KEY; - - /** - * When is=routingKey, this object defines the exchange properties. - */ - @Nullable - @JsonProperty("exchange") - @JsonPropertyDescription("When is=routingKey, this object defines the exchange properties.") - private AMQPChannelExchangeProperties exchange; - - /** - * When is=queue, this object defines the queue properties. - */ - @Nullable - @JsonProperty("queue") - @JsonPropertyDescription("When is=queue, this object defines the queue properties.") - private AMQPChannelQueueProperties queue; - - @Nullable - @Builder.Default - @JsonProperty(value = "bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private final String bindingVersion = "0.2.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/amqp/AMQPChannelType.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/amqp/AMQPChannelType.java deleted file mode 100644 index e6fe8c81..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/amqp/AMQPChannelType.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.asyncapi.v3.binding.channel.amqp; - -import com.fasterxml.jackson.annotation.JsonAlias; -import com.fasterxml.jackson.annotation.JsonProperty; - -/** - * Describes AMQP 0-9-1 channel type. - *

- * Contains information about the type of channel in AMQP. - * - * @version 0.2.0 - * @see AMQP channel binding - * @author Pavel Bodiachevskii - */ -public enum AMQPChannelType { - - @JsonProperty("queue") - QUEUE, - - @JsonProperty("routingKey") - @JsonAlias("routingKey") - ROUTING_KEY - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/amqp/exchange/AMQPChannelExchangeProperties.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/amqp/exchange/AMQPChannelExchangeProperties.java deleted file mode 100644 index 6c7b0465..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/amqp/exchange/AMQPChannelExchangeProperties.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.asyncapi.v3.binding.channel.amqp.exchange; - -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.Nullable; - -/** - * Describes AMQP 0-9-1 channel exchange properties. - *

- * Contains information about the channel exchange properties in AMQP. - * - * @version 0.2.0 - * @see AMQP channel binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode -@JsonClassDescription("Describes AMQP 0-9-1 channel exchange properties.") -public class AMQPChannelExchangeProperties { - - /** - * The name of the exchange. It MUST NOT exceed 255 characters long. - */ - @Nullable - @javax.validation.constraints.Size( - max = 255, - message = "Exchange name must not exceed 255 characters long." - ) - @JsonProperty("name") - @JsonPropertyDescription("The name of the exchange. It MUST NOT exceed 255 characters long.") - private String name; - - /** - * The type of the exchange. Can be either topic, direct, fanout, default or headers. - */ - @Nullable - @JsonProperty("type") - @JsonPropertyDescription("The type of the exchange. Can be either topic, direct, fanout, default or headers.") - private AMQPChannelExchangeType type; - - /** - * Whether the exchange should survive broker restarts or not. - */ - @Nullable - @JsonProperty("durable") - @JsonPropertyDescription("Whether the exchange should survive broker restarts or not.") - private Boolean durable; - - /** - * Whether the exchange should be deleted when the last queue is unbound from it. - */ - @Nullable - @JsonProperty("autoDelete") - @JsonPropertyDescription("Whether the exchange should be deleted when the last queue is unbound from it.") - private Boolean autoDelete; - - /** - * The virtual host of the exchange. Defaults to /. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "vhost", defaultValue = "/") - @JsonPropertyDescription("The virtual host of the exchange. Defaults to /.") - private String vhost = "/"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/amqp/exchange/AMQPChannelExchangeType.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/amqp/exchange/AMQPChannelExchangeType.java deleted file mode 100644 index 6a4211bc..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/amqp/exchange/AMQPChannelExchangeType.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.asyncapi.v3.binding.channel.amqp.exchange; - -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; - -/** - * Describes AMQP 0-9-1 channel exchange type. - *

- * Contains information about the channel exchange type in AMQP. - * - * @version 0.2.0 - * @see AMQP channel binding - * @author Pavel Bodiachevskii - */ -@JsonClassDescription("Describes AMQP 0-9-1 channel exchange type.") -public enum AMQPChannelExchangeType { - - @JsonProperty("topic") - TOPIC, - - @JsonProperty("direct") - DIRECT, - - @JsonProperty("fanout") - FANOUT, - - @JsonProperty("default") - DEFAULT, - - @JsonProperty("headers") - HEADERS - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/amqp/queue/AMQPChannelQueueProperties.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/amqp/queue/AMQPChannelQueueProperties.java deleted file mode 100644 index 18f49c26..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/amqp/queue/AMQPChannelQueueProperties.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.asyncapi.v3.binding.channel.amqp.queue; - -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.Nullable; - -/** - * Describes AMQP 0-9-1 channel queue properties. - *

- * Contains information about the queue exchange properties in AMQP. - * - * @version 0.2.0 - * @see AMQP channel binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode -@JsonClassDescription("Describes AMQP 0-9-1 channel queue properties.") -public class AMQPChannelQueueProperties { - - /** - * The name of the queue. It MUST NOT exceed 255 characters long. - */ - @Nullable - @javax.validation.constraints.Size( - max = 255, - message = "Queue name must not exceed 255 characters long." - ) - @JsonProperty("name") - @JsonPropertyDescription("The name of the queue. It MUST NOT exceed 255 characters long.") - private String name; - - /** - * Whether the queue should survive broker restarts or not. - */ - @Nullable - @JsonProperty("durable") - @JsonPropertyDescription("Whether the queue should survive broker restarts or not.") - private Boolean durable; - - /** - * Whether the queue should be used only by one connection or not. - */ - @Nullable - @JsonProperty("exclusive") - @JsonPropertyDescription("Whether the queue should be used only by one connection or not.") - private Boolean exclusive; - - /** - * Whether the queue should be deleted when the last consumer unsubscribes. - */ - @Nullable - @JsonProperty("autoDelete") - @JsonPropertyDescription("Whether the queue should be deleted when the last consumer unsubscribes.") - private Boolean autoDelete; - - /** - * The virtual host of the queue. Defaults to /. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "vhost", defaultValue = "/") - @JsonPropertyDescription("The virtual host of the queue. Defaults to /.") - private String vhost = "/"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/amqp1/AMQP1ChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/amqp1/AMQP1ChannelBinding.java deleted file mode 100644 index b9d5b157..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/amqp1/AMQP1ChannelBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.channel.amqp1; - -import com.asyncapi.v3.binding.channel.ChannelBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes AMQP 1.0 channel binding. - * - * @version 0.1.0 - * @see AMQP 1.0 channel binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class AMQP1ChannelBinding extends ChannelBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/anypointmq/AnypointMQChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/anypointmq/AnypointMQChannelBinding.java deleted file mode 100644 index 84c63a06..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/anypointmq/AnypointMQChannelBinding.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.asyncapi.v3.binding.channel.anypointmq; - -import com.asyncapi.v3.binding.channel.ChannelBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.Nullable; - -/** - * Describes Anypoint MQ channel binding. - * - * @version 0.0.1 - * @see Anypoint MQ channel binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes Anypoint MQ channel binding.") -public class AnypointMQChannelBinding extends ChannelBinding { - - /** - * OPTIONAL, defaults to the channel name. - *

- * 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. - */ - @Nullable - @JsonProperty("destination") - @JsonPropertyDescription("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.") - private String destination; - - /** - * OPTIONAL, defaults to queue. - *

- * The type of destination, which MUST be either exchange or queue or fifo-queue. - * SHOULD be specified to document the messaging model (publish/subscribe, point-to-point, strict message ordering) - * supported by this channel. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "destinationType", defaultValue = "queue") - @JsonPropertyDescription("The type of destination, which MUST be either exchange or queue or fifo-queue. SHOULD be specified to document the messaging model (publish/subscribe, point-to-point, strict message ordering) supported by this channel.") - private AnypointMQChannelDestinationType destinationType = AnypointMQChannelDestinationType.QUEUE; - - /** - * The version of this binding. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.0.1"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/anypointmq/AnypointMQChannelDestinationType.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/anypointmq/AnypointMQChannelDestinationType.java deleted file mode 100644 index 3f42233c..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/anypointmq/AnypointMQChannelDestinationType.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v3.binding.channel.anypointmq; - -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; - -/** - * Describes Anypoint MQ channel destination type. - * - * @version 0.0.1 - * @see Anypoint MQ channel binding - * @author Pavel Bodiachevskii - */ -@JsonClassDescription("Describes Anypoint MQ channel destination type.") -public enum AnypointMQChannelDestinationType { - - @JsonProperty("exchange") - EXCHANGE, - - @JsonProperty("queue") - QUEUE, - - @JsonProperty("fifo-queue") - FIFO_QUEUE - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/googlepubsub/GooglePubSubChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/googlepubsub/GooglePubSubChannelBinding.java deleted file mode 100644 index 1f93f6c2..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/googlepubsub/GooglePubSubChannelBinding.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.asyncapi.v3.binding.channel.googlepubsub; - -import com.asyncapi.v3.binding.channel.ChannelBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Map; - -/** - * Describes Google Cloud Pub/Sub channel binding. - *

- * The Channel Bindings Object is used to describe the Google Cloud Pub/Sub specific Topic details with AsyncAPI. - * - * @version 0.1.0 - * @see Google Cloud Pub/Sub channel binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes Google Cloud Pub/Sub channel binding.") -public class GooglePubSubChannelBinding extends ChannelBinding { - - /** - * The Google Cloud Pub/Sub Topic name. - */ - @NotNull - @Builder.Default - @javax.validation.constraints.NotNull - @JsonProperty(value = "topic", required = true) - @JsonPropertyDescription("The Google Cloud Pub/Sub Topic name.") - private String topic = ""; - - /** - * An object of key-value pairs (These are used to categorize Cloud Resources like Cloud Pub/Sub Topics.) - */ - @Nullable - @JsonProperty("labels") - @JsonPropertyDescription("An object of key-value pairs (These are used to categorize Cloud Resources like Cloud Pub/Sub Topics.)") - private Map labels; - - /** - * Indicates the minimum duration to retain a message after it is published to the topic (Must be a valid Duration.) - */ - @Nullable - @JsonProperty("messageRetentionDuration") - @JsonPropertyDescription("Indicates the minimum duration to retain a message after it is published to the topic (Must be a valid https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Duration.)") - private String messageRetentionDuration; - - /** - * Policy constraining the set of Google Cloud Platform regions where messages published to the topic may be stored - */ - @Nullable - @JsonProperty("messageStoragePolicy") - @JsonPropertyDescription("Policy constraining the set of Google Cloud Platform regions where messages published to the topic may be stored") - private GooglePubSubChannelMessageStoragePolicy messageStoragePolicy; - - /** - * Settings for validating messages published against a schema - */ - @NotNull - @Builder.Default - @javax.validation.constraints.NotNull - @JsonProperty(value = "schemaSettings", required = true) - @JsonPropertyDescription("Settings for validating messages published against a schema") - private GooglePubSubChannelSchemaSettings schemaSettings = new GooglePubSubChannelSchemaSettings(); - - /** - * The version of this binding. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.1.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/googlepubsub/GooglePubSubChannelMessageStoragePolicy.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/googlepubsub/GooglePubSubChannelMessageStoragePolicy.java deleted file mode 100644 index 2f236cc6..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/googlepubsub/GooglePubSubChannelMessageStoragePolicy.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.asyncapi.v3.binding.channel.googlepubsub; - -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -/** - * Describes Google Cloud Pub/Sub MessageStoragePolicy. - *

- * The Message Storage Policy Object is used to describe the Google Cloud Pub/Sub MessageStoragePolicy Object with AsyncAPI. - * - * @version 0.1.0 - * @see Google Cloud Pub/Sub channel binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode -@JsonClassDescription("Describe the Google Cloud Pub/Sub MessageStoragePolicy") -public class GooglePubSubChannelMessageStoragePolicy { - - /** - * A list of IDs of GCP regions where messages that are published to the topic may be persisted in storage - */ - @Nullable - @JsonProperty("allowedPersistenceRegions") - @JsonPropertyDescription("A list of IDs of GCP regions where messages that are published to the topic may be persisted in storage") - private List allowedPersistenceRegions; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/googlepubsub/GooglePubSubChannelSchemaSettings.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/googlepubsub/GooglePubSubChannelSchemaSettings.java deleted file mode 100644 index ce5f807e..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/googlepubsub/GooglePubSubChannelSchemaSettings.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.asyncapi.v3.binding.channel.googlepubsub; - -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * Describes Google Cloud Pub/Sub SchemaSettings. - *

- * The Schema Settings Object is used to describe the Google Cloud Pub/Sub SchemaSettings Object with AsyncAPI. - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode -@JsonClassDescription("Describe the Google Cloud Pub/Sub SchemaSettings") -public class GooglePubSubChannelSchemaSettings { - - /** - * The encoding of the message (Must be one of the possible Encoding values.) - */ - @NotNull - @Builder.Default - @javax.validation.constraints.NotNull - @JsonProperty(value = "encoding", required = true) - @JsonPropertyDescription("The encoding of the message (Must be one of the possible https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.topics#encoding values.)") - private String encoding = ""; - - /** - * The minimum (inclusive) revision allowed for validating messages - */ - @Nullable - @JsonProperty("firstRevisionId") - @JsonPropertyDescription("The minimum (inclusive) revision allowed for validating messages") - private String firstRevisionId; - - /** - * The maximum (inclusive) revision allowed for validating messages - */ - @Nullable - @JsonProperty("lastRevisionId") - @JsonPropertyDescription("The maximum (inclusive) revision allowed for validating messages") - private String lastRevisionId; - - /** - * The name of the schema that messages published should be validated against (The format is projects/{project}/schemas/{schema}.) - */ - @NotNull - @Builder.Default - @javax.validation.constraints.NotNull - @JsonProperty(value = "name", required = true) - @JsonPropertyDescription("The name of the schema that messages published should be validated against (The format is projects/{project}/schemas/{schema}.)") - private String name = ""; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/http/HTTPChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/http/HTTPChannelBinding.java deleted file mode 100644 index 3419cdc2..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/http/HTTPChannelBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.channel.http; - -import com.asyncapi.v3.binding.channel.ChannelBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes HTTP channel binding. - * - * @version 0.1.0 - * @see HTTP channel binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class HTTPChannelBinding extends ChannelBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/ibmmq/IBMMQChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/ibmmq/IBMMQChannelBinding.java deleted file mode 100644 index bb637b2a..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/ibmmq/IBMMQChannelBinding.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.asyncapi.v3.binding.channel.ibmmq; - -import com.asyncapi.v3.binding.channel.ChannelBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.Nullable; - -/** - * Describes IBM MQ channel binding. - *

- * This object contains information about the channel representation in IBM MQ. Each channel corresponds to a Queue or Topic within IBM MQ. - * - * @version 0.1.0 - * @see IBM MQ channel binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes IBM MQ channel binding.") -public class IBMMQChannelBinding extends ChannelBinding { - - /** - * Defines the type of AsyncAPI channel. - *

- * MUST be either topic or queue. For type topic, the AsyncAPI channel name MUST be assumed for the IBM MQ topic string unless overridden. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "destinationType", defaultValue = "topic") - @JsonPropertyDescription("Defines the type of AsyncAPI channel.") - private IBMMQChannelDestinationType destinationType = IBMMQChannelDestinationType.TOPIC; - - /** - * REQUIRED if destinationType = queue - *

- * queue and topic fields MUST NOT coexist within a channel binding - */ - @Nullable - @JsonProperty("queue") - @JsonPropertyDescription("Defines the properties of a queue.") - private IBMMQChannelQueueProperties queue; - - /** - * Defines the properties of a topic. - *

- * OPTIONAL if destinationType = topic - *

- * queue and topic fields MUST NOT coexist within a channel binding. - */ - @Nullable - @JsonProperty("topic") - @JsonPropertyDescription("Defines the properties of a topic.") - private IBMMQChannelTopicProperties topic; - - /** - * 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 in the IBM MQ Knowledge Center. - *

- * MUST be 0-104,857,600 bytes (100 MB). - */ - @Nullable - @javax.validation.constraints.Min( - value = 0, - message = "Maximum length of the physical message (in bytes) must be greater or equals to 0" - ) - @javax.validation.constraints.Max( - value = 104857600, - message = "Maximum length of the physical message (in bytes) must be lower or equals to 104857600" - ) - @JsonProperty("maxMsgLength") - @JsonPropertyDescription("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.") - private Integer maxMsgLength; - - /** - * The version of this binding. - */ - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.1.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/ibmmq/IBMMQChannelDestinationType.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/ibmmq/IBMMQChannelDestinationType.java deleted file mode 100644 index 13609498..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/ibmmq/IBMMQChannelDestinationType.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.asyncapi.v3.binding.channel.ibmmq; - -import com.fasterxml.jackson.annotation.JsonProperty; - -/** - * Describes IBM MQ channel destination type. - * - * @version 0.1.0 - * @see IBM MQ channel binding - * @author Pavel Bodiachevskii - */ -public enum IBMMQChannelDestinationType { - - @JsonProperty("topic") - TOPIC, - - @JsonProperty("queue") - QUEUE - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/ibmmq/IBMMQChannelQueueProperties.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/ibmmq/IBMMQChannelQueueProperties.java deleted file mode 100644 index 4c4586ab..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/ibmmq/IBMMQChannelQueueProperties.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.asyncapi.v3.binding.channel.ibmmq; - -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * Describes IBM MQ channel queue properties. - * - * @version 0.1.0 - * @see IBM MQ channel binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode -@JsonClassDescription("Describes IBM MQ channel queue properties.") -public class IBMMQChannelQueueProperties { - - /** - * Defines the name of the IBM MQ queue associated with the channel. - *

- * A value MUST be specified. MUST NOT exceed 48 characters in length. MUST be a valid IBM MQ queue name - */ - @NotNull - @javax.validation.constraints.NotNull - @javax.validation.constraints.Size( - max = 48, - message = "Name of the IBM MQ queue must be less or equals to 48" - ) - @Builder.Default - @JsonProperty("objectName") - @JsonPropertyDescription("Defines the name of the IBM MQ queue associated with the channel.") - private String objectName = ""; - - /** - * 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. - *

- * If false, binding options SHOULD NOT be specified when accessing the queue. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "isPartitioned", defaultValue = "false") - @JsonPropertyDescription("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.") - private Boolean isPartitioned = false; - - /** - * Specifies if it is recommended to open the queue exclusively. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "exclusive", defaultValue = "false") - @JsonPropertyDescription("Specifies if it is recommended to open the queue exclusively.") - private Boolean exclusive = false; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/ibmmq/IBMMQChannelTopicProperties.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/ibmmq/IBMMQChannelTopicProperties.java deleted file mode 100644 index 7fe8544e..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/ibmmq/IBMMQChannelTopicProperties.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.asyncapi.v3.binding.channel.ibmmq; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.Nullable; - -/** - * Describes IBM MQ channel topic properties. - * - * @version 0.1.0 - * @see IBM MQ channel binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode -public class IBMMQChannelTopicProperties { - - /** - * The value of the IBM MQ topic string to be used. - *

- * OPTIONAL - * Note: if specified, SHALL override AsyncAPI channel name. - *

- * MUST NOT exceed 10240 characters in length. MAY coexist with topic.objectName - */ - @Nullable - @javax.validation.constraints.Max( - value = 10240, - message = "Maximum length of topic string must be lower or equals to 10240" - ) - @JsonProperty("string") - @JsonPropertyDescription("The value of the IBM MQ topic string to be used.") - private String string; - - /** - * The name of the IBM MQ topic object. - *

- * OPTIONAL - * Note: if specified, SHALL override AsyncAPI channel name. - *

- * MUST NOT exceed 48 characters in length. MAY coexist with topic.string - */ - @Nullable - @javax.validation.constraints.Max( - value = 48, - message = "Maximum length of topic name must be lower or equals to 48" - ) - @JsonProperty("objectName") - @JsonPropertyDescription("The name of the IBM MQ topic object.") - private String objectName; - - /** - * Defines if the subscription may be durable. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "durablePermitted", defaultValue = "true") - @JsonPropertyDescription("Defines if the subscription may be durable.") - private Boolean durablePermitted = true; - - /** - * Defines if the last message published will be made available to new subscriptions. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "lastMsgRetained", defaultValue = "false") - @JsonPropertyDescription("Defines if the last message published will be made available to new subscriptions.") - private Boolean lastMsgRetained = false; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/jms/JMSChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/jms/JMSChannelBinding.java deleted file mode 100644 index 3d74dac6..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/jms/JMSChannelBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.channel.jms; - -import com.asyncapi.v3.binding.channel.ChannelBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes JMS channel binding. - * - * @version 0.1.0 - * @see JMS channel binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class JMSChannelBinding extends ChannelBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/kafka/KafkaChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/kafka/KafkaChannelBinding.java deleted file mode 100644 index 66b61ea5..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/kafka/KafkaChannelBinding.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.asyncapi.v3.binding.channel.kafka; - -import com.asyncapi.v3.binding.channel.ChannelBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.Nullable; - -/** - * Describes Kafka channel binding. - * - * @version 0.4.0 - * @see Kafka channel binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes Kafka channel binding.") -public class KafkaChannelBinding extends ChannelBinding { - - /** - * Kafka topic name if different from channel name. - */ - @Nullable - @JsonProperty("topic") - @JsonPropertyDescription("Kafka topic name if different from channel name.") - private String topic; - - /** - * Number of partitions configured on this topic (useful to know how many parallel consumers you may run). - *

- * MUST be positive. - */ - @Nullable - @javax.validation.constraints.Min( - value = 1, - message = "Number of partitions must be greater or equals to 1" - ) - @JsonProperty("partitions") - @JsonPropertyDescription("Number of partitions configured on this topic (useful to know how many parallel consumers you may run).") - private Integer partitions; - - /** - * Number of replicas configured on this topic. - *

- * MUST be positive. - */ - @Nullable - @javax.validation.constraints.Min( - value = 1, - message = "Number of replicas must be greater or equals to 1" - ) - @JsonProperty("replicas") - @JsonPropertyDescription("Number of replicas configured on this topic.") - private Integer replicas; - - /** - * Topic configuration properties that are relevant for the API. - */ - @Nullable - @JsonProperty("topicConfiguration") - @JsonPropertyDescription("Topic configuration properties that are relevant for the API.") - private KafkaChannelTopicConfiguration topicConfiguration; - - /** - * The version of this binding. If omitted, "latest" MUST be assumed. - */ - @Nullable - @Builder.Default - private String bindingVersion = "0.4.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/kafka/KafkaChannelTopicCleanupPolicy.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/kafka/KafkaChannelTopicCleanupPolicy.java deleted file mode 100644 index a58e764a..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/kafka/KafkaChannelTopicCleanupPolicy.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.asyncapi.v3.binding.channel.kafka; - -import com.fasterxml.jackson.annotation.JsonProperty; - -public enum KafkaChannelTopicCleanupPolicy { - - @JsonProperty("compact") - COMPACT, - - @JsonProperty("delete") - DELETE - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/kafka/KafkaChannelTopicConfiguration.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/kafka/KafkaChannelTopicConfiguration.java deleted file mode 100644 index 63ed484c..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/kafka/KafkaChannelTopicConfiguration.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.asyncapi.v3.binding.channel.kafka; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -/** - * This objects contains information about the API relevant topic configuration in Kafka. - * - * @version 0.4.0 - * @see Kafka channel binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class KafkaChannelTopicConfiguration { - - /** - * The cleanup.policy configuration option. - *

- * array may only contain delete and/or compact - */ - @Nullable - @JsonProperty("cleanup.policy") - private List cleanupPolicy; - - /** - * The retention.ms configuration option. - */ - @Nullable - @javax.validation.constraints.Min( - value = -1, - message = "retention.ms must be greater or equals to -1" - ) - @JsonProperty("retention.ms") - @JsonPropertyDescription("The [`retention.ms`](https://kafka.apache.org/documentation/#topicconfigs_retention.ms) configuration option.") - private Integer retentionMs; - - /** - * The retention.bytes configuration option. - */ - @Nullable - @javax.validation.constraints.Min( - value = -1, - message = "retention.bytes must be greater or equals to -1" - ) - @JsonProperty("retention.bytes") - @JsonPropertyDescription("The [`retention.bytes`](https://kafka.apache.org/documentation/#topicconfigs_retention.bytes) configuration option.") - private Integer retentionBytes; - - /** - * The delete.retention.ms configuration option. - */ - @Nullable - @javax.validation.constraints.Min( - value = 0, - message = "delete.retention.ms must be greater or equals to 0" - ) - @JsonProperty("delete.retention.ms") - @JsonPropertyDescription("The [`delete.retention.ms`](https://kafka.apache.org/documentation/#topicconfigs_delete.retention.ms) configuration option.") - private Integer deleteRetentionMs; - - /** - * The max.message.bytes configuration option. - */ - @Nullable - @javax.validation.constraints.Min( - value = 0, - message = "max.message.bytes must be greater or equals to 0" - ) - @JsonProperty("max.message.bytes") - @JsonPropertyDescription("The [`max.message.bytes`](https://kafka.apache.org/documentation/#topicconfigs_max.message.bytes) configuration option.") - private Integer maxMessageBytes; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/mercure/MercureChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/mercure/MercureChannelBinding.java deleted file mode 100644 index 8cdb274b..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/mercure/MercureChannelBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.channel.mercure; - -import com.asyncapi.v3.binding.channel.ChannelBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes Mercure channel binding. - * - * @version 0.1.0 - * @see Mercure channel binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class MercureChannelBinding extends ChannelBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/mqtt/MQTTChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/mqtt/MQTTChannelBinding.java deleted file mode 100644 index 8f1ad80b..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/mqtt/MQTTChannelBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.channel.mqtt; - -import com.asyncapi.v3.binding.channel.ChannelBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes MQTT channel binding. - * - * @version 0.1.0 - * @see MQTT channel binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class MQTTChannelBinding extends ChannelBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/mqtt5/MQTT5ChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/mqtt5/MQTT5ChannelBinding.java deleted file mode 100644 index 6386770b..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/mqtt5/MQTT5ChannelBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.channel.mqtt5; - -import com.asyncapi.v3.binding.channel.ChannelBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes MQTT 5 channel binding. - * - * @version 0.2.0 - * @see MQTT 5 channel binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class MQTT5ChannelBinding extends ChannelBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/nats/NATSChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/nats/NATSChannelBinding.java deleted file mode 100644 index c069aabe..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/nats/NATSChannelBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.channel.nats; - -import com.asyncapi.v3.binding.channel.ChannelBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes NATS channel binding. - * - * @version 0.1.0 - * @see NATS channel binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class NATSChannelBinding extends ChannelBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/pulsar/PulsarChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/pulsar/PulsarChannelBinding.java deleted file mode 100644 index df114f94..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/pulsar/PulsarChannelBinding.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.asyncapi.v3.binding.channel.pulsar; - -import com.asyncapi.v3.binding.channel.ChannelBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -/** - * Describes Pulsar channel binding. - * - * @version 0.1.0 - * @see Pulsar channel binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes Pulsar channel binding.") -public class PulsarChannelBinding extends ChannelBinding { - - /** - * The namespace the channel is associated with. - */ - @NotNull - @Builder.Default - @javax.validation.constraints.NotNull - @JsonProperty("namespace") - @JsonPropertyDescription("The namespace the channel is associated with.") - private String namespace = ""; - - /** - * Persistence of the topic in Pulsar. It MUST be either persistent or non-persistent. - */ - @NotNull - @Builder.Default - @javax.validation.constraints.NotNull - @JsonProperty(value = "persistence", defaultValue = "persistent") - @JsonPropertyDescription("Persistence of the topic in Pulsar. It MUST be either persistent or non-persistent.") - private PulsarChannelPersistence persistence = PulsarChannelPersistence.PERSISTENT; - - /** - * Topic compaction threshold given in Megabytes. - */ - @Nullable - @javax.validation.constraints.Min( - value = 0, - message = "Topic compaction threshold must be greater or equals to 0." - ) - @JsonProperty("compaction") - @JsonPropertyDescription("Topic compaction threshold given in Megabytes.") - private Integer compaction; - - /** - * A list of clusters the topic is replicated to. - */ - @Nullable - @JsonProperty("geo-replication") - @JsonPropertyDescription("A list of clusters the topic is replicated to.") - private List geoReplication; - - /** - * Topic retention policy. - */ - @Nullable - @JsonProperty("retention") - @JsonPropertyDescription("Topic retention policy.") - private PulsarChannelRetentionDefinition retention; - - /** - * Message time-to-live in seconds. - */ - @Nullable - @JsonProperty("ttl") - @JsonPropertyDescription("Message time-to-live in seconds.") - private Integer ttl; - - /** - * Message deduplication. When true, it ensures that each message produced on Pulsar topics is persisted to disk only once. - */ - @Nullable - @JsonProperty("deduplication") - @JsonPropertyDescription("Message deduplication. When true, it ensures that each message produced on Pulsar topics is persisted to disk only once.") - private Boolean deduplication; - - /** - * The version of this binding. If omitted, "latest" MUST be assumed. - */ - @Nullable - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.1.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/pulsar/PulsarChannelPersistence.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/pulsar/PulsarChannelPersistence.java deleted file mode 100644 index 8af581a8..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/pulsar/PulsarChannelPersistence.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.asyncapi.v3.binding.channel.pulsar; - -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; - -/** - * Describes Pulsar channel persistence. - * - * @version 0.1.0 - * @see Pulsar channel binding - * @author Pavel Bodiachevskii - */ -@JsonClassDescription("Describes Pulsar channel persistence.") -public enum PulsarChannelPersistence { - - @JsonProperty("persistent") - PERSISTENT, - - @JsonProperty("non-persistent") - NON_PERSISTENT - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/pulsar/PulsarChannelRetentionDefinition.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/pulsar/PulsarChannelRetentionDefinition.java deleted file mode 100644 index badd4b15..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/pulsar/PulsarChannelRetentionDefinition.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.asyncapi.v3.binding.channel.pulsar; - -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.Nullable; - -/** - * Describes Pulsar channel retention definition. - *

- * The Retention Definition Object is used to describe the Pulsar Retention policy. - * - * @version 0.1.0 - * @see Pulsar channel binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode -@JsonClassDescription("Describes Pulsar channel retention definition.") -public class PulsarChannelRetentionDefinition { - - /** - * Time given in Minutes. - */ - @Nullable - @Builder.Default - @JsonProperty("time") - @JsonPropertyDescription("Time given in Minutes.") - private Integer time = 0; - - /** - * Size given in MegaBytes. - */ - @Nullable - @Builder.Default - @JsonProperty("size") - @JsonPropertyDescription("Size given in MegaBytes.") - private Integer size = 0; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/redis/RedisChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/redis/RedisChannelBinding.java deleted file mode 100644 index a061a679..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/redis/RedisChannelBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.channel.redis; - -import com.asyncapi.v3.binding.channel.ChannelBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes Redis channel binding. - * - * @version 0.1.0 - * @see Redis channel binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class RedisChannelBinding extends ChannelBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/sns/SNSChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/sns/SNSChannelBinding.java deleted file mode 100644 index f2e8b833..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/sns/SNSChannelBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.channel.sns; - -import com.asyncapi.v3.binding.channel.ChannelBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes SNS channel binding. - * - * @version 0.1.0 - * @see SNS channel binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class SNSChannelBinding extends ChannelBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/solace/SolaceChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/solace/SolaceChannelBinding.java deleted file mode 100644 index cbd31a55..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/solace/SolaceChannelBinding.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.asyncapi.v3.binding.channel.solace; - -import com.asyncapi.v3.binding.channel.ChannelBinding; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes Solace channel binding. - * - * @version 0.3.0 - * @see Solace channel binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class SolaceChannelBinding extends ChannelBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/sqs/SQSChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/sqs/SQSChannelBinding.java deleted file mode 100644 index 961a8ad6..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/sqs/SQSChannelBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.channel.sqs; - -import com.asyncapi.v3.binding.channel.ChannelBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes SQS channel binding. - * - * @version 0.1.0 - * @see SQS channel binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class SQSChannelBinding extends ChannelBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/stomp/STOMPChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/stomp/STOMPChannelBinding.java deleted file mode 100644 index f4b13a98..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/stomp/STOMPChannelBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.channel.stomp; - -import com.asyncapi.v3.binding.channel.ChannelBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes STOMP channel binding. - * - * @version 0.1.0 - * @see STOMP channel binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class STOMPChannelBinding extends ChannelBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/ws/WebSocketsChannelBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/ws/WebSocketsChannelBinding.java deleted file mode 100644 index f701f3e9..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/ws/WebSocketsChannelBinding.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.asyncapi.v3.binding.channel.ws; - -import com.asyncapi.v3.schema.AsyncAPISchema; -import com.asyncapi.v3.binding.channel.ChannelBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.Nullable; - -/** - * Describes WebSockets channel binding. - *

- * 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. - * - * @version 0.1.0 - * @see WebSockets channel binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes WebSockets channel binding.") -public class WebSocketsChannelBinding extends ChannelBinding { - - /** - * The HTTP method to use when establishing the connection. Its value MUST be either GET or POST. - */ - @Nullable - @JsonProperty("method") - @JsonPropertyDescription("The HTTP method to use when establishing the connection. Its value MUST be either GET or POST.") - private WebSocketsChannelMethod method; - - /** - * A Schema object containing the definitions for each query parameter. This schema MUST be of type - * object and have a properties key. - */ - @Nullable - @JsonProperty("query") - @JsonPropertyDescription("A Schema object containing the definitions for each query parameter. This schema MUST be of type object and have a properties key.") - private AsyncAPISchema query; - - /** - * 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. - */ - @Nullable - @JsonProperty("headers") - @JsonPropertyDescription("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.") - private AsyncAPISchema headers; - - /** - * The version of this binding. If omitted, "latest" MUST be assumed. - */ - @Nullable - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.1.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/ws/WebSocketsChannelMethod.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/ws/WebSocketsChannelMethod.java deleted file mode 100644 index 48362411..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/channel/ws/WebSocketsChannelMethod.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.asyncapi.v3.binding.channel.ws; - -import com.fasterxml.jackson.annotation.JsonProperty; - -public enum WebSocketsChannelMethod { - - @JsonProperty("GET") - GET, - - @JsonProperty("POST") - POST - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/MessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/MessageBinding.java deleted file mode 100644 index 2f75d7d8..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/MessageBinding.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.asyncapi.v3.binding.message; - -import com.asyncapi.v3.ExtendableObject; -import lombok.EqualsAndHashCode; - -/** - * Describes AsyncAPI message binding. - * - * @author Pavel Bodiachevskii - */ -@EqualsAndHashCode(callSuper = true) -public class MessageBinding extends ExtendableObject { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/amqp/AMQPMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/amqp/AMQPMessageBinding.java deleted file mode 100644 index 820202c6..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/amqp/AMQPMessageBinding.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.asyncapi.v3.binding.message.amqp; - -import com.asyncapi.v3.binding.message.MessageBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.Nullable; - -/** - * Describes AMQP 0-9-1 message binding. - *

- * Contains information about the message representation in AMQP. - * - * @version 0.2.0 - * @see AMQP message binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes AMQP 0-9-1 message binding.") -public class AMQPMessageBinding extends MessageBinding { - - /** - * A MIME encoding for the message content. - */ - @Nullable - @JsonProperty("contentEncoding") - @JsonPropertyDescription("A MIME encoding for the message content.") - private String contentEncoding; - - /** - * Application-specific message type. - */ - @Nullable - @JsonProperty("messageType") - @JsonPropertyDescription("Application-specific message type.") - private String messageType; - - /** - * The version of this binding. If omitted, "latest" MUST be assumed. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.2.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/amqp1/AMQP1MessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/amqp1/AMQP1MessageBinding.java deleted file mode 100644 index 73617ca1..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/amqp1/AMQP1MessageBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.message.amqp1; - -import com.asyncapi.v3.binding.message.MessageBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes AMQP 1.0 message binding. - * - * @version 0.1.0 - * @see AMQP message binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class AMQP1MessageBinding extends MessageBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/anypointmq/AnypointMQMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/anypointmq/AnypointMQMessageBinding.java deleted file mode 100644 index 202a7529..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/anypointmq/AnypointMQMessageBinding.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.asyncapi.v3.binding.message.anypointmq; - -import com.asyncapi.v3.schema.AsyncAPISchema; -import com.asyncapi.v3.binding.message.MessageBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.Nullable; - -/** - * Describes Anypoint MQ message binding. - * - * @version 0.0.1 - * @see Anypoint MQ message binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes Anypoint MQ message binding.") -public class AnypointMQMessageBinding extends MessageBinding { - - /** - * A Schema object containing the definitions for Anypoint MQ-specific headers (so-called protocol headers). - * This schema MUST be of type object and have a properties key. Examples of Anypoint MQ protocol headers are - * messageId and messageGroupId. - */ - @Nullable - @JsonProperty("headers") - @JsonPropertyDescription("A Schema object containing the definitions for Anypoint MQ-specific headers (so-called protocol headers). This schema MUST be of type object and have a properties key. Examples of Anypoint MQ protocol headers are messageId and messageGroupId.") - private AsyncAPISchema headers; - - /** - * The version of this binding. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.0.1"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/googlepubsub/GooglePubSubMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/googlepubsub/GooglePubSubMessageBinding.java deleted file mode 100644 index 5f6373de..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/googlepubsub/GooglePubSubMessageBinding.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.asyncapi.v3.binding.message.googlepubsub; - -import com.asyncapi.v3.binding.message.MessageBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.Nullable; - -/** - * Describes Google Cloud Pub/Sub message binding. - *

- * The Message Binding Object is used to describe the Google Cloud Pub/Sub specific PubsubMessage details, alongside with - * pertintent parts of the Google Cloud Pub/Sub Schema Object, with AsyncAPI. - * - * @version 0.1.0 - * @see Google Cloud Pub/Sub message binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes Google Cloud Pub/Sub message binding.") -public class GooglePubSubMessageBinding extends MessageBinding { - - /** - * If non-empty, identifies related messages for which publish order should be respected (For more information, see ordering messages.) - */ - @Nullable - @JsonProperty("orderingKey") - @JsonPropertyDescription("If non-empty, identifies related messages for which publish order should be respected (For more information, see https://cloud.google.com/pubsub/docs/ordering messages") - private String orderingKey; - - /** - * Attributes for this message (If this field is empty, the message must contain non-empty data. This can be used to - * filter messages on the subscription.) - */ - @Nullable - @JsonProperty("attributes") - @JsonPropertyDescription("Attributes for this message (If this field is empty, the message must contain non-empty data. This can be used to filter messages on the subscription.)") - private Object attributes; - - /** - * Describes the schema used to validate the payload of this message - */ - @Nullable - @JsonProperty("schema") - @JsonPropertyDescription("Describes the schema used to validate the payload of this message") - private GooglePubSubMessageSchemaDefinition schema; - - /** - * The version of this binding. - */ - @Nullable - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.1.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/googlepubsub/GooglePubSubMessageSchemaDefinition.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/googlepubsub/GooglePubSubMessageSchemaDefinition.java deleted file mode 100644 index 277061b3..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/googlepubsub/GooglePubSubMessageSchemaDefinition.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.asyncapi.v3.binding.message.googlepubsub; - -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.NotNull; - -/** - * Describes Google Cloud Pub/Sub message schema definition. - *

- * The Schema Definition Object is used to describe the Google Cloud Pub/Sub Schema Object with AsyncAPI. - * While some of this information could be, or is, described using native AsyncAPI, for consistency it makes sense to - * provide this information here at all times, especially for cases where AsyncAPI does not natively support describing - * payloads using a supported Google Cloud Pub/Sub schema format like Protobuf. - * - * @version 0.1.0 - * @see Google Cloud Pub/Sub message binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode -@JsonClassDescription("Describes Google Cloud Pub/Sub message schema definition.") -public class GooglePubSubMessageSchemaDefinition { - - /** - * The name of the schema - */ - @NotNull - @Builder.Default - @javax.validation.constraints.NotNull - @JsonProperty(value = "name", required = true) - @JsonPropertyDescription("The name of the schema") - private String name = ""; - - /** - * The type of the schema - */ - @NotNull - @Builder.Default - @javax.validation.constraints.NotNull - @JsonProperty(value = "type", required = true) - @JsonPropertyDescription("The type of the schema") - private GooglePubSubMessageSchemaDefinitionType type = GooglePubSubMessageSchemaDefinitionType.PROTOBUF; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/googlepubsub/GooglePubSubMessageSchemaDefinitionType.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/googlepubsub/GooglePubSubMessageSchemaDefinitionType.java deleted file mode 100644 index f7dd4bc3..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/googlepubsub/GooglePubSubMessageSchemaDefinitionType.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.asyncapi.v3.binding.message.googlepubsub; - -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; - -/** - * Describes Google Cloud Pub/Sub message schema definition type. - * - * @version 0.1.0 - * @see Google Cloud Pub/Sub message binding - * @see Types of schemas - * @author Pavel Bodiachevskii - */ -@JsonClassDescription("Describes Google Cloud Pub/Sub message schema definition type.") -public enum GooglePubSubMessageSchemaDefinitionType { - - @JsonProperty("avro") - AVRO, - - @JsonProperty("protobuf") - PROTOBUF - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/http/HTTPMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/http/HTTPMessageBinding.java deleted file mode 100644 index b96aa576..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/http/HTTPMessageBinding.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.asyncapi.v3.binding.message.http; - -import com.asyncapi.v3.schema.AsyncAPISchema; -import com.asyncapi.v3.binding.message.MessageBinding; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.Nullable; - -/** - * Describes HTTP message binding. - *

- * Contains information about the message representation in HTTP. - * - * @version 0.1.0 - * @see HTTP message binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class HTTPMessageBinding extends MessageBinding { - - /** - * A Schema object containing the definitions for each query parameter. This schema MUST be of type object - * and have a properties key.* - */ - @Nullable - @JsonProperty("headers") - @JsonPropertyDescription("A Schema object containing the definitions for each query parameter. This schema MUST be of type object and have a properties key.") - private AsyncAPISchema headers; - - /** - * The version of this binding. - */ - @Nullable - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.1.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/ibmmq/IBMMQMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/ibmmq/IBMMQMessageBinding.java deleted file mode 100644 index 72efcf1a..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/ibmmq/IBMMQMessageBinding.java +++ /dev/null @@ -1,89 +0,0 @@ -package com.asyncapi.v3.binding.message.ibmmq; - -import com.asyncapi.v3.binding.message.MessageBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.Nullable; - -/** - * Describes IBM MQ message binding. - *

- * This object contains information about the message representation in IBM MQ. - * - * @version 0.1.0 - * @see IBM MQ message binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes IBM MQ message binding.") -public class IBMMQMessageBinding extends MessageBinding { - - /** - * The type of the message. - *

- * MUST be either string, jms or binary - */ - @Nullable - @Builder.Default - @JsonProperty(value = "type", defaultValue = "string") - @JsonPropertyDescription("The type of the message.") - private IBMMQMessageType type = IBMMQMessageType.STRING; - - /** - * 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 in the IBM MQ Knowledge Center. - *

- * OPTIONAL if type = binary - *

- * headers MUST NOT be specified if type = string or jms - */ - @Nullable - @JsonProperty("headers") - @JsonPropertyDescription("Defines the IBM MQ message headers to include with this message. More than one header can be specified as a comma separated list.") - private String headers; - - /** - * Provides additional information for application developers: describes the message type or format. - *

- * The description field of the IBM MQ message binding object MAY include CommonMark markdown formatting. - * A minimum markdown syntax as described by CommonMark 0.27 is assumed. - */ - @Nullable - @JsonProperty("description") - @JsonPropertyDescription("Provides additional information for application developers: describes the message type or format.") - private String 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 in the IBM MQ Knowledge Center. - *

- * expiry value MUST be either zero (unlimited) or greater than zero. - */ - @Nullable - @Builder.Default - @javax.validation.constraints.Min( - value = 0, - message = "Expiry must be greater or equals to 0" - ) - @JsonProperty(value = "expiry", defaultValue = "0") - @JsonPropertyDescription("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.") - private Integer expiry = 0; - - /** - * The version of this binding. - */ - @Nullable - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.1.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/ibmmq/IBMMQMessageType.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/ibmmq/IBMMQMessageType.java deleted file mode 100644 index 171f8a2f..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/ibmmq/IBMMQMessageType.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v3.binding.message.ibmmq; - -import com.fasterxml.jackson.annotation.JsonProperty; - -/** - * Describes IBM MQ message type. - *

- * This object contains information about the message type in IBM MQ. - * - * @version 0.1.0 - * @see IBM MQ message binding - * @author Pavel Bodiachevskii - */ -public enum IBMMQMessageType { - - @JsonProperty("string") - STRING, - - @JsonProperty("jms") - JMS, - - @JsonProperty("binary") - BINARY - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/jms/JMSMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/jms/JMSMessageBinding.java deleted file mode 100644 index f44eec50..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/jms/JMSMessageBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.message.jms; - -import com.asyncapi.v3.binding.message.MessageBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes JMS message binding. - * - * @version 0.1.0 - * @see JMS message binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class JMSMessageBinding extends MessageBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/kafka/KafkaMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/kafka/KafkaMessageBinding.java deleted file mode 100644 index d7a06825..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/kafka/KafkaMessageBinding.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.asyncapi.v3.binding.message.kafka; - -import com.asyncapi.v3.schema.AsyncAPISchema; -import com.asyncapi.v3.binding.message.MessageBinding; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.Nullable; - -/** - * Describes Kafka message binding. - *

- * Contains information about the message representation in Kafka. - * - * @version 0.1.0 - * @see Kafka message binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class KafkaMessageBinding extends MessageBinding { - - /** - * The message key. - */ - @Nullable - @JsonProperty("key") - @JsonPropertyDescription("The message key.") - private AsyncAPISchema key; - - /** - * If a Schema Registry is used when performing this operation, tells where the id of schema is stored (e.g. header or payload). - */ - @Nullable - @JsonProperty("schemaIdLocation") - @JsonPropertyDescription("If a Schema Registry is used when performing this operation, tells where the id of schema is stored (e.g. header or payload).") - private KafkaMessageSchemaIdLocation schemaIdLocation; - - /** - * Number of bytes or vendor specific values when schema id is encoded in payload (e.g confluent/ apicurio-legacy / apicurio-new). - */ - @Nullable - @JsonProperty("schemaIdPayloadEncoding") - @JsonPropertyDescription("Number of bytes or vendor specific values when schema id is encoded in payload (e.g confluent/ apicurio-legacy / apicurio-new).") - private String schemaIdPayloadEncoding; - - /** - * Freeform string for any naming strategy class to use. Clients should default to the vendor default if not supplied. - */ - @Nullable - @JsonProperty("schemaLookupStrategy") - @JsonPropertyDescription("Freeform string for any naming strategy class to use. Clients should default to the vendor default if not supplied.") - private String schemaLookupStrategy; - - /** - * The version of this binding. If omitted, "latest" MUST be assumed. - */ - @Nullable - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.4.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/kafka/KafkaMessageSchemaIdLocation.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/kafka/KafkaMessageSchemaIdLocation.java deleted file mode 100644 index e0a16f88..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/kafka/KafkaMessageSchemaIdLocation.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.asyncapi.v3.binding.message.kafka; - -import com.fasterxml.jackson.annotation.JsonProperty; - -/** - * Describes Kafka message schema id location. - * - * @version 0.1.0 - * @see Kafka message binding - * @author Pavel Bodiachevskii - */ -public enum KafkaMessageSchemaIdLocation { - - @JsonProperty("header") - HEADER, - - @JsonProperty("payload") - PAYLOAD - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/mercure/MercureMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/mercure/MercureMessageBinding.java deleted file mode 100644 index aa3ead1c..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/mercure/MercureMessageBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.message.mercure; - -import com.asyncapi.v3.binding.message.MessageBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes Mercure message binding. - * - * @version 0.1.0 - * @see Mercure message binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class MercureMessageBinding extends MessageBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/mqtt/MQTTMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/mqtt/MQTTMessageBinding.java deleted file mode 100644 index cbaa824d..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/mqtt/MQTTMessageBinding.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.asyncapi.v3.binding.message.mqtt; - -import com.asyncapi.v3.binding.message.MessageBinding; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.Nullable; - -/** - * Describes MQTT message binding. - *

- * Contains information about the message representation in MQTT. - * - * @version 0.1.0 - * @see MQTT message binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class MQTTMessageBinding extends MessageBinding { - - /** - * The version of this binding. If omitted, "latest" MUST be assumed. - */ - @Nullable - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.1.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/mqtt5/MQTT5MessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/mqtt5/MQTT5MessageBinding.java deleted file mode 100644 index e344426e..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/mqtt5/MQTT5MessageBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.message.mqtt5; - -import com.asyncapi.v3.binding.message.MessageBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes MQTT 5 message binding. - * - * @version 0.2.0 - * @see MQTT 5 message binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class MQTT5MessageBinding extends MessageBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/nats/NATSMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/nats/NATSMessageBinding.java deleted file mode 100644 index 8557fc15..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/nats/NATSMessageBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.message.nats; - -import com.asyncapi.v3.binding.message.MessageBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes NATS message binding. - * - * @version 0.1.0 - * @see NATS message binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class NATSMessageBinding extends MessageBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/pulsar/PulsarMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/pulsar/PulsarMessageBinding.java deleted file mode 100644 index 257d9948..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/pulsar/PulsarMessageBinding.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.asyncapi.v3.binding.message.pulsar; - -import com.asyncapi.v3.binding.message.MessageBinding; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * Describes Pulsar message binding. - *

- * This object MUST NOT contain any properties. Its name is reserved for future use. - * - * @version 0.1.0 - * @see Pulsar message binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class PulsarMessageBinding extends MessageBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/redis/RedisMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/redis/RedisMessageBinding.java deleted file mode 100644 index 37b5980a..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/redis/RedisMessageBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.message.redis; - -import com.asyncapi.v3.binding.message.MessageBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes Redis message binding. - * - * @version 0.1.0 - * @see Redis message binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class RedisMessageBinding extends MessageBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/sns/SNSMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/sns/SNSMessageBinding.java deleted file mode 100644 index 17a72455..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/sns/SNSMessageBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.message.sns; - -import com.asyncapi.v3.binding.message.MessageBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes SNS message binding. - * - * @version 0.1.0 - * @see SNS message binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class SNSMessageBinding extends MessageBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/solace/SolaceMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/solace/SolaceMessageBinding.java deleted file mode 100644 index 29b24c2b..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/solace/SolaceMessageBinding.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.asyncapi.v3.binding.message.solace; - -import com.asyncapi.v3.binding.message.MessageBinding; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes Solace message binding. - * - * @version 0.3.0 - * @see Solace message binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class SolaceMessageBinding extends MessageBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/sqs/SQSMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/sqs/SQSMessageBinding.java deleted file mode 100644 index 9defa798..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/sqs/SQSMessageBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.message.sqs; - -import com.asyncapi.v3.binding.message.MessageBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes SQS message binding. - * - * @version 0.1.0 - * @see SQS message binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class SQSMessageBinding extends MessageBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/stomp/STOMPMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/stomp/STOMPMessageBinding.java deleted file mode 100644 index 3e786247..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/stomp/STOMPMessageBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.message.stomp; - -import com.asyncapi.v3.binding.message.MessageBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes STOMP message binding. - * - * @version 0.1.0 - * @see STOMP message binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class STOMPMessageBinding extends MessageBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/ws/WebSocketsMessageBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/ws/WebSocketsMessageBinding.java deleted file mode 100644 index 24dd7274..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/message/ws/WebSocketsMessageBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.message.ws; - -import com.asyncapi.v3.binding.message.MessageBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes WebSockets message binding. - * - * @version 0.1.0 - * @see WebSockets message binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class WebSocketsMessageBinding extends MessageBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/OperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/OperationBinding.java deleted file mode 100644 index c055ade8..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/OperationBinding.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.asyncapi.v3.binding.operation; - -import com.asyncapi.v3.ExtendableObject; -import lombok.EqualsAndHashCode; - -/** - * Describes protocol-specific definition for an operation. - *

- * This object MAY be extended with {@link ExtendableObject}. - * - * @see Specification Extensions - * @see Operation Binding - * @author Pavel Bodiachevskii - * @version 3.0.0 - */ -@EqualsAndHashCode(callSuper = true) -public class OperationBinding extends ExtendableObject { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/amqp/AMQPOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/amqp/AMQPOperationBinding.java deleted file mode 100644 index 56d53677..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/amqp/AMQPOperationBinding.java +++ /dev/null @@ -1,150 +0,0 @@ -package com.asyncapi.v3.binding.operation.amqp; - -import com.asyncapi.v3.binding.operation.OperationBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -/** - * Describes AMQP 0-9-1 operation binding. - *

- * Contains information about the operation representation in AMQP. - * - * @version 0.2.0 - * @see AMQP operation binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes AMQP 0-9-1 operation binding.") -public class AMQPOperationBinding extends OperationBinding { - - /** - * TTL (Time-To-Live) for the message. It MUST be greater than or equal to zero. - *

- * Applies to: publish, subscribe - */ - @Nullable - @javax.validation.constraints.Min( - value = 0, - message = "TTL (Time-To-Live) for the message must be greater than or equal to zero" - ) - @JsonProperty("expiration") - @JsonPropertyDescription("TTL (Time-To-Live) for the message. It MUST be greater than or equal to zero.") - private Integer expiration; - - /** - * Identifies the user who has sent the message. - *

- * Applies to: publish, subscribe - */ - @Nullable - @JsonProperty("userId") - @JsonPropertyDescription("Identifies the user who has sent the message.") - private String userId; - - /** - * The routing keys the message should be routed to at the time of publishing. - *

- * Applies to: publish, subscribe - */ - @Nullable - @JsonProperty("cc") - @JsonPropertyDescription("The routing keys the message should be routed to at the time of publishing.") - private List cc; - - /** - * A priority for the message. - *

- * Applies to: publish, subscribe - */ - @Nullable - @JsonProperty("priority") - @JsonPropertyDescription("A priority for the message.") - private Integer priority; - - /** - * Delivery mode of the message. Its value MUST be either 1 (transient) or 2 (persistent). - *

- * Applies to: publish, subscribe - */ - @Nullable - @javax.validation.constraints.Min( - value = 1, - message = "Delivery mode of the message must be either 1 (transient) or 2 (persistent)" - ) - @javax.validation.constraints.Max( - value = 2, - message = "Delivery mode of the message must be either 1 (transient) or 2 (persistent)" - ) - @JsonProperty("deliveryMode") - @JsonPropertyDescription("Delivery mode of the message. Its value MUST be either 1 (transient) or 2 (persistent).") - private Integer deliveryMode; - - /** - * Whether the message is mandatory or not. - *

- * Applies to: publish - */ - @Nullable - @JsonProperty("mandatory") - @JsonPropertyDescription("Whether the message is mandatory or not.") - private Boolean mandatory; - - /** - * Like {@link #cc} but consumers will not receive this information. - *

- * Applies to: publish - */ - @Nullable - @JsonProperty("bcc") - @JsonPropertyDescription("Like cc but consumers will not receive this information.") - private List bcc; - - /** - * Name of the queue where the consumer should send the response. - *

- * Applies to: publish, subscribe - */ - @Nullable - @JsonProperty("replyTo") - @JsonPropertyDescription("Name of the queue where the consumer should send the response.") - private String replyTo; - - /** - * Whether the message should include a timestamp or not. - *

- * Applies to: publish, subscribe - */ - @Nullable - @JsonProperty("timestamp") - @JsonPropertyDescription("Whether the message should include a timestamp or not.") - private Boolean timestamp; - - /** - * Whether the consumer should ack the message or not. - *

- * Applies to: subscribe - */ - @Nullable - @JsonProperty("ack") - @JsonPropertyDescription("Whether the consumer should ack the message or not.") - private Boolean ack; - - /** - * The version of this binding. If omitted, "latest" MUST be assumed. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.2.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/amqp1/AMQP1OperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/amqp1/AMQP1OperationBinding.java deleted file mode 100644 index 29a7ce02..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/amqp1/AMQP1OperationBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.operation.amqp1; - -import com.asyncapi.v3.binding.operation.OperationBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes AMQP 1.0 operation binding. - * - * @version 0.1.0 - * @see AMQP operation binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class AMQP1OperationBinding extends OperationBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/anypointmq/AnypointMQOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/anypointmq/AnypointMQOperationBinding.java deleted file mode 100644 index 8555af46..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/anypointmq/AnypointMQOperationBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.operation.anypointmq; - -import com.asyncapi.v3.binding.operation.OperationBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes Anypoint MQ operation binding. - * - * @version 0.0.1 - * @see Anypoint MQ operation binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class AnypointMQOperationBinding extends OperationBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/googlepubsub/GooglePubSubOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/googlepubsub/GooglePubSubOperationBinding.java deleted file mode 100644 index 7b074d70..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/googlepubsub/GooglePubSubOperationBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.operation.googlepubsub; - -import com.asyncapi.v3.binding.operation.OperationBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes Google Cloud Pub/Sub operation binding. - * - * @version 0.1.0 - * @see Google Cloud Pub/Sub operation binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class GooglePubSubOperationBinding extends OperationBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/http/HTTPOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/http/HTTPOperationBinding.java deleted file mode 100644 index 0e272299..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/http/HTTPOperationBinding.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.asyncapi.v3.binding.operation.http; - -import com.asyncapi.v3.schema.AsyncAPISchema; -import com.asyncapi.v3.binding.operation.OperationBinding; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * Describes HTTP operation binding. - *

- * Contains information about the operation representation in HTTP. - * - * @version 0.1.0 - * @see HTTP operation binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class HTTPOperationBinding extends OperationBinding { - - /** - * Required. - *

- * Type of operation. Its value MUST be either request or response. - */ - @NotNull - @Builder.Default - @javax.validation.constraints.NotNull - @JsonProperty(value = "type", required = true) - @JsonPropertyDescription("Type of operation. Its value MUST be either request or response.") - private HTTPOperationType type = HTTPOperationType.REQUEST; - - /** - * 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. - */ - @Nullable - @JsonProperty("method") - @JsonPropertyDescription("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.") - private HTTPOperationMethod method; - - /** - * A Schema object containing the definitions for each query parameter. This schema MUST be of type object - * and have a properties key. - */ - @Nullable - @JsonProperty("query") - @JsonPropertyDescription("A Schema object containing the definitions for each query parameter. This schema MUST be of type object and have a properties key.") - private AsyncAPISchema query; - - /** - * The version of this binding. If omitted, "latest" MUST be assumed. - */ - @Nullable - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.1.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/http/HTTPOperationMethod.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/http/HTTPOperationMethod.java deleted file mode 100644 index d71ddf2a..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/http/HTTPOperationMethod.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.asyncapi.v3.binding.operation.http; - -/** - * Describes HTTP operation type. - *

- * Contains information about the operation type. - * - * @version 0.1.0 - * @see HTTP operation binding - * @author Pavel Bodiachevskii - */ -public enum HTTPOperationMethod { - GET, - PUT, - POST, - PATCH, - DELETE, - HEAD, - OPTIONS, - CONNECT, - TRACE -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/http/HTTPOperationType.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/http/HTTPOperationType.java deleted file mode 100644 index 0c7d5031..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/http/HTTPOperationType.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.asyncapi.v3.binding.operation.http; - -import com.fasterxml.jackson.annotation.JsonProperty; - -public enum HTTPOperationType { - - @JsonProperty("request") - REQUEST, - - @JsonProperty("response") - RESPONSE - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/ibmmq/IBMMQOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/ibmmq/IBMMQOperationBinding.java deleted file mode 100644 index 0313e97f..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/ibmmq/IBMMQOperationBinding.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.asyncapi.v3.binding.operation.ibmmq; - -import com.asyncapi.v3.binding.operation.OperationBinding; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * Describes IBM MQ operation binding. - *

- * This object MUST NOT contain any properties. Its name is reserved for future use. - * - * @version 0.1.0 - * @see IBM MQ operation binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class IBMMQOperationBinding extends OperationBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/jms/JMSOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/jms/JMSOperationBinding.java deleted file mode 100644 index f3a1f1a8..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/jms/JMSOperationBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.operation.jms; - -import com.asyncapi.v3.binding.operation.OperationBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes JMS operation binding. - * - * @version 0.1.0 - * @see JMS operation binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class JMSOperationBinding extends OperationBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/kafka/KafkaOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/kafka/KafkaOperationBinding.java deleted file mode 100644 index 5ec025d1..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/kafka/KafkaOperationBinding.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.asyncapi.v3.binding.operation.kafka; - -import com.asyncapi.v3.schema.AsyncAPISchema; -import com.asyncapi.v3.binding.operation.OperationBinding; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.Nullable; - -/** - * Describes Kafka operation binding. - *

- * Contains information about the operation representation in Kafka. - * - * @version 0.1.0 - * @see Kafka operation binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class KafkaOperationBinding extends OperationBinding { - - /** - * Id of the consumer group. - */ - @Nullable - @JsonProperty("groupId") - @JsonPropertyDescription("Id of the consumer group.") - private AsyncAPISchema groupId; - - /** - * Id of the consumer inside a consumer group. - */ - @Nullable - @JsonProperty("clientId") - @JsonPropertyDescription("Id of the consumer inside a consumer group.") - private AsyncAPISchema clientId; - - /** - * The version of this binding. If omitted, "latest" MUST be assumed. - */ - @Nullable - @Builder.Default - private String bindingVersion = "0.4.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/mercure/MercureOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/mercure/MercureOperationBinding.java deleted file mode 100644 index 10dcaa96..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/mercure/MercureOperationBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.operation.mercure; - -import com.asyncapi.v3.binding.operation.OperationBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes Mercure operation binding. - * - * @version 0.1.0 - * @see Mercure operation binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class MercureOperationBinding extends OperationBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/mqtt/MQTTOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/mqtt/MQTTOperationBinding.java deleted file mode 100644 index c9f36c7c..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/mqtt/MQTTOperationBinding.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.asyncapi.v3.binding.operation.mqtt; - -import com.asyncapi.v3.binding.operation.OperationBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.Nullable; - -/** - * Describes MQTT operation binding. - *

- * Contains information about the operation representation in MQTT. - * - * @version 0.1.0 - * @see MQTT operation binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes MQTT operation binding.") -public class MQTTOperationBinding extends OperationBinding { - - /** - * Defines how hard the broker/client will try to ensure that a message is received. - * Its value MUST be either 0, 1 or 2. - *

- * Applies to: publish, subscribe - */ - @Nullable - @javax.validation.constraints.Min( - value = 0, - message = "QoS must be greater or equals to 0." - ) - @javax.validation.constraints.Max( - value = 2, - message = "QoS must be lower or equals to 0." - ) - @JsonProperty("qos") - @JsonPropertyDescription("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).") - private Integer qos; - - /** - * Whether the broker should retain the message or not. - *

- * Applies to: publish, subscribe - */ - @Nullable - @JsonProperty("retain") - @JsonPropertyDescription("Whether the broker should retain the message or not.") - private Boolean retain; - - /** - * The version of this binding. If omitted, "latest" MUST be assumed. - *

- * Applies to: publish, subscribe - */ - @Nullable - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.1.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/mqtt5/MQTT5OperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/mqtt5/MQTT5OperationBinding.java deleted file mode 100644 index 2964aad6..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/mqtt5/MQTT5OperationBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.operation.mqtt5; - -import com.asyncapi.v3.binding.operation.OperationBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes MQTT 5 operation binding. - * - * @version 0.2.0 - * @see MQTT 5 operation binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class MQTT5OperationBinding extends OperationBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/nats/NATSOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/nats/NATSOperationBinding.java deleted file mode 100644 index 9a6c2cf2..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/nats/NATSOperationBinding.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.asyncapi.v3.binding.operation.nats; - -import com.asyncapi.v3.binding.operation.OperationBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.Nullable; - -/** - * Describes NATS operation binding. - * - * @version 0.1.0 - * @see NATS operation binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes NATS operation binding.") -public class NATSOperationBinding extends OperationBinding { - - /** - * Defines the name of the queue to use. It MUST NOT exceed 255 characters. - */ - @Nullable - @javax.validation.constraints.Size( - max = 255, - message = "Queue name must be lower or equals to 255." - ) - @JsonProperty("queue") - @JsonPropertyDescription("Defines the name of the queue to use. It MUST NOT exceed 255 characters.") - private String queue; - - /** - * The version of this binding. If omitted, "latest" MUST be assumed. - */ - @Nullable - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.1.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/pulsar/PulsarOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/pulsar/PulsarOperationBinding.java deleted file mode 100644 index 3670d242..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/pulsar/PulsarOperationBinding.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.asyncapi.v3.binding.operation.pulsar; - -import com.asyncapi.v3.binding.operation.OperationBinding; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * Describes Pulsar operation binding. - *

- * This object MUST NOT contain any properties. Its name is reserved for future use. - * - * @version 0.1.0 - * @see Pulsar operation binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class PulsarOperationBinding extends OperationBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/redis/RedisOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/redis/RedisOperationBinding.java deleted file mode 100644 index 0c4eb8e0..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/redis/RedisOperationBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.operation.redis; - -import com.asyncapi.v3.binding.operation.OperationBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes Redis operation binding. - * - * @version 0.1.0 - * @see Redis operation binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class RedisOperationBinding extends OperationBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/sns/SNSOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/sns/SNSOperationBinding.java deleted file mode 100644 index e0445fc8..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/sns/SNSOperationBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.operation.sns; - -import com.asyncapi.v3.binding.operation.OperationBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes SNS operation binding. - * - * @version 0.1.0 - * @see SNS operation binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class SNSOperationBinding extends OperationBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/solace/SolaceOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/solace/SolaceOperationBinding.java deleted file mode 100644 index bd87d8a7..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/solace/SolaceOperationBinding.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.asyncapi.v3.binding.operation.solace; - -import com.asyncapi.v3.binding.operation.OperationBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -/** - * Describes Solace operation binding. - *

- * Contains information about the operation representation in Solace PubSub+ Broker. - * - * @version 0.3.0 - * @see Solace operation binding - * @author Dennis Brinley, Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes Solace operation binding.") -public class SolaceOperationBinding extends OperationBinding { - - /** - * List of destinations - */ - @Nullable - @JsonProperty("destinations") - @JsonPropertyDescription("List of destinations") - private List destinations; - - /** - * The version of this binding. (e.g. bindingVersion: 0.3.0) - */ - @Nullable - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.3.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/solace/SolaceOperationDestination.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/solace/SolaceOperationDestination.java deleted file mode 100644 index ef959dfb..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/solace/SolaceOperationDestination.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.asyncapi.v3.binding.operation.solace; - -import com.asyncapi.v3.binding.operation.solace.queue.SolaceOperationQueue; -import com.asyncapi.v3.binding.operation.solace.topic.SolaceOperationTopic; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -/** - * Describes Solace destination. - *

- * Contains information about the destination in Solace PubSub+ Broker. - * - * @version 0.3.0 - * @see Solace operation binding - * @author Dennis Brinley, Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@JsonClassDescription("Describes Solace destination.") -public class SolaceOperationDestination { - - /** - * 'queue' or 'topic'. If the type is queue, then the subscriber can bind to the queue, which in turn will - * subscribe to the topic as represented by the channel name or to the provided topicSubscriptions. - */ - @Nullable - @JsonProperty("destinationType") - @JsonPropertyDescription("'queue' or 'topic'. If the type is queue, then the subscriber can bind to the queue, which in turn will subscribe to the topic as represented by the channel name or to the provided topicSubscriptions.") - private Type destinationType; - - /** - * 'direct' or 'persistent'. This determines the quality of service for publishing messages as documented here. - * Default is 'persistent'. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "deliveryMode", defaultValue = "persistent") - @JsonPropertyDescription("'direct' or 'persistent'. This determines the quality of service for publishing messages as documented at https://docs.solace.com/Get-Started/Core-Concepts-Message-Delivery-Modes.htm. Default is 'persistent'.") - private DeliveryMode deliveryMode = DeliveryMode.PERSISTENT; - - /** - * Solace queue destination details. - */ - @Nullable - @JsonProperty("queue") - @JsonPropertyDescription("Solace queue destination details.") - private SolaceOperationQueue queue; - - /** - * Solace topic destination details. - */ - @Nullable - @JsonProperty("topic") - @JsonPropertyDescription("Solace topic destination details.") - private SolaceOperationTopic topic; - - public enum Type { - - @JsonProperty("queue") - QUEUE, - @JsonProperty("topic") - TOPIC - - } - - public enum DeliveryMode { - - @JsonProperty("direct") - DIRECT, - @JsonProperty("persistent") - PERSISTENT - - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/solace/queue/SolaceOperationQueue.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/solace/queue/SolaceOperationQueue.java deleted file mode 100644 index d2c3f5c7..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/solace/queue/SolaceOperationQueue.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.asyncapi.v3.binding.operation.solace.queue; - -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -/** - * Describes Solace queue. - *

- * Contains information about the queue in Solace PubSub+ Broker. - * - * @version 0.3.0 - * @see Solace operation binding - * @author Dennis Brinley, Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@JsonClassDescription("Describes Solace queue.") -public class SolaceOperationQueue { - - /** - * The name of the queue, only applicable when destinationType is 'queue'. - */ - @Nullable - @JsonProperty("name") - @JsonPropertyDescription("The name of the queue, only applicable when destinationType is 'queue'.") - private String name; - - /** - * A list of topics that the queue subscribes to, only applicable when destinationType is 'queue'. - * If none is given, the queue subscribes to the topic as represented by the channel name. - */ - @Nullable - @JsonProperty("topicSubscriptions") - @JsonPropertyDescription("A list of topics that the queue subscribes to, only applicable when destinationType is 'queue'. If none is given, the queue subscribes to the topic as represented by the channel name.") - private List topicSubscriptions; - - /** - * 'exclusive' or 'nonexclusive'. This is documented here. Only applicable when destinationType is 'queue'. - */ - @Nullable - @JsonProperty("accessType") - @JsonPropertyDescription("'exclusive' or 'nonexclusive'. This is documented at https://docs.solace.com/Messaging/Guaranteed-Msg/Endpoints.htm#Queues. Only applicable when destinationType is 'queue'.") - private AccessType accessType; - - /** - * The maximum amount of message spool that the given queue may use. This is documented here. - * Only applicable when destinationType is 'queue'. - */ - @Nullable - @JsonProperty("maxMsgSpoolSize") - @JsonPropertyDescription("The maximum amount of message spool that the given queue may use. This is documented at https://docs.solace.com/Messaging/Guaranteed-Msg/Message-Spooling.htm#max-spool-usage. Only applicable when destinationType is 'queue'.") - private String maxMsgSpoolSize; - - /** - * The maximum TTL to apply to messages to be spooled. This is documented here. - * Only applicable when destinationType is 'queue'. - */ - @Nullable - @JsonProperty("maxTtl") - @JsonPropertyDescription("The maximum TTL to apply to messages to be spooled. This is documented at https://docs.solace.com/Messaging/Guaranteed-Msg/Configuring-Queues.htm. Only applicable when destinationType is 'queue'.") - private String maxTtl; - - public enum AccessType { - - @JsonProperty("exclusive") - EXCLUSIVE, - @JsonProperty("non-exclusive") - NON_EXCLUSIVE - - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/solace/topic/SolaceOperationTopic.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/solace/topic/SolaceOperationTopic.java deleted file mode 100644 index 9d20880d..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/solace/topic/SolaceOperationTopic.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.asyncapi.v3.binding.operation.solace.topic; - -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -/** - * Describes Solace topic. - *

- * Contains information about the topic in Solace PubSub+ Broker. - * - * @version 0.3.0 - * @see Solace operation binding - * @author Dennis Brinley, Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@JsonClassDescription("Describes Solace topic.") -public class SolaceOperationTopic { - - /** - * A list of topics that the client subscribes to, only applicable when destinationType is 'topic'. - * If none is given, the client subscribes to the topic as represented by the channel name. - */ - @Nullable - @JsonProperty("topicSubscriptions") - @JsonPropertyDescription("A list of topics that the client subscribes to, only applicable when destinationType is 'topic'. If none is given, the client subscribes to the topic as represented by the channel name.") - protected List topicSubscriptions; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/sqs/SQSOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/sqs/SQSOperationBinding.java deleted file mode 100644 index de34599b..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/sqs/SQSOperationBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.operation.sqs; - -import com.asyncapi.v3.binding.operation.OperationBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes SQS operation binding. - * - * @version 0.1.0 - * @see SQS operation binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class SQSOperationBinding extends OperationBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/stomp/STOMPOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/stomp/STOMPOperationBinding.java deleted file mode 100644 index 5679be40..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/stomp/STOMPOperationBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.operation.stomp; - -import com.asyncapi.v3.binding.operation.OperationBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes STOMP operation binding. - * - * @version 0.1.0 - * @see STOMP operation binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class STOMPOperationBinding extends OperationBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/ws/WebSocketsOperationBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/ws/WebSocketsOperationBinding.java deleted file mode 100644 index a2e14bc5..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/operation/ws/WebSocketsOperationBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.operation.ws; - -import com.asyncapi.v3.binding.operation.OperationBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes WebSockets operation binding. - * - * @version 0.1.0 - * @see WebSockets operation binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class WebSocketsOperationBinding extends OperationBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/ServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/ServerBinding.java deleted file mode 100644 index d4c58f0e..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/ServerBinding.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.asyncapi.v3.binding.server; - -import com.asyncapi.v3.ExtendableObject; -import lombok.EqualsAndHashCode; - -/** - * Describes protocol-specific definition for a server. - *

- * This object MAY be extended with {@link ExtendableObject}. - * - * @see Specification Extensions - * @see Server Binding - * @author Pavel Bodiachevskii - * @version 3.0.0 - */ -@EqualsAndHashCode(callSuper = true) -public class ServerBinding extends ExtendableObject { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/amqp/AMQPServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/amqp/AMQPServerBinding.java deleted file mode 100644 index 17294433..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/amqp/AMQPServerBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.server.amqp; - -import com.asyncapi.v3.binding.server.ServerBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes AMQP 0-9-1 server binding. - * - * @version 0.2.0 - * @see AMQP server binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class AMQPServerBinding extends ServerBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/amqp1/AMQP1ServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/amqp1/AMQP1ServerBinding.java deleted file mode 100644 index a97dbc33..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/amqp1/AMQP1ServerBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.server.amqp1; - -import com.asyncapi.v3.binding.server.ServerBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes AMQP 1.0 server binding. - * - * @version 0.1.0 - * @see AMQP server binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class AMQP1ServerBinding extends ServerBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/anypointmq/AnypointMQServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/anypointmq/AnypointMQServerBinding.java deleted file mode 100644 index 5771573a..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/anypointmq/AnypointMQServerBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.server.anypointmq; - -import com.asyncapi.v3.binding.server.ServerBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes Anypoint MQ server binding. - * - * @version 0.0.1 - * @see Anypoint MQ server binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class AnypointMQServerBinding extends ServerBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/googlepubsub/GooglePubSubServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/googlepubsub/GooglePubSubServerBinding.java deleted file mode 100644 index a8ff818f..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/googlepubsub/GooglePubSubServerBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.server.googlepubsub; - -import com.asyncapi.v3.binding.server.ServerBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes Google Cloud Pub/Sub server binding. - * - * @version 0.1.0 - * @see Google Cloud Pub/Sub server binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class GooglePubSubServerBinding extends ServerBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/http/HTTPServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/http/HTTPServerBinding.java deleted file mode 100644 index 85c7e333..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/http/HTTPServerBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.server.http; - -import com.asyncapi.v3.binding.server.ServerBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes HTTP server binding. - * - * @version 0.1.0 - * @see HTTP server binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class HTTPServerBinding extends ServerBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/ibmmq/IBMMQServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/ibmmq/IBMMQServerBinding.java deleted file mode 100644 index 5b424552..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/ibmmq/IBMMQServerBinding.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.asyncapi.v3.binding.server.ibmmq; - -import com.asyncapi.v3.binding.server.ServerBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.Nullable; - -/** - * Describes IBM MQ server binding. - *

- * 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. - * - * @version 0.1.0 - * @see IBM MQ server binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes IBM MQ server binding.") -public class IBMMQServerBinding extends ServerBinding { - - /** - * 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. - *

- * MUST NOT be specified for URI Scheme http:// or file:// - */ - @Nullable - @JsonProperty("groupId") - @JsonPropertyDescription("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.") - private String groupId; - - /** - * The name of the IBM MQ queue manager to bind to in the CCDT file. - *

- * MUST NOT be specified for URI Scheme ibmmq:// - */ - @Nullable - @Builder.Default - @JsonProperty(value = "ccdtQueueManagerName", defaultValue = "*") - @JsonPropertyDescription("The name of the IBM MQ queue manager to bind to in the CCDT file.") - private String ccdtQueueManagerName = "*"; - - /** - * 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. - *

- * MUST NOT be specified for protocol ibmmq or URI Scheme file:// or http:// - */ - @Nullable - @Builder.Default - @JsonProperty(value = "cipherSpec", defaultValue = "ANY") - @JsonPropertyDescription("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.") - private String cipherSpec = "ANY"; - - /** - * 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. - *

- * MUST NOT be specified for URI Scheme file:// or http:// - */ - @Builder.Default - @JsonProperty(value = "multiEndpointServer", defaultValue = "false") - @JsonPropertyDescription("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. MUST NOT be specified for URI Scheme file:// or http://") - private Boolean multiEndpointServer = false; - - /** - * 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. - *

- * MUST be 0-999999 - */ - @Builder.Default - @javax.validation.constraints.Min( - value = 0, - message = "Heart beat interval must be greater or equals to 0" - ) - @javax.validation.constraints.Max( - value = 999999, - message = "Heart beat interval must be less or equals to 999999" - ) - @JsonProperty(value = "heartBeatInterval", defaultValue = "300") - @JsonPropertyDescription("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.") - private int heartBeatInterval = 300; - - /** - * The version of this binding. - */ - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.1.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/jms/JMSServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/jms/JMSServerBinding.java deleted file mode 100644 index 406ac082..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/jms/JMSServerBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.server.jms; - -import com.asyncapi.v3.binding.server.ServerBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes JMS server binding. - * - * @version 0.1.0 - * @see JMS server binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class JMSServerBinding extends ServerBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/kafka/KafkaServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/kafka/KafkaServerBinding.java deleted file mode 100644 index b0122269..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/kafka/KafkaServerBinding.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.asyncapi.v3.binding.server.kafka; - -import com.asyncapi.v3.binding.server.ServerBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.Nullable; - -/** - * Describes Kafka server binding. - * - * @version 0.4.0 - * @see Kafka server binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes Kafka server binding.") -public class KafkaServerBinding extends ServerBinding { - - /** - * API URL for the Schema Registry used when producing Kafka messages (if a Schema Registry was used) - */ - @Nullable - @JsonProperty("schemaRegistryUrl") - @JsonPropertyDescription("API URL for the Schema Registry used when producing Kafka messages (if a Schema Registry was used)") - private String schemaRegistryUrl; - - /** - * MUST NOT be specified if schemaRegistryUrl is not specified - *

- * The vendor of Schema Registry and Kafka serdes library that should be used (e.g. apicurio, confluent, ibm, or karapace) - */ - @Nullable - @JsonProperty("schemaRegistryVendor") - @JsonPropertyDescription("The vendor of Schema Registry and Kafka serdes library that should be used (e.g. apicurio, confluent, ibm, or karapace)") - private String schemaRegistryVendor; - - /** - * The version of this binding. - */ - @Nullable - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.4.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/mercure/MercureServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/mercure/MercureServerBinding.java deleted file mode 100644 index 6919e41d..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/mercure/MercureServerBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.server.mercure; - -import com.asyncapi.v3.binding.server.ServerBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes Mercure server binding. - * - * @version 0.1.0 - * @see Mercure server binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class MercureServerBinding extends ServerBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/mqtt/MQTTServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/mqtt/MQTTServerBinding.java deleted file mode 100644 index 29a261d0..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/mqtt/MQTTServerBinding.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.asyncapi.v3.binding.server.mqtt; - -import com.asyncapi.v3.binding.server.ServerBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.Nullable; - -/** - * Describes MQTT server binding. - *

- * Contains information about the server representation in MQTT. - * - * @version 0.1.0 - * @see MQTT server binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes MQTT server binding.") -public class MQTTServerBinding extends ServerBinding { - - /** - * The client identifier. - */ - @Nullable - @JsonProperty("clientId") - @JsonPropertyDescription("The client identifier.") - private String clientId; - - /** - * Whether to create a persisten connection or not. When false, the connection will be persistent. - */ - @Nullable - @JsonProperty("cleanSession") - @JsonPropertyDescription("Whether to create a persisten connection or not. When false, the connection will be persistent.") - private Boolean cleanSession; - - /** - * Last Will and Testament configuration. - */ - @Nullable - @JsonProperty("lastWill") - @JsonPropertyDescription("Last Will and Testament configuration.") - private MQTTServerLastWillConfiguration lastWill; - - /** - * Interval in seconds of the longest period of time the broker and the client can endure without sending a message. - */ - @Nullable - @JsonProperty("keepAlive") - @JsonPropertyDescription("Interval in seconds of the longest period of time the broker and the client can endure without sending a message.") - private Integer keepAlive; - - /** - * The version of this binding. If omitted, "latest" MUST be assumed. - */ - @Nullable - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.1.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/mqtt/MQTTServerLastWillConfiguration.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/mqtt/MQTTServerLastWillConfiguration.java deleted file mode 100644 index 99e63a48..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/mqtt/MQTTServerLastWillConfiguration.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.asyncapi.v3.binding.server.mqtt; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import org.jetbrains.annotations.Nullable; - -/** - * Describes MQTT server last will configuration. - * - * @version 0.1.0 - * @see MQTT server binding - * @author Pavel Bodiachevskii - */ -@Data -@EqualsAndHashCode -@NoArgsConstructor -@AllArgsConstructor -public class MQTTServerLastWillConfiguration { - - /** - * The topic where the Last Will and Testament message will be sent. - */ - @Nullable - @JsonProperty("topic") - @JsonPropertyDescription("The topic where the Last Will and Testament message will be sent.") - private String topic; - - /** - * 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. - */ - @Nullable - @javax.validation.constraints.Min( - value = 0, - message = "QoS must be greater or equals to 0." - ) - @javax.validation.constraints.Max( - value = 2, - message = "QoS must be lower or equals to 0." - ) - @JsonProperty("qos") - @JsonPropertyDescription("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.") - private Integer qos; - - /** - * Last Will message. - */ - @Nullable - @JsonProperty("message") - @JsonPropertyDescription("Last Will message.") - private String message; - - /** - * Whether the broker should retain the Last Will and Testament message or not. - */ - @Nullable - @JsonProperty("retain") - @JsonPropertyDescription("Whether the broker should retain the Last Will and Testament message or not.") - private Boolean retain; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/mqtt5/MQTT5ServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/mqtt5/MQTT5ServerBinding.java deleted file mode 100644 index a9522e04..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/mqtt5/MQTT5ServerBinding.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.asyncapi.v3.binding.server.mqtt5; - -import com.asyncapi.v3.binding.server.ServerBinding; -import lombok.*; - -/** - * Describes MQTT 5 server binding. - * - * @version 0.2.0 - * @see MQTT 5 server binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class MQTT5ServerBinding extends ServerBinding { - - /** - * TODO: support reference, Schema object - * Session Expiry Interval in seconds or a Schema Object containing the definition of the interval. - */ - private int sessionExpiryInterval; - - @Builder.Default - private String bindingVersion = "0.2.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/nats/NATSServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/nats/NATSServerBinding.java deleted file mode 100644 index 00331b04..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/nats/NATSServerBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.server.nats; - -import com.asyncapi.v3.binding.server.ServerBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes NATS channel binding. - * - * @version 0.1.0 - * @see NATS server binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class NATSServerBinding extends ServerBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/pulsar/PulsarServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/pulsar/PulsarServerBinding.java deleted file mode 100644 index b67d8ef0..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/pulsar/PulsarServerBinding.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.asyncapi.v3.binding.server.pulsar; - -import com.asyncapi.v3.binding.server.ServerBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.Nullable; - -/** - * Describes Pulsar server binding. - * - * @version 0.1.0 - * @see Redis server binding - * @author Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes Pulsar server binding.") -public class PulsarServerBinding extends ServerBinding { - - /** - * The pulsar tenant. If omitted, "public" MUST be assumed. - */ - @Nullable - @Builder.Default - @JsonProperty(value = "tenant", defaultValue = "public") - @JsonPropertyDescription("The pulsar tenant. If omitted, \"public\" MUST be assumed.") - private String tenant = "public"; - - /** - * The version of this binding. - */ - @Nullable - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.1.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/redis/RedisServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/redis/RedisServerBinding.java deleted file mode 100644 index bea734b6..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/redis/RedisServerBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.server.redis; - -import com.asyncapi.v3.binding.server.ServerBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes Redis server binding. - * - * @version 0.1.0 - * @see Redis server binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class RedisServerBinding extends ServerBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/sns/SNSServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/sns/SNSServerBinding.java deleted file mode 100644 index 87b7dc42..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/sns/SNSServerBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.server.sns; - -import com.asyncapi.v3.binding.server.ServerBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes SNS server binding. - * - * @version 0.1.0 - * @see SNS server binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class SNSServerBinding extends ServerBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/solace/SolaceServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/solace/SolaceServerBinding.java deleted file mode 100644 index c98e8470..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/solace/SolaceServerBinding.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.asyncapi.v3.binding.server.solace; - -import com.asyncapi.v3.binding.server.ServerBinding; -import com.fasterxml.jackson.annotation.JsonClassDescription; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyDescription; -import lombok.*; -import org.jetbrains.annotations.Nullable; - -/** - * Describes Solace server binding. - * - * @version 0.3.0 - * @see Solace server binding - * @author Dennis Brinley, Pavel Bodiachevskii - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -@JsonClassDescription("Describes Solace server binding.") -public class SolaceServerBinding extends ServerBinding { - - /** - * Message VPN of the Solace Broker - *

- * e.g. msgVpn: solace-broker-msg-vpn - */ - @Nullable - @JsonProperty("msgVpn") - @JsonPropertyDescription("Message VPN of the Solace Broker") - private String msgVpn; - - /** - * The version of this binding. - */ - @Nullable - @Builder.Default - @JsonProperty("bindingVersion") - @JsonPropertyDescription("The version of this binding.") - private String bindingVersion = "0.3.0"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/sqs/SQSServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/sqs/SQSServerBinding.java deleted file mode 100644 index ce8f6962..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/sqs/SQSServerBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.server.sqs; - -import com.asyncapi.v3.binding.server.ServerBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes SQS server binding. - * - * @version 0.1.0 - * @see SQS server binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class SQSServerBinding extends ServerBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/stomp/STOMPServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/stomp/STOMPServerBinding.java deleted file mode 100644 index 871557c8..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/stomp/STOMPServerBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.server.stomp; - -import com.asyncapi.v3.binding.server.ServerBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes STOMP server binding. - * - * @version 0.1.0 - * @see STOMP server binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class STOMPServerBinding extends ServerBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/ws/WebSocketsServerBinding.java b/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/ws/WebSocketsServerBinding.java deleted file mode 100644 index b76ab214..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/binding/server/ws/WebSocketsServerBinding.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.server.ws; - -import com.asyncapi.v3.binding.server.ServerBinding; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -/** - * This class MUST NOT contain any properties. Its name is reserved for future use. - *

- * Describes WebSockets server binding. - * - * @version 0.1.0 - * @see WebSockets server binding - * @author Pavel Bodiachevskii - */ -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class WebSocketsServerBinding extends ServerBinding { -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/BindingsMapDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/BindingsMapDeserializer.java deleted file mode 100644 index d4e782c6..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/BindingsMapDeserializer.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.asyncapi.v3.jackson; - -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; - -/** - * Deserializes AsyncAPI bindings map. - */ -public abstract class BindingsMapDeserializer extends JsonDeserializer> { - - public abstract Object chooseKnownPojo(String bindingKey, JsonNode binding, ObjectCodec objectCodec) throws IOException; - - @Override - public Map deserialize( - JsonParser p, - DeserializationContext ctxt - ) throws IOException, JsonProcessingException { - ObjectCodec objectCodec = p.getCodec(); - JsonNode node = objectCodec.readTree(p); - - Map bindings = new HashMap<>(); - - node.fieldNames().forEachRemaining( - fieldName -> { - try { - bindings.put(fieldName, chooseKnownPojo(fieldName, node.get(fieldName), objectCodec)); - } catch (IOException e) { - e.printStackTrace(); - } - } - ); - - return bindings; - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/ListOfReferencesOrObjectsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/ListOfReferencesOrObjectsDeserializer.java deleted file mode 100644 index e4212093..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/ListOfReferencesOrObjectsDeserializer.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.asyncapi.v3.jackson; - -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -public abstract class ListOfReferencesOrObjectsDeserializer extends JsonDeserializer> { - - abstract public Class objectTypeClass(); - - abstract public Class referenceClass(); - - @Override - public List deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException { - ObjectCodec objectCodec = p.getCodec(); - JsonNode node = objectCodec.readTree(p); - - List traits = new ArrayList<>(); - - node.forEach( - traitsValue -> { - try { - traits.add(chooseKnownPojo(traitsValue, objectCodec)); - } catch (IOException e) { - e.printStackTrace(); - } - } - ); - - return traits; - } - - private Object chooseKnownPojo(JsonNode jsonNode, ObjectCodec objectCodec) throws IOException { - JsonNode ref = jsonNode.get("$ref"); - try (JsonParser jsonParser = jsonNode.traverse(objectCodec)) { - if (ref != null) { - return jsonParser.readValueAs(referenceClass()); - } else { - return jsonParser.readValueAs(objectTypeClass()); - } - } - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/MapOfReferencesOrObjectsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/MapOfReferencesOrObjectsDeserializer.java deleted file mode 100644 index 53d967a7..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/MapOfReferencesOrObjectsDeserializer.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.asyncapi.v3.jackson; - -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; - -/** - * Deserializes AsyncAPI map of parameters - * @param object - */ -public abstract class MapOfReferencesOrObjectsDeserializer extends JsonDeserializer> { - - abstract public Class objectTypeClass(); - - abstract public Class referenceClass(); - - @Override - public Map deserialize(JsonParser jsonParser, - DeserializationContext deserializationContext - ) throws IOException, JsonProcessingException { - ObjectCodec objectCodec = jsonParser.getCodec(); - JsonNode map = objectCodec.readTree(jsonParser); - - Map parameters = new HashMap<>(); - - map.fieldNames().forEachRemaining( - fieldName -> { - /* - Problem: - Both, Reference class and Schema class have $ref field. - So, this is only reason why I receive next exception: - "com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: - Unrecognized field "title" (class com.asyncapi.v2._6_0.model.Reference), - not marked as ignorable (one known property: "$ref"])" - in case when Schema contains $ref. - Solution: - Try to deserialize reference. In case of exception, try to deserialize it as given ObjectType. In case of - one more exception, throw it. - TODO: Think how to improve. - */ - try { - parameters.put(fieldName, chooseKnownPojo(map.get(fieldName), objectCodec)); - } catch (IOException ignore) { - try { - parameters.put(fieldName, readAsObject(map.get(fieldName), objectCodec)); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - ); - - return parameters; - } - - private Object chooseKnownPojo(JsonNode jsonNode, ObjectCodec objectCodec) throws IOException { - JsonNode ref = jsonNode.get("$ref"); - try (JsonParser jsonParser = jsonNode.traverse(objectCodec)) { - if (ref != null) { - return jsonParser.readValueAs(referenceClass()); - } else { - return jsonParser.readValueAs(objectTypeClass()); - } - } - } - - private Object readAsObject(JsonNode jsonNode, ObjectCodec objectCodec) throws IOException { - try (JsonParser jsonParser = jsonNode.traverse(objectCodec)) { - return jsonParser.readValueAs(objectTypeClass()); - } - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/ReferenceOrObjectDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/ReferenceOrObjectDeserializer.java deleted file mode 100644 index b9b34882..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/ReferenceOrObjectDeserializer.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.asyncapi.v3.jackson; - -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException; - -import java.io.IOException; - -public abstract class ReferenceOrObjectDeserializer extends JsonDeserializer { - - abstract public Class objectTypeClass(); - - abstract public Class referenceClass(); - - @Override - public Object deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException { - ObjectCodec objectCodec = p.getCodec(); - JsonNode node = objectCodec.readTree(p); - - /* - Problem: - Both, Reference class and Schema class have $ref field. - So, this is only reason why I receive next exception: - "com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: - Unrecognized field "title" (class com.asyncapi.v2._6_0.model.Reference), - not marked as ignorable (one known property: "$ref"])" - in case when Schema contains $ref. - Solution: - Try to deserialize reference. In case of exception, try to deserialize it as given ObjectType. In case of - one more exception, throw it. - TODO: Think how to improve. - */ - try { - return chooseKnownPojo(node, objectCodec); - } catch (UnrecognizedPropertyException unrecognizedPropertyException) { - return readAsObject(node, objectCodec); - } - } - - private Object chooseKnownPojo(JsonNode jsonNode, ObjectCodec objectCodec) throws IOException { - JsonNode ref = jsonNode.get("$ref"); - try (JsonParser jsonParser = jsonNode.traverse(objectCodec)) { - if (ref != null) { - return jsonParser.readValueAs(referenceClass()); - } else { - return jsonParser.readValueAs(objectTypeClass()); - } - } - } - - private Object readAsObject(JsonNode jsonNode, ObjectCodec objectCodec) throws IOException { - try (JsonParser jsonParser = jsonNode.traverse(objectCodec)) { - return jsonParser.readValueAs(objectTypeClass()); - } - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/SchemaItemsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/SchemaItemsDeserializer.java deleted file mode 100644 index 7307e5c4..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/SchemaItemsDeserializer.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.asyncapi.v3.jackson; - -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.node.ArrayNode; -import com.fasterxml.jackson.databind.node.JsonNodeType; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -public abstract class SchemaItemsDeserializer extends JsonDeserializer { - - abstract public Class schemaClass(); - - @Override - public Object deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException { - ObjectCodec objectCodec = jsonParser.getCodec(); - JsonNode node = objectCodec.readTree(jsonParser); - JsonNodeType nodeType = node.getNodeType(); - if (nodeType == JsonNodeType.OBJECT) { - return readAsSchema(node, objectCodec); - } - if (nodeType == JsonNodeType.ARRAY) { - return readAsListOfSchemas((ArrayNode) node, objectCodec); - } - return readAsObject(node, objectCodec); - } - - private List readAsListOfSchemas(ArrayNode arrayNode, ObjectCodec objectCodec) throws IOException { - List schemaList = new ArrayList<>(); - for (JsonNode childNode : arrayNode) { - schemaList.add(readAsSchema(childNode, objectCodec)); - } - return schemaList; - } - - private Schema readAsSchema(JsonNode jsonNode, ObjectCodec objectCodec) throws IOException { - try (JsonParser parser = jsonNode.traverse(objectCodec)) { - return parser.readValueAs(schemaClass()); - } - } - - private Object readAsObject(JsonNode jsonNode, ObjectCodec objectCodec) throws IOException { - try (JsonParser jsonParser = jsonNode.traverse(objectCodec)) { - return jsonParser.readValueAs(Object.class); - } - } -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/binding/channel/ChannelBindingsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/binding/channel/ChannelBindingsDeserializer.java deleted file mode 100644 index 38ffac56..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/binding/channel/ChannelBindingsDeserializer.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.asyncapi.v3.jackson.binding.channel; - -import com.asyncapi.v3.Reference; -import com.asyncapi.v3.binding.channel.amqp.AMQPChannelBinding; -import com.asyncapi.v3.binding.channel.amqp1.AMQP1ChannelBinding; -import com.asyncapi.v3.binding.channel.anypointmq.AnypointMQChannelBinding; -import com.asyncapi.v3.binding.channel.googlepubsub.GooglePubSubChannelBinding; -import com.asyncapi.v3.binding.channel.http.HTTPChannelBinding; -import com.asyncapi.v3.binding.channel.ibmmq.IBMMQChannelBinding; -import com.asyncapi.v3.binding.channel.jms.JMSChannelBinding; -import com.asyncapi.v3.binding.channel.kafka.KafkaChannelBinding; -import com.asyncapi.v3.binding.channel.mercure.MercureChannelBinding; -import com.asyncapi.v3.binding.channel.mqtt.MQTTChannelBinding; -import com.asyncapi.v3.binding.channel.mqtt5.MQTT5ChannelBinding; -import com.asyncapi.v3.binding.channel.nats.NATSChannelBinding; -import com.asyncapi.v3.binding.channel.pulsar.PulsarChannelBinding; -import com.asyncapi.v3.binding.channel.redis.RedisChannelBinding; -import com.asyncapi.v3.binding.channel.sns.SNSChannelBinding; -import com.asyncapi.v3.binding.channel.solace.SolaceChannelBinding; -import com.asyncapi.v3.binding.channel.sqs.SQSChannelBinding; -import com.asyncapi.v3.binding.channel.stomp.STOMPChannelBinding; -import com.asyncapi.v3.binding.channel.ws.WebSocketsChannelBinding; -import com.asyncapi.v3.jackson.BindingsMapDeserializer; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -/** - * Serializes channel bindings map. - * - * @author Pavel Bodiachevskii - */ -public class ChannelBindingsDeserializer extends BindingsMapDeserializer { - - public Object chooseKnownPojo(String bindingKey, JsonNode binding, ObjectCodec objectCodec) throws IOException { - try (JsonParser jsonParser = binding.traverse(objectCodec)) { - if (binding.get("$ref" ) != null) { - return jsonParser.readValueAs(Reference.class); - } - - switch (bindingKey) { - case "amqp": return jsonParser.readValueAs(AMQPChannelBinding.class); - case "amqp1": return jsonParser.readValueAs(AMQP1ChannelBinding.class); - case "anypointmq": return jsonParser.readValueAs(AnypointMQChannelBinding.class); - case "googlepubsub": return jsonParser.readValueAs(GooglePubSubChannelBinding.class); - case "http": return jsonParser.readValueAs(HTTPChannelBinding.class); - case "ibmmq": return jsonParser.readValueAs(IBMMQChannelBinding.class); - case "jms": return jsonParser.readValueAs(JMSChannelBinding.class); - case "kafka": return jsonParser.readValueAs(KafkaChannelBinding.class); - case "mercure": return jsonParser.readValueAs(MercureChannelBinding.class); - case "mqtt": return jsonParser.readValueAs(MQTTChannelBinding.class); - case "mqtt5": return jsonParser.readValueAs(MQTT5ChannelBinding.class); - case "nats": return jsonParser.readValueAs(NATSChannelBinding.class); - case "pulsar": return jsonParser.readValueAs(PulsarChannelBinding.class); - case "redis": return jsonParser.readValueAs(RedisChannelBinding.class); - case "sns": return jsonParser.readValueAs(SNSChannelBinding.class); - case "solace": return jsonParser.readValueAs(SolaceChannelBinding.class); - case "sqs": return jsonParser.readValueAs(SQSChannelBinding.class); - case "stomp": return jsonParser.readValueAs(STOMPChannelBinding.class); - case "ws": return jsonParser.readValueAs(WebSocketsChannelBinding.class); - default: return null; - } - } - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/binding/message/MessageBindingsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/binding/message/MessageBindingsDeserializer.java deleted file mode 100644 index a40a2fe1..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/binding/message/MessageBindingsDeserializer.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.asyncapi.v3.jackson.binding.message; - -import com.asyncapi.v3.Reference; -import com.asyncapi.v3.binding.message.amqp.AMQPMessageBinding; -import com.asyncapi.v3.binding.message.amqp1.AMQP1MessageBinding; -import com.asyncapi.v3.binding.message.anypointmq.AnypointMQMessageBinding; -import com.asyncapi.v3.binding.message.googlepubsub.GooglePubSubMessageBinding; -import com.asyncapi.v3.binding.message.http.HTTPMessageBinding; -import com.asyncapi.v3.binding.message.ibmmq.IBMMQMessageBinding; -import com.asyncapi.v3.binding.message.jms.JMSMessageBinding; -import com.asyncapi.v3.binding.message.kafka.KafkaMessageBinding; -import com.asyncapi.v3.binding.message.mercure.MercureMessageBinding; -import com.asyncapi.v3.binding.message.mqtt.MQTTMessageBinding; -import com.asyncapi.v3.binding.message.mqtt5.MQTT5MessageBinding; -import com.asyncapi.v3.binding.message.nats.NATSMessageBinding; -import com.asyncapi.v3.binding.message.pulsar.PulsarMessageBinding; -import com.asyncapi.v3.binding.message.redis.RedisMessageBinding; -import com.asyncapi.v3.binding.message.sns.SNSMessageBinding; -import com.asyncapi.v3.binding.message.solace.SolaceMessageBinding; -import com.asyncapi.v3.binding.message.sqs.SQSMessageBinding; -import com.asyncapi.v3.binding.message.stomp.STOMPMessageBinding; -import com.asyncapi.v3.binding.message.ws.WebSocketsMessageBinding; -import com.asyncapi.v3.jackson.BindingsMapDeserializer; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -/** - * Serializes message bindings map. - * - * @author Pavel Bodiachevskii - */ -public class MessageBindingsDeserializer extends BindingsMapDeserializer { - - public Object chooseKnownPojo(String bindingKey, JsonNode binding, ObjectCodec objectCodec) throws IOException { - try (JsonParser jsonParser = binding.traverse(objectCodec)) { - if (binding.get("$ref" ) != null) { - return jsonParser.readValueAs(Reference.class); - } - - switch (bindingKey) { - case "amqp": return jsonParser.readValueAs(AMQPMessageBinding.class); - case "amqp1": return jsonParser.readValueAs(AMQP1MessageBinding.class); - case "anypointmq": return jsonParser.readValueAs(AnypointMQMessageBinding.class); - case "googlepubsub": return jsonParser.readValueAs(GooglePubSubMessageBinding.class); - case "http": return jsonParser.readValueAs(HTTPMessageBinding.class); - case "ibmmq": return jsonParser.readValueAs(IBMMQMessageBinding.class); - case "jms": return jsonParser.readValueAs(JMSMessageBinding.class); - case "kafka": return jsonParser.readValueAs(KafkaMessageBinding.class); - case "mercure": return jsonParser.readValueAs(MercureMessageBinding.class); - case "mqtt": return jsonParser.readValueAs(MQTTMessageBinding.class); - case "mqtt5": return jsonParser.readValueAs(MQTT5MessageBinding.class); - case "nats": return jsonParser.readValueAs(NATSMessageBinding.class); - case "pulsar": return jsonParser.readValueAs(PulsarMessageBinding.class); - case "redis": return jsonParser.readValueAs(RedisMessageBinding.class); - case "sns": return jsonParser.readValueAs(SNSMessageBinding.class); - case "solace": return jsonParser.readValueAs(SolaceMessageBinding.class); - case "sqs": return jsonParser.readValueAs(SQSMessageBinding.class); - case "stomp": return jsonParser.readValueAs(STOMPMessageBinding.class); - case "ws": return jsonParser.readValueAs(WebSocketsMessageBinding.class); - default: return null; - } - } - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/binding/operation/OperationBindingsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/binding/operation/OperationBindingsDeserializer.java deleted file mode 100644 index 0b4b86e1..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/binding/operation/OperationBindingsDeserializer.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.asyncapi.v3.jackson.binding.operation; - -import com.asyncapi.v3.Reference; -import com.asyncapi.v3.binding.operation.amqp.AMQPOperationBinding; -import com.asyncapi.v3.binding.operation.amqp1.AMQP1OperationBinding; -import com.asyncapi.v3.binding.operation.anypointmq.AnypointMQOperationBinding; -import com.asyncapi.v3.binding.operation.googlepubsub.GooglePubSubOperationBinding; -import com.asyncapi.v3.binding.operation.http.HTTPOperationBinding; -import com.asyncapi.v3.binding.operation.ibmmq.IBMMQOperationBinding; -import com.asyncapi.v3.binding.operation.jms.JMSOperationBinding; -import com.asyncapi.v3.binding.operation.kafka.KafkaOperationBinding; -import com.asyncapi.v3.binding.operation.mercure.MercureOperationBinding; -import com.asyncapi.v3.binding.operation.mqtt.MQTTOperationBinding; -import com.asyncapi.v3.binding.operation.mqtt5.MQTT5OperationBinding; -import com.asyncapi.v3.binding.operation.nats.NATSOperationBinding; -import com.asyncapi.v3.binding.operation.pulsar.PulsarOperationBinding; -import com.asyncapi.v3.binding.operation.redis.RedisOperationBinding; -import com.asyncapi.v3.binding.operation.sns.SNSOperationBinding; -import com.asyncapi.v3.binding.operation.solace.SolaceOperationBinding; -import com.asyncapi.v3.binding.operation.sqs.SQSOperationBinding; -import com.asyncapi.v3.binding.operation.stomp.STOMPOperationBinding; -import com.asyncapi.v3.binding.operation.ws.WebSocketsOperationBinding; -import com.asyncapi.v3.jackson.BindingsMapDeserializer; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -/** - * Serializes operation bindings map. - * - * @version 3.0.0 - * @author Pavel Bodiachevskii - */ -public class OperationBindingsDeserializer extends BindingsMapDeserializer { - - public Object chooseKnownPojo(String bindingKey, JsonNode binding, ObjectCodec objectCodec) throws IOException { - try (JsonParser jsonParser = binding.traverse(objectCodec)) { - if (binding.get("$ref" ) != null) { - return jsonParser.readValueAs(Reference.class); - } - - switch (bindingKey) { - case "amqp": return jsonParser.readValueAs(AMQPOperationBinding.class); - case "amqp1": return jsonParser.readValueAs(AMQP1OperationBinding.class); - case "anypointmq": return jsonParser.readValueAs(AnypointMQOperationBinding.class); - case "googlepubsub": return jsonParser.readValueAs(GooglePubSubOperationBinding.class); - case "http": return jsonParser.readValueAs(HTTPOperationBinding.class); - case "ibmmq": return jsonParser.readValueAs(IBMMQOperationBinding.class); - case "jms": return jsonParser.readValueAs(JMSOperationBinding.class); - case "kafka": return jsonParser.readValueAs(KafkaOperationBinding.class); - case "mercure": return jsonParser.readValueAs(MercureOperationBinding.class); - case "mqtt": return jsonParser.readValueAs(MQTTOperationBinding.class); - case "mqtt5": return jsonParser.readValueAs(MQTT5OperationBinding.class); - case "nats": return jsonParser.readValueAs(NATSOperationBinding.class); - case "pulsar": return jsonParser.readValueAs(PulsarOperationBinding.class); - case "redis": return jsonParser.readValueAs(RedisOperationBinding.class); - case "sns": return jsonParser.readValueAs(SNSOperationBinding.class); - case "solace": return jsonParser.readValueAs(SolaceOperationBinding.class); - case "sqs": return jsonParser.readValueAs(SQSOperationBinding.class); - case "stomp": return jsonParser.readValueAs(STOMPOperationBinding.class); - case "ws": return jsonParser.readValueAs(WebSocketsOperationBinding.class); - default: return null; - } - } - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/binding/server/ServerBindingsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/binding/server/ServerBindingsDeserializer.java deleted file mode 100644 index c6cfbe04..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/binding/server/ServerBindingsDeserializer.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.asyncapi.v3.jackson.binding.server; - -import com.asyncapi.v3.Reference; -import com.asyncapi.v3.binding.server.amqp.AMQPServerBinding; -import com.asyncapi.v3.binding.server.amqp1.AMQP1ServerBinding; -import com.asyncapi.v3.binding.server.anypointmq.AnypointMQServerBinding; -import com.asyncapi.v3.binding.server.googlepubsub.GooglePubSubServerBinding; -import com.asyncapi.v3.binding.server.http.HTTPServerBinding; -import com.asyncapi.v3.binding.server.ibmmq.IBMMQServerBinding; -import com.asyncapi.v3.binding.server.jms.JMSServerBinding; -import com.asyncapi.v3.binding.server.kafka.KafkaServerBinding; -import com.asyncapi.v3.binding.server.mercure.MercureServerBinding; -import com.asyncapi.v3.binding.server.mqtt.MQTTServerBinding; -import com.asyncapi.v3.binding.server.mqtt5.MQTT5ServerBinding; -import com.asyncapi.v3.binding.server.nats.NATSServerBinding; -import com.asyncapi.v3.binding.server.pulsar.PulsarServerBinding; -import com.asyncapi.v3.binding.server.redis.RedisServerBinding; -import com.asyncapi.v3.binding.server.sns.SNSServerBinding; -import com.asyncapi.v3.binding.server.solace.SolaceServerBinding; -import com.asyncapi.v3.binding.server.sqs.SQSServerBinding; -import com.asyncapi.v3.binding.server.stomp.STOMPServerBinding; -import com.asyncapi.v3.binding.server.ws.WebSocketsServerBinding; -import com.asyncapi.v3.jackson.BindingsMapDeserializer; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.JsonNode; - -import java.io.IOException; - -/** - * Serializes server bindings map. - * - * @version 3.0.0 - * @author Pavel Bodiachevskii - */ -public class ServerBindingsDeserializer extends BindingsMapDeserializer { - - @Override - public Object chooseKnownPojo(String bindingKey, JsonNode binding, ObjectCodec objectCodec) throws IOException { - try (JsonParser jsonParser = binding.traverse(objectCodec)) { - if (binding.get("$ref" ) != null) { - return jsonParser.readValueAs(Reference.class); - } - - switch (bindingKey) { - case "amqp": return jsonParser.readValueAs(AMQPServerBinding.class); - case "amqp1": return jsonParser.readValueAs(AMQP1ServerBinding.class); - case "anypointmq": return jsonParser.readValueAs(AnypointMQServerBinding.class); - case "googlepubsub": return jsonParser.readValueAs(GooglePubSubServerBinding.class); - case "http": return jsonParser.readValueAs(HTTPServerBinding.class); - case "ibmmq": return jsonParser.readValueAs(IBMMQServerBinding.class); - case "jms": return jsonParser.readValueAs(JMSServerBinding.class); - case "kafka": return jsonParser.readValueAs(KafkaServerBinding.class); - case "mercure": return jsonParser.readValueAs(MercureServerBinding.class); - case "mqtt": return jsonParser.readValueAs(MQTTServerBinding.class); - case "mqtt5": return jsonParser.readValueAs(MQTT5ServerBinding.class); - case "nats": return jsonParser.readValueAs(NATSServerBinding.class); - case "pulsar": return jsonParser.readValueAs(PulsarServerBinding.class); - case "redis": return jsonParser.readValueAs(RedisServerBinding.class); - case "sns": return jsonParser.readValueAs(SNSServerBinding.class); - case "solace": return jsonParser.readValueAs(SolaceServerBinding.class); - case "sqs": return jsonParser.readValueAs(SQSServerBinding.class); - case "stomp": return jsonParser.readValueAs(STOMPServerBinding.class); - case "ws": return jsonParser.readValueAs(WebSocketsServerBinding.class); - default: return null; - } - } - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/schema/AsyncAPISchemaAnyValueDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/schema/AsyncAPISchemaAnyValueDeserializer.java deleted file mode 100644 index 6934993a..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/schema/AsyncAPISchemaAnyValueDeserializer.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.asyncapi.v3.jackson.schema; - -import com.asyncapi.v3.schema.AsyncAPISchema; - -/** - * @author Pavel Bodiachevskii - */ -public class AsyncAPISchemaAnyValueDeserializer extends SchemaAnyValueDeserializer { - - @Override - public Class schemaClass() { - return AsyncAPISchema.class; - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/schema/AsyncAPISchemaItemsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/schema/AsyncAPISchemaItemsDeserializer.java deleted file mode 100644 index 8b1f4fcd..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/schema/AsyncAPISchemaItemsDeserializer.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.asyncapi.v3.jackson.schema; - -import com.asyncapi.v3.jackson.SchemaItemsDeserializer; -import com.asyncapi.v3.schema.AsyncAPISchema; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.ObjectCodec; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.node.ArrayNode; -import com.fasterxml.jackson.databind.node.JsonNodeType; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -public class AsyncAPISchemaItemsDeserializer extends SchemaItemsDeserializer { - - public Class schemaClass() { - return AsyncAPISchema.class; - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/schema/JsonSchemaAnyValueDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/schema/JsonSchemaAnyValueDeserializer.java deleted file mode 100644 index cd25811b..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/schema/JsonSchemaAnyValueDeserializer.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.asyncapi.v3.jackson.schema; - -import com.asyncapi.v3.schema.JsonSchema; - -/** - * @author Pavel Bodiachevskii - */ -public class JsonSchemaAnyValueDeserializer extends SchemaAnyValueDeserializer { - - @Override - public Class schemaClass() { - return JsonSchema.class; - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/schema/JsonSchemaItemsDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/schema/JsonSchemaItemsDeserializer.java deleted file mode 100644 index bd097e7c..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/schema/JsonSchemaItemsDeserializer.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.asyncapi.v3.jackson.schema; - -import com.asyncapi.v3.jackson.SchemaItemsDeserializer; -import com.asyncapi.v3.schema.JsonSchema; - -public class JsonSchemaItemsDeserializer extends SchemaItemsDeserializer { - - public Class schemaClass() { - return JsonSchema.class; - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/schema/openapi/OpenAPISchemaAnyValueDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/schema/openapi/OpenAPISchemaAnyValueDeserializer.java deleted file mode 100644 index 1dd7a133..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/schema/openapi/OpenAPISchemaAnyValueDeserializer.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.asyncapi.v3.jackson.schema.openapi; - -import com.asyncapi.v3.jackson.schema.SchemaAnyValueDeserializer; -import com.asyncapi.v3.schema.openapi.v3._0_0.OpenAPISchema; - -/** - * @author Pavel Bodiachevskii - */ -public class OpenAPISchemaAnyValueDeserializer extends SchemaAnyValueDeserializer { - - @Override - public Class schemaClass() { - return OpenAPISchema.class; - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/security_scheme/SecuritySchemesDeserializer.java b/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/security_scheme/SecuritySchemesDeserializer.java deleted file mode 100644 index 93a1429b..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/jackson/security_scheme/SecuritySchemesDeserializer.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.asyncapi.v3.jackson.security_scheme; - -import com.asyncapi.v3.Reference; -import com.asyncapi.v3.jackson.ListOfReferencesOrObjectsDeserializer; -import com.asyncapi.v3.security_scheme.SecurityScheme; - -/** - * Deserializes security schemes. - * - * @author Pavel Bodiachevskii - */ -public class SecuritySchemesDeserializer extends ListOfReferencesOrObjectsDeserializer { - - @Override - public Class objectTypeClass() { - return SecurityScheme.class; - } - - @Override - public Class referenceClass() { - return Reference.class; - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/Type.java b/asyncapi-core/src/main/java/com/asyncapi/v3/schema/Type.java deleted file mode 100644 index 957e6b30..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/schema/Type.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.asyncapi.v3.schema; - -/** - * @author Pavel Bodiachevskii - */ -public class Type { - - public final static String NULL = "null"; - public final static String BOOLEAN = "boolean"; - public final static String OBJECT = "object"; - public final static String ARRAY = "array"; - public final static String NUMBER = "number"; - public final static String STRING = "string"; - public final static String INTEGER = "integer"; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/ApiKeySecurityScheme.java b/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/ApiKeySecurityScheme.java deleted file mode 100644 index 8b0b92bc..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/ApiKeySecurityScheme.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.asyncapi.v3.security_scheme; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.*; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * API Key Security Scheme - * - * @see SecurityScheme - * @author Pavel Bodiachevskii - * @version 3.0.0 - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class ApiKeySecurityScheme extends SecurityScheme { - - /** - * REQUIRED. - *

- * The location of the API key. - */ - @NotNull - private ApiKeyLocation in = ApiKeyLocation.USER; - - @Builder(builderMethodName = "apiKeyBuilder") - public ApiKeySecurityScheme(@Nullable String description, - @NotNull ApiKeyLocation in) { - super(Type.API_KEY, description); - this.in = in; - } - - public enum ApiKeyLocation { - - @JsonProperty("user") - USER, - @JsonProperty("password") - PASSWORD - - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/OpenIdConnectSecurityScheme.java b/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/OpenIdConnectSecurityScheme.java deleted file mode 100644 index 2ef45095..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/OpenIdConnectSecurityScheme.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.asyncapi.v3.security_scheme; - -import lombok.*; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -/** - * OpenID Connect Security Scheme - * - * @see SecurityScheme - * @author Pavel Bodiachevskii - * @version 3.0.0 - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class OpenIdConnectSecurityScheme extends SecurityScheme { - - /** - * REQUIRED. - *

- * OpenId Connect URL to discover OAuth2 configuration values. This MUST be in the form of an absolute URL. - */ - @NotNull - private String openIdConnectUrl = ""; - - /** - * List of the needed scope names. An empty array means no scopes are needed. - */ - @Nullable - private List scopes; - - @Builder(builderMethodName = "openIdBuilder") - public OpenIdConnectSecurityScheme(@Nullable String description, - @NotNull String openIdConnectUrl, - @Nullable List scopes) { - super(Type.OPENID_CONNECT, description); - this.openIdConnectUrl = openIdConnectUrl; - this.scopes = scopes; - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/SecurityScheme.java b/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/SecurityScheme.java deleted file mode 100644 index ce6a57a3..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/SecurityScheme.java +++ /dev/null @@ -1,120 +0,0 @@ -package com.asyncapi.v3.security_scheme; - -import com.asyncapi.v3.ExtendableObject; -import com.asyncapi.v3.security_scheme.http.HttpApiKeySecurityScheme; -import com.asyncapi.v3.security_scheme.http.HttpSecurityScheme; -import com.asyncapi.v3.security_scheme.oauth2.OAuth2SecurityScheme; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonSubTypes; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import lombok.*; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * Defines a security scheme that can be used by the operations. Supported schemes are: - *

    - *
  • User/Password.
  • - *
  • API key (either as user or as password).
  • - *
  • X.509 certificate.
  • - *
  • End-to-end encryption (either symmetric or asymmetric).
  • - *
  • HTTP authentication.
  • - *
  • HTTP API key.
  • - *
  • OAuth2’s common flows (Implicit, Resource Owner Protected Credentials, Client Credentials and Authorization Code) as defined in RFC6749.
  • - *
  • OpenID Connect Discovery.
  • - *
  • SASL (Simple Authentication and Security Layer) as defined in RFC4422.
  • - *
- * - * This object MAY be extended with {@link ExtendableObject}. - * - * @see Specification Extensions - * @see Security Scheme - * @author Pavel Bodiachevskii - * @version 3.0.0 - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@JsonTypeInfo( - use = JsonTypeInfo.Id.NAME, - include = JsonTypeInfo.As.EXISTING_PROPERTY, - property = "type", - visible = true -) -@JsonSubTypes({ - @JsonSubTypes.Type(value = SecurityScheme.class, name = "userPassword"), - @JsonSubTypes.Type(value = ApiKeySecurityScheme.class, name = "apiKey"), - @JsonSubTypes.Type(value = SecurityScheme.class, name = "X509"), - @JsonSubTypes.Type(value = SecurityScheme.class, name = "symmetricEncryption"), - @JsonSubTypes.Type(value = SecurityScheme.class, name = "asymmetricEncryption"), - @JsonSubTypes.Type(value = HttpApiKeySecurityScheme.class, name = "httpApiKey"), - @JsonSubTypes.Type(value = HttpSecurityScheme.class, name = "http"), - @JsonSubTypes.Type(value = OAuth2SecurityScheme.class, name = "oauth2"), - @JsonSubTypes.Type(value = OpenIdConnectSecurityScheme.class, name = "openIdConnect"), - @JsonSubTypes.Type(value = SecurityScheme.class, name = "plain"), - @JsonSubTypes.Type(value = SecurityScheme.class, name = "scramSha256"), - @JsonSubTypes.Type(value = SecurityScheme.class, name = "scramSha512"), - @JsonSubTypes.Type(value = SecurityScheme.class, name = "gssapi"), -}) -@EqualsAndHashCode(callSuper = true) -public class SecurityScheme extends ExtendableObject { - - /** - * REQUIRED. - *

- * The type of the security scheme. Valid values are: - *

    - *
  • userPassword
  • - *
  • apiKey
  • - *
  • X509
  • - *
  • symmetricEncryption
  • - *
  • asymmetricEncryption
  • - *
  • httpApiKey
  • - *
  • http
  • - *
  • oauth2
  • - *
  • openIdConnect
  • - *
- */ - @NotNull - @Builder.Default - private Type type = Type.USER_PASSWORD; - - /** - * A short description for security scheme. CommonMark syntax MAY be used for rich text representation. - */ - @Nullable - private String description; - - public enum Type { - - @JsonProperty("userPassword") - USER_PASSWORD, - @JsonProperty("apiKey") - API_KEY, - @JsonProperty("X509") - X509, - @JsonProperty("symmetricEncryption") - SYMMETRIC_ENCRYPTION, - @JsonProperty("asymmetricEncryption") - ASYMMETRIC_ENCRYPTION, - @JsonProperty("httpApiKey") - HTTP_API_KEY, - @JsonProperty("http") - HTTP, - @JsonProperty("oauth2") - OAUTH2, - @JsonProperty("openIdConnect") - OPENID_CONNECT, - @JsonProperty("plain") - PLAIN, - @JsonProperty("scramSha256") - SCRAM_SHA256, - @JsonProperty("scramSha512") - SCRAM_SHA512, - @JsonProperty("gssapi") - GSSAPI - - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/http/HttpApiKeySecurityScheme.java b/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/http/HttpApiKeySecurityScheme.java deleted file mode 100644 index 4965be62..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/http/HttpApiKeySecurityScheme.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.asyncapi.v3.security_scheme.http; - -import com.asyncapi.v3.security_scheme.SecurityScheme; -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.*; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * HTTP API Key Security Scheme - * - * @see SecurityScheme - * @author Pavel Bodiachevskii - * @version 3.0.0 - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class HttpApiKeySecurityScheme extends SecurityScheme { - - /** - * REQUIRED. - *

- * The name of the header, query or cookie parameter to be used. - */ - @NotNull - private String name = ""; - - /** - * REQUIRED. - *

- * The location of the API key. - */ - @Nullable - private ApiKeyLocation in; - - @Builder(builderMethodName = "httpApiKeyBuilder") - public HttpApiKeySecurityScheme(@Nullable String description, - @NotNull String name, - @Nullable ApiKeyLocation in) { - super(Type.HTTP_API_KEY, description); - this.name = name; - this.in = in; - } - - public enum ApiKeyLocation { - - @JsonProperty("query") - QUERY, - @JsonProperty("header") - HEADER, - @JsonProperty("cookie") - COOKIE - - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/http/HttpSecurityScheme.java b/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/http/HttpSecurityScheme.java deleted file mode 100644 index efb0acaf..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/http/HttpSecurityScheme.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.asyncapi.v3.security_scheme.http; - -import com.asyncapi.v3.security_scheme.SecurityScheme; -import lombok.*; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * HTTP Security Scheme - * - * @see SecurityScheme - * @author Pavel Bodiachevskii - * @version 3.0.0 - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class HttpSecurityScheme extends SecurityScheme { - - /** - * REQUIRED. - *

- * The name of the HTTP Authorization scheme to be used in the Authorization header as defined in RFC7235. - */ - @NotNull - private String scheme = ""; - - /** - * 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. - */ - @Nullable - private String bearerFormat; - - @Builder(builderMethodName = "httpBuilder") - public HttpSecurityScheme(@Nullable String description, - @NotNull String scheme, - @Nullable String bearerFormat) { - super(Type.HTTP, description); - this.scheme = scheme; - this.bearerFormat = bearerFormat; - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/oauth2/OAuth2SecurityScheme.java b/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/oauth2/OAuth2SecurityScheme.java deleted file mode 100644 index 0e3d6224..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/oauth2/OAuth2SecurityScheme.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.asyncapi.v3.security_scheme.oauth2; - -import com.asyncapi.v3.security_scheme.SecurityScheme; -import lombok.*; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -/** - * OAuth2 Security Scheme - * - * @see SecurityScheme - * @author Pavel Bodiachevskii - * @version 3.0.0 - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class OAuth2SecurityScheme extends SecurityScheme { - - /** - * REQUIRED. - *

- * An object containing configuration information for the flow types supported. - */ - @NotNull - private OAuthFlows flows = new OAuthFlows(); - - /** - * List of the needed scope names. - */ - @Nullable - private List scopes; - - @Builder(builderMethodName = "oauth2Builder") - public OAuth2SecurityScheme(@Nullable String description, - @NotNull OAuthFlows flows, - @Nullable List scopes) { - super(Type.OAUTH2, description); - this.flows = flows; - this.scopes = scopes; - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/oauth2/OAuthFlows.java b/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/oauth2/OAuthFlows.java deleted file mode 100644 index 00f2c8ee..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/oauth2/OAuthFlows.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.asyncapi.v3.security_scheme.oauth2; - -import com.asyncapi.v3.ExtendableObject; -import com.asyncapi.v3.security_scheme.oauth2.flow.AuthorizationCodeOAuthFlow; -import com.asyncapi.v3.security_scheme.oauth2.flow.ClientCredentialsOAuthFlow; -import com.asyncapi.v3.security_scheme.oauth2.flow.ImplicitOAuthFlow; -import com.asyncapi.v3.security_scheme.oauth2.flow.PasswordOAuthFlow; -import lombok.*; -import org.jetbrains.annotations.Nullable; - -/** - * Allows configuration of the supported OAuth Flows. - *

- * This object MAY be extended with {@link ExtendableObject}. - * - * @see OAuth Flows - * @see Security Scheme - * @author Pavel Bodiachevskii - * @version 3.0.0 - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class OAuthFlows extends ExtendableObject { - - /** - * Configuration for the OAuth Implicit flow - */ - @Nullable - private ImplicitOAuthFlow implicit; - - /** - * Configuration for the OAuth Resource Owner Protected Credentials flow - */ - @Nullable - private PasswordOAuthFlow password; - - /** - * Configuration for the OAuth Client Credentials flow. - */ - @Nullable - private ClientCredentialsOAuthFlow clientCredentials; - - /** - * Configuration for the OAuth Authorization Code flow - */ - @Nullable - private AuthorizationCodeOAuthFlow authorizationCode; - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/oauth2/flow/AuthorizationCodeOAuthFlow.java b/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/oauth2/flow/AuthorizationCodeOAuthFlow.java deleted file mode 100644 index bb0159eb..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/oauth2/flow/AuthorizationCodeOAuthFlow.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.asyncapi.v3.security_scheme.oauth2.flow; - -import lombok.*; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Map; - -/** - * Configuration for the OAuth Authorization Code flow - *

- * This object MAY be extended with {@link com.asyncapi.v3.ExtendableObject}. - * - * @see OAuth Flow - * @see Specification Extensions - * @author Pavel Bodiachevskii - * @version 3.0.0 - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class AuthorizationCodeOAuthFlow extends OAuthFlow { - - /** - * REQUIRED. - *

- * The authorization URL to be used for this flow. This MUST be in the form of an absolute URL. - */ - @NotNull - private String authorizationUrl = ""; - - /** - * The token URL to be used for this flow. This MUST be in the form of an absolute URL. - */ - @Nullable - private String tokenUrl = ""; - - @Builder(builderMethodName = "authorizationCodeBuilder") - public AuthorizationCodeOAuthFlow(@Nullable String refreshUrl, - @NotNull Map availableScopes, - @NotNull String authorizationUrl, - @Nullable String tokenUrl) { - super(refreshUrl, availableScopes); - this.authorizationUrl = authorizationUrl; - this.tokenUrl = tokenUrl; - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/oauth2/flow/ClientCredentialsOAuthFlow.java b/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/oauth2/flow/ClientCredentialsOAuthFlow.java deleted file mode 100644 index 2f603fae..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/oauth2/flow/ClientCredentialsOAuthFlow.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.asyncapi.v3.security_scheme.oauth2.flow; - -import lombok.*; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Map; - -/** - * Configuration for the OAuth Client Credentials flow - *

- * This object MAY be extended with {@link com.asyncapi.v3.ExtendableObject}. - * - * @see OAuth Flow - * @see Specification Extensions - * @author Pavel Bodiachevskii - * @version 3.0.0 - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class ClientCredentialsOAuthFlow extends OAuthFlow { - - /** - * REQUIRED. - *

- * The token URL to be used for this flow. This MUST be in the form of a URL. - */ - @NotNull - private String tokenUrl = ""; - - @Builder(builderMethodName = "clientCredentialsBuilder") - public ClientCredentialsOAuthFlow(@Nullable String refreshUrl, - @NotNull Map availableScopes, - @NotNull String tokenUrl) { - super(refreshUrl, availableScopes); - this.tokenUrl = tokenUrl; - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/oauth2/flow/ImplicitOAuthFlow.java b/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/oauth2/flow/ImplicitOAuthFlow.java deleted file mode 100644 index 6c71d7a0..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/oauth2/flow/ImplicitOAuthFlow.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.asyncapi.v3.security_scheme.oauth2.flow; - -import lombok.*; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Map; - -/** - * Configuration for the OAuth Implicit flow - *

- * This object MAY be extended with {@link com.asyncapi.v3.ExtendableObject}. - * - * @see OAuth Flow - * @see Specification Extensions - * @author Pavel Bodiachevskii - * @version 3.0.0 - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class ImplicitOAuthFlow extends OAuthFlow { - - /** - * REQUIRED. - *

- * The authorization URL to be used for this flow. This MUST be in the form of a URL - */ - @NotNull - private String authorizationUrl = ""; - - @Builder(builderMethodName = "implicitBuilder") - public ImplicitOAuthFlow(@Nullable String refreshUrl, - @NotNull Map scopes, - @NotNull String authorizationUrl) { - super(refreshUrl, scopes); - this.authorizationUrl = authorizationUrl; - } - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/oauth2/flow/OAuthFlow.java b/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/oauth2/flow/OAuthFlow.java deleted file mode 100644 index 4751cc35..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/oauth2/flow/OAuthFlow.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.asyncapi.v3.security_scheme.oauth2.flow; - -import com.asyncapi.v3.ExtendableObject; -import lombok.*; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.HashMap; -import java.util.Map; - -/** - * Configuration details for a supported OAuth Flow - *

- * This object MAY be extended with {@link ExtendableObject}. - * - * @see OAuth Flow - * @see Specification Extensions - * @author Pavel Bodiachevskii - * @version 3.0.0 - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class OAuthFlow extends ExtendableObject { - - /** - * The URL to be used for obtaining refresh tokens. This MUST be in the form of an absolute URL. - */ - @Nullable - @Builder.Default - private String refreshUrl = ""; - - /** - * REQUIRED. - *

- * The available scopes for the OAuth2 security scheme. A map between the scope name and a short description for it. - */ - @NotNull - @Builder.Default - private Map availableScopes = new HashMap<>(); - -} diff --git a/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/oauth2/flow/PasswordOAuthFlow.java b/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/oauth2/flow/PasswordOAuthFlow.java deleted file mode 100644 index 6b79f539..00000000 --- a/asyncapi-core/src/main/java/com/asyncapi/v3/security_scheme/oauth2/flow/PasswordOAuthFlow.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.asyncapi.v3.security_scheme.oauth2.flow; - -import lombok.*; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Map; - -/** - * Configuration for the OAuth Resource Owner Protected Credentials flow - *

- * This object MAY be extended with {@link com.asyncapi.v3.ExtendableObject}. - * - * @see OAuth Flow - * @see Specification Extensions - * @author Pavel Bodiachevskii - * @version 3.0.0 - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class PasswordOAuthFlow extends OAuthFlow { - - /** - * REQUIRED. - *

- * The token URL to be used for this flow. This MUST be in the form of a URL. - */ - @NotNull - private String tokenUrl = ""; - - @Builder(builderMethodName = "passwordBuilder") - public PasswordOAuthFlow(@Nullable String refreshUrl, - @NotNull Map scopes, - @NotNull String tokenUrl) { - super(refreshUrl, scopes); - this.tokenUrl = tokenUrl; - } - -} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/BindingTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/BindingTest.java new file mode 100644 index 00000000..afd9074f --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/BindingTest.java @@ -0,0 +1,95 @@ +package com.asyncapi.bindings; + +import com.asyncapi.schemas.asyncapi.ExtendableObject; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.jetbrains.annotations.NotNull; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.Test; + +import java.io.IOException; +import java.net.URISyntaxException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.Map; + +public abstract class BindingTest { + + private static final ObjectMapper objectMapper = new ObjectMapper() + .setSerializationInclusion(JsonInclude.Include.NON_NULL); + + protected Class bindingTypeClass; + protected String pathToBindingJson; + protected String pathToExtendedBindingJson; + protected String pathToWronglyExtendedBindingJson; + protected BindingType binding; + + @Test + @Order(1) + @DisplayName("compare binding from Json and from code") + public void compareBindingFromJsonAndFromCode() throws IOException, URISyntaxException { + Assertions.assertEquals(read(pathToBindingJson, bindingTypeClass), binding); + } + + @Test + @Order(2) + @DisplayName("compare extended binding from Json and from code") + public void compareExtendedBindingFromJsonAndFromCode() throws IOException, URISyntaxException { + var binding = read(pathToExtendedBindingJson, bindingTypeClass); + Assertions.assertEquals( + Map.ofEntries( + Map.entry("x-number", 0), + Map.entry("x-string", ""), + Map.entry("x-object", Map.ofEntries(Map.entry("property", Collections.emptyMap()))) + ), + binding.getExtensionFields() + ); + + Assertions.assertEquals(read(pathToExtendedBindingJson, bindingTypeClass), binding); + } + + @Test + @Order(3) + @DisplayName("deserialize and compare extended binding json with extended binding from code") + public void deserializeAndCompareExtendedBindingJsonWithExtendedBindingFromCode() throws IOException, URISyntaxException { + var extensions = new LinkedHashMap(); + extensions.put("x-number", 0); + extensions.put("x-string", ""); + extensions.put("x-object", Map.ofEntries(Map.entry("property", Collections.emptyMap()))); + + binding.setExtensionFields(extensions); + Assertions.assertEquals( + read(pathToExtendedBindingJson), + objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(binding) + ); + } + + @Test + @Order(4) + @DisplayName("throw exception when binding extended wrongly") + public void throwExceptionWhenBindingExtendedWrongly() { + var exception = Assertions.assertThrows(JsonMappingException.class, () -> { + read(pathToWronglyExtendedBindingJson, bindingTypeClass); + }); + + Assertions.assertTrue(exception.getMessage().startsWith("\"ext-number\" is not valid extension property (through reference chain:")); + } + + private String read(@NotNull String pathToJson) throws IOException, URISyntaxException { + Path path = Path.of(BindingTest.class.getResource(pathToJson).toURI()); + + return Files.readString(path); + } + + private BindingType read(@NotNull String pathToJson, @NotNull Class bindingTypeClass) throws IOException, URISyntaxException { + Path path = Path.of(BindingTest.class.getResource(pathToJson).toURI()); + + return objectMapper.readValue(Files.readString(path), bindingTypeClass); + } + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/BindingsTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/BindingsTest.java new file mode 100644 index 00000000..20733e44 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/BindingsTest.java @@ -0,0 +1,30 @@ +package com.asyncapi.bindings; + +import org.junit.platform.suite.api.SelectClasses; +import org.junit.platform.suite.api.Suite; +import org.junit.platform.suite.api.SuiteDisplayName; + +@Suite +@SelectClasses({ + com.asyncapi.bindings.amqp.AMQP.class, + com.asyncapi.bindings.amqp1.AMQP1.class, + com.asyncapi.bindings.anypointmq.AnypointMQ.class, + com.asyncapi.bindings.googlepubsub.GooglePubSub.class, + com.asyncapi.bindings.http.HTTP.class, + com.asyncapi.bindings.ibmmq.IBMMQ.class, + com.asyncapi.bindings.jms.JMS.class, + com.asyncapi.bindings.kafka.Kafka.class, + com.asyncapi.bindings.mercure.Mercure.class, + com.asyncapi.bindings.mqtt.MQTT.class, + com.asyncapi.bindings.mqtt5.MQTT5.class, + com.asyncapi.bindings.nats.NATS.class, + com.asyncapi.bindings.pulsar.Pulsar.class, + com.asyncapi.bindings.redis.Redis.class, + com.asyncapi.bindings.sns.SNS.class, + com.asyncapi.bindings.solace.Solace.class, + com.asyncapi.bindings.sqs.SQS.class, + com.asyncapi.bindings.stomp.STOMP.class, + com.asyncapi.bindings.websockets.WebSockets.class, +}) +@SuiteDisplayName("Bindings") +public class BindingsTest {} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQP.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQP.java new file mode 100644 index 00000000..96fcda09 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQP.java @@ -0,0 +1,10 @@ +package com.asyncapi.bindings.amqp; + +import org.junit.platform.suite.api.SelectPackages; +import org.junit.platform.suite.api.Suite; +import org.junit.platform.suite.api.SuiteDisplayName; + +@Suite +@SuiteDisplayName("AMQP") +@SelectPackages("com.asyncapi.bindings.amqp") +public class AMQP {} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPLatestTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPLatestTest.java new file mode 100644 index 00000000..c0ae94ed --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPLatestTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.amqp; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelBinding; +import com.asyncapi.bindings.amqp.v0._3_0.message.AMQPMessageBinding; +import com.asyncapi.bindings.amqp.v0._3_0.operation.AMQPOperationBinding; +import com.asyncapi.bindings.amqp.v0._3_0.server.AMQPServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("latest") +public class AMQPLatestTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = AMQPV0_3_0Test.channelBinding();; + super.bindingTypeClass = AMQPChannelBinding.class; + super.pathToBindingJson = "/bindings/amqp/latest/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/latest/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/latest/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = AMQPV0_3_0Test.messageBinding();; + super.bindingTypeClass = AMQPMessageBinding.class; + super.pathToBindingJson = "/bindings/amqp/latest/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/latest/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/latest/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = AMQPV0_3_0Test.operationBinding();; + super.bindingTypeClass = AMQPOperationBinding.class; + super.pathToBindingJson = "/bindings/amqp/latest/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/latest/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/latest/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = AMQPV0_3_0Test.serverBinding();; + super.bindingTypeClass = AMQPServerBinding.class; + super.pathToBindingJson = "/bindings/amqp/latest/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/latest/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/latest/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPUnknownVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPUnknownVersionTest.java new file mode 100644 index 00000000..b6e1de19 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPUnknownVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.amqp; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelBinding; +import com.asyncapi.bindings.amqp.v0._3_0.message.AMQPMessageBinding; +import com.asyncapi.bindings.amqp.v0._3_0.operation.AMQPOperationBinding; +import com.asyncapi.bindings.amqp.v0._3_0.server.AMQPServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("unknown version") +public class AMQPUnknownVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = AMQPV0_3_0Test.channelBinding(); + super.bindingTypeClass = AMQPChannelBinding.class; + super.pathToBindingJson = "/bindings/amqp/unknown version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/unknown version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/unknown version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = AMQPV0_3_0Test.messageBinding(); + super.bindingTypeClass = AMQPMessageBinding.class; + super.pathToBindingJson = "/bindings/amqp/unknown version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/unknown version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/unknown version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = AMQPV0_3_0Test.operationBinding(); + super.bindingTypeClass = AMQPOperationBinding.class; + super.pathToBindingJson = "/bindings/amqp/unknown version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/unknown version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/unknown version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = AMQPV0_3_0Test.serverBinding(); + super.bindingTypeClass = AMQPServerBinding.class; + super.pathToBindingJson = "/bindings/amqp/unknown version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/unknown version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/unknown version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPV0_1_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPV0_1_0Test.java new file mode 100644 index 00000000..9cb3fea7 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPV0_1_0Test.java @@ -0,0 +1,106 @@ +package com.asyncapi.bindings.amqp; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.amqp.v0._1_0.channel.AMQPChannelBinding; +import com.asyncapi.bindings.amqp.v0._1_0.channel.AMQPChannelType; +import com.asyncapi.bindings.amqp.v0._1_0.channel.exchange.AMQPChannelExchangeProperties; +import com.asyncapi.bindings.amqp.v0._1_0.channel.exchange.AMQPChannelExchangeType; +import com.asyncapi.bindings.amqp.v0._1_0.channel.queue.AMQPChannelQueueProperties; +import com.asyncapi.bindings.amqp.v0._1_0.message.AMQPMessageBinding; +import com.asyncapi.bindings.amqp.v0._1_0.operation.AMQPOperationBinding; +import com.asyncapi.bindings.amqp.v0._1_0.server.AMQPServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +import java.util.List; + +@DisplayName("0.1.0") +public class AMQPV0_1_0Test { + + public static AMQPChannelBinding channelBinding () { + return AMQPChannelBinding.builder() + .is(AMQPChannelType.ROUTING_KEY) + .queue(AMQPChannelQueueProperties.builder() + .name("my-queue-name") + .durable(true) + .exclusive(true) + .autoDelete(false) + .build() + ) + .exchange(AMQPChannelExchangeProperties.builder() + .name("myExchange") + .type(AMQPChannelExchangeType.TOPIC) + .durable(true) + .autoDelete(false) + .build() + ) + .build(); + } + + public static AMQPMessageBinding messageBinding () { + return AMQPMessageBinding.builder() + .contentEncoding("gzip") + .messageType("user.signup") + .build(); + } + + public static AMQPOperationBinding operationBinding () { + return AMQPOperationBinding.builder() + .expiration(100_000) + .userId("guest") + .cc(List.of("user.logs")) + .priority(10) + .deliveryMode(2) + .mandatory(false) + .bcc(List.of("external.audit")) + .replyTo("user.signedup") + .timestamp(true) + .ack(false) + .build(); + } + + public static AMQPServerBinding serverBinding () { + return new AMQPServerBinding(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = AMQPChannelBinding.class; + super.pathToBindingJson = "/bindings/amqp/0.1.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/0.1.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/0.1.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = AMQPMessageBinding.class; + super.pathToBindingJson = "/bindings/amqp/0.1.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/0.1.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/0.1.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = AMQPOperationBinding.class; + super.pathToBindingJson = "/bindings/amqp/0.1.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/0.1.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/0.1.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = AMQPServerBinding.class; + super.pathToBindingJson = "/bindings/amqp/0.1.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/0.1.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/0.1.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPV0_2_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPV0_2_0Test.java new file mode 100644 index 00000000..4c561fcc --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPV0_2_0Test.java @@ -0,0 +1,106 @@ +package com.asyncapi.bindings.amqp; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.amqp.v0._2_0.channel.AMQPChannelBinding; +import com.asyncapi.bindings.amqp.v0._2_0.channel.AMQPChannelType; +import com.asyncapi.bindings.amqp.v0._2_0.channel.exchange.AMQPChannelExchangeProperties; +import com.asyncapi.bindings.amqp.v0._2_0.channel.exchange.AMQPChannelExchangeType; +import com.asyncapi.bindings.amqp.v0._2_0.channel.queue.AMQPChannelQueueProperties; +import com.asyncapi.bindings.amqp.v0._2_0.message.AMQPMessageBinding; +import com.asyncapi.bindings.amqp.v0._2_0.operation.AMQPOperationBinding; +import com.asyncapi.bindings.amqp.v0._2_0.server.AMQPServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +import java.util.List; + +@DisplayName("0.2.0") +public class AMQPV0_2_0Test { + + public static AMQPChannelBinding channelBinding () { + return AMQPChannelBinding.builder() + .is(AMQPChannelType.ROUTING_KEY) + .queue(AMQPChannelQueueProperties.builder() + .name("my-queue-name") + .durable(true) + .exclusive(true) + .autoDelete(false) + .build() + ) + .exchange(AMQPChannelExchangeProperties.builder() + .name("myExchange") + .type(AMQPChannelExchangeType.TOPIC) + .durable(true) + .autoDelete(false) + .build() + ) + .build(); + } + + public static AMQPMessageBinding messageBinding () { + return AMQPMessageBinding.builder() + .contentEncoding("gzip") + .messageType("user.signup") + .build(); + } + + public static AMQPOperationBinding operationBinding () { + return AMQPOperationBinding.builder() + .expiration(100_000) + .userId("guest") + .cc(List.of("user.logs")) + .priority(10) + .deliveryMode(2) + .mandatory(false) + .bcc(List.of("external.audit")) + .replyTo("user.signedup") + .timestamp(true) + .ack(false) + .build(); + } + + public static AMQPServerBinding serverBinding () { + return new AMQPServerBinding(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = AMQPChannelBinding.class; + super.pathToBindingJson = "/bindings/amqp/0.2.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/0.2.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/0.2.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = AMQPMessageBinding.class; + super.pathToBindingJson = "/bindings/amqp/0.2.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/0.2.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/0.2.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = AMQPOperationBinding.class; + super.pathToBindingJson = "/bindings/amqp/0.2.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/0.2.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/0.2.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = AMQPServerBinding.class; + super.pathToBindingJson = "/bindings/amqp/0.2.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/0.2.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/0.2.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPV0_3_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPV0_3_0Test.java new file mode 100644 index 00000000..8f11a12a --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPV0_3_0Test.java @@ -0,0 +1,105 @@ +package com.asyncapi.bindings.amqp; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelBinding; +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelType; +import com.asyncapi.bindings.amqp.v0._3_0.channel.exchange.AMQPChannelExchangeProperties; +import com.asyncapi.bindings.amqp.v0._3_0.channel.exchange.AMQPChannelExchangeType; +import com.asyncapi.bindings.amqp.v0._3_0.channel.queue.AMQPChannelQueueProperties; +import com.asyncapi.bindings.amqp.v0._3_0.message.AMQPMessageBinding; +import com.asyncapi.bindings.amqp.v0._3_0.operation.AMQPOperationBinding; +import com.asyncapi.bindings.amqp.v0._3_0.server.AMQPServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +import java.util.List; + +@DisplayName("0.3.0") +public class AMQPV0_3_0Test { + + public static AMQPChannelBinding channelBinding () { + return AMQPChannelBinding.builder() + .is(AMQPChannelType.ROUTING_KEY) + .queue(AMQPChannelQueueProperties.builder() + .name("my-queue-name") + .durable(true) + .exclusive(true) + .autoDelete(false) + .build() + ) + .exchange(AMQPChannelExchangeProperties.builder() + .name("myExchange") + .type(AMQPChannelExchangeType.TOPIC) + .durable(true) + .autoDelete(false) + .build() + ) + .build(); + } + + public static AMQPMessageBinding messageBinding () { + return AMQPMessageBinding.builder() + .contentEncoding("gzip") + .messageType("user.signup") + .build(); + } + + public static AMQPOperationBinding operationBinding () { + return AMQPOperationBinding.builder() + .expiration(100_000) + .userId("guest") + .cc(List.of("user.logs")) + .priority(10) + .deliveryMode(2) + .mandatory(false) + .bcc(List.of("external.audit")) + .timestamp(true) + .ack(false) + .build(); + } + + public static AMQPServerBinding serverBinding () { + return new AMQPServerBinding(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = AMQPChannelBinding.class; + super.pathToBindingJson = "/bindings/amqp/0.3.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/0.3.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/0.3.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = AMQPMessageBinding.class; + super.pathToBindingJson = "/bindings/amqp/0.3.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/0.3.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/0.3.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = AMQPOperationBinding.class; + super.pathToBindingJson = "/bindings/amqp/0.3.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/0.3.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/0.3.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = AMQPServerBinding.class; + super.pathToBindingJson = "/bindings/amqp/0.3.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/0.3.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/0.3.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPWithoutVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPWithoutVersionTest.java new file mode 100644 index 00000000..62ac530c --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp/AMQPWithoutVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.amqp; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelBinding; +import com.asyncapi.bindings.amqp.v0._3_0.message.AMQPMessageBinding; +import com.asyncapi.bindings.amqp.v0._3_0.operation.AMQPOperationBinding; +import com.asyncapi.bindings.amqp.v0._3_0.server.AMQPServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("without version") +public class AMQPWithoutVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = AMQPV0_3_0Test.channelBinding(); + super.bindingTypeClass = AMQPChannelBinding.class; + super.pathToBindingJson = "/bindings/amqp/without version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/without version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/without version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = AMQPV0_3_0Test.messageBinding(); + super.bindingTypeClass = AMQPMessageBinding.class; + super.pathToBindingJson = "/bindings/amqp/without version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/without version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/without version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = AMQPV0_3_0Test.operationBinding(); + super.bindingTypeClass = AMQPOperationBinding.class; + super.pathToBindingJson = "/bindings/amqp/without version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/without version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/without version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = AMQPV0_3_0Test.serverBinding(); + super.bindingTypeClass = AMQPServerBinding.class; + super.pathToBindingJson = "/bindings/amqp/without version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/amqp/without version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/amqp/without version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp1/AMQP1.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp1/AMQP1.java new file mode 100644 index 00000000..a22da9fa --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp1/AMQP1.java @@ -0,0 +1,12 @@ +package com.asyncapi.bindings.amqp1; + +import org.junit.platform.suite.api.SelectPackages; +import org.junit.platform.suite.api.Suite; +import org.junit.platform.suite.api.SuiteDisplayName; + +@Suite +@SuiteDisplayName("AMQP1") +@SelectPackages("com.asyncapi.bindings.amqp1") +public abstract class AMQP1 { + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp1/AMQP1LatestTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp1/AMQP1LatestTest.java new file mode 100644 index 00000000..0cb6afa3 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp1/AMQP1LatestTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.amqp1; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.amqp1.v0._1_0.channel.AMQP1ChannelBinding; +import com.asyncapi.bindings.amqp1.v0._1_0.message.AMQP1MessageBinding; +import com.asyncapi.bindings.amqp1.v0._1_0.operation.AMQP1OperationBinding; +import com.asyncapi.bindings.amqp1.v0._1_0.server.AMQP1ServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("latest") +public class AMQP1LatestTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = new AMQP1ChannelBinding(); + super.bindingTypeClass = AMQP1ChannelBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = new AMQP1MessageBinding(); + super.bindingTypeClass = AMQP1MessageBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = new AMQP1OperationBinding(); + super.bindingTypeClass = AMQP1OperationBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = new AMQP1ServerBinding(); + super.bindingTypeClass = AMQP1ServerBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp1/AMQP1UnknownVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp1/AMQP1UnknownVersionTest.java new file mode 100644 index 00000000..42dd419e --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp1/AMQP1UnknownVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.amqp1; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.amqp1.v0._1_0.channel.AMQP1ChannelBinding; +import com.asyncapi.bindings.amqp1.v0._1_0.message.AMQP1MessageBinding; +import com.asyncapi.bindings.amqp1.v0._1_0.operation.AMQP1OperationBinding; +import com.asyncapi.bindings.amqp1.v0._1_0.server.AMQP1ServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("unknown version") +public class AMQP1UnknownVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = new AMQP1ChannelBinding(); + super.bindingTypeClass = AMQP1ChannelBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = new AMQP1MessageBinding(); + super.bindingTypeClass = AMQP1MessageBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = new AMQP1OperationBinding(); + super.bindingTypeClass = AMQP1OperationBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = new AMQP1ServerBinding(); + super.bindingTypeClass = AMQP1ServerBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp1/AMQP1V0_1_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp1/AMQP1V0_1_0Test.java new file mode 100644 index 00000000..2c9df4fe --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp1/AMQP1V0_1_0Test.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.amqp1; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.amqp1.v0._1_0.channel.AMQP1ChannelBinding; +import com.asyncapi.bindings.amqp1.v0._1_0.message.AMQP1MessageBinding; +import com.asyncapi.bindings.amqp1.v0._1_0.operation.AMQP1OperationBinding; +import com.asyncapi.bindings.amqp1.v0._1_0.server.AMQP1ServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("0.1.0") +public class AMQP1V0_1_0Test { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = new AMQP1ChannelBinding(); + super.bindingTypeClass = AMQP1ChannelBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = new AMQP1MessageBinding(); + super.bindingTypeClass = AMQP1MessageBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = new AMQP1OperationBinding(); + super.bindingTypeClass = AMQP1OperationBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = new AMQP1ServerBinding(); + super.bindingTypeClass = AMQP1ServerBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp1/AMQP1WithoutVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp1/AMQP1WithoutVersionTest.java new file mode 100644 index 00000000..a83b8562 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/amqp1/AMQP1WithoutVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.amqp1; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.amqp1.v0._1_0.channel.AMQP1ChannelBinding; +import com.asyncapi.bindings.amqp1.v0._1_0.message.AMQP1MessageBinding; +import com.asyncapi.bindings.amqp1.v0._1_0.operation.AMQP1OperationBinding; +import com.asyncapi.bindings.amqp1.v0._1_0.server.AMQP1ServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("without version") +public class AMQP1WithoutVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = new AMQP1ChannelBinding(); + super.bindingTypeClass = AMQP1ChannelBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = new AMQP1MessageBinding(); + super.bindingTypeClass = AMQP1MessageBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = new AMQP1OperationBinding(); + super.bindingTypeClass = AMQP1OperationBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = new AMQP1ServerBinding(); + super.bindingTypeClass = AMQP1ServerBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/anypointmq/AnypointMQ.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/anypointmq/AnypointMQ.java new file mode 100644 index 00000000..02a2953f --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/anypointmq/AnypointMQ.java @@ -0,0 +1,11 @@ +package com.asyncapi.bindings.anypointmq; + +import org.junit.platform.suite.api.SelectPackages; +import org.junit.platform.suite.api.Suite; +import org.junit.platform.suite.api.SuiteDisplayName; + +@Suite +@SuiteDisplayName("Anypoint MQ") +@SelectPackages("com.asyncapi.bindings.anypointmq") +public class AnypointMQ { +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/anypointmq/AnypointMQLatestTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/anypointmq/AnypointMQLatestTest.java new file mode 100644 index 00000000..b6ef2776 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/anypointmq/AnypointMQLatestTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.anypointmq; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.anypointmq.v0._0_1.channel.AnypointMQChannelBinding; +import com.asyncapi.bindings.anypointmq.v0._0_1.message.AnypointMQMessageBinding; +import com.asyncapi.bindings.anypointmq.v0._0_1.operation.AnypointMQOperationBinding; +import com.asyncapi.bindings.anypointmq.v0._0_1.server.AnypointMQServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("latest") +public class AnypointMQLatestTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = AnypointMQV0_0_1Test.channelBinding(); + super.bindingTypeClass = AnypointMQChannelBinding.class; + super.pathToBindingJson = "/bindings/anypointmq/latest/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/anypointmq/latest/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/anypointmq/latest/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = AnypointMQV0_0_1Test.messageBinding(); + super.bindingTypeClass = AnypointMQMessageBinding.class; + super.pathToBindingJson = "/bindings/anypointmq/latest/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/anypointmq/latest/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/anypointmq/latest/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = AnypointMQV0_0_1Test.operationBinding(); + super.bindingTypeClass = AnypointMQOperationBinding.class; + super.pathToBindingJson = "/bindings/anypointmq/latest/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/anypointmq/latest/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/anypointmq/latest/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = AnypointMQV0_0_1Test.serverBinding(); + super.bindingTypeClass = AnypointMQServerBinding.class; + super.pathToBindingJson = "/bindings/anypointmq/latest/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/anypointmq/latest/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/anypointmq/latest/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/anypointmq/AnypointMQUnknownVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/anypointmq/AnypointMQUnknownVersionTest.java new file mode 100644 index 00000000..2b2d22cc --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/anypointmq/AnypointMQUnknownVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.anypointmq; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.anypointmq.v0._0_1.channel.AnypointMQChannelBinding; +import com.asyncapi.bindings.anypointmq.v0._0_1.message.AnypointMQMessageBinding; +import com.asyncapi.bindings.anypointmq.v0._0_1.operation.AnypointMQOperationBinding; +import com.asyncapi.bindings.anypointmq.v0._0_1.server.AnypointMQServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("unknown version") +public class AnypointMQUnknownVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = AnypointMQV0_0_1Test.channelBinding(); + super.bindingTypeClass = AnypointMQChannelBinding.class; + super.pathToBindingJson = "/bindings/anypointmq/unknown version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/anypointmq/unknown version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/anypointmq/unknown version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = AnypointMQV0_0_1Test.messageBinding(); + super.bindingTypeClass = AnypointMQMessageBinding.class; + super.pathToBindingJson = "/bindings/anypointmq/unknown version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/anypointmq/unknown version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/anypointmq/unknown version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = AnypointMQV0_0_1Test.operationBinding(); + super.bindingTypeClass = AnypointMQOperationBinding.class; + super.pathToBindingJson = "/bindings/anypointmq/unknown version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/anypointmq/unknown version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/anypointmq/unknown version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = AnypointMQV0_0_1Test.serverBinding(); + super.bindingTypeClass = AnypointMQServerBinding.class; + super.pathToBindingJson = "/bindings/anypointmq/unknown version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/anypointmq/unknown version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/anypointmq/unknown version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/anypointmq/AnypointMQV0_0_1Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/anypointmq/AnypointMQV0_0_1Test.java new file mode 100644 index 00000000..5000cc6b --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/anypointmq/AnypointMQV0_0_1Test.java @@ -0,0 +1,89 @@ +package com.asyncapi.bindings.anypointmq; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.anypointmq.v0._0_1.channel.AnypointMQChannelBinding; +import com.asyncapi.bindings.anypointmq.v0._0_1.channel.AnypointMQChannelDestinationType; +import com.asyncapi.bindings.anypointmq.v0._0_1.message.AnypointMQMessageBinding; +import com.asyncapi.bindings.anypointmq.v0._0_1.operation.AnypointMQOperationBinding; +import com.asyncapi.bindings.anypointmq.v0._0_1.server.AnypointMQServerBinding; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.schemas.Type; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +import java.util.Map; + +@DisplayName("0.1.0") +public class AnypointMQV0_0_1Test { + + public static AnypointMQChannelBinding channelBinding () { + return AnypointMQChannelBinding.builder() + .destination("user-signup-exchg") + .destinationType(AnypointMQChannelDestinationType.EXCHANGE) + .build(); + } + + public static AnypointMQMessageBinding messageBinding () { + return AnypointMQMessageBinding.builder() + .headers(AsyncAPISchema.builder() + .type(Type.OBJECT) + .properties(Map.ofEntries(Map.entry( + "correlationId", + AsyncAPISchema.builder() + .type(Type.STRING) + .description("Correlation ID set by application") + .build() + ))) + .build()) + .build(); + } + + public static AnypointMQOperationBinding operationBinding () { + return new AnypointMQOperationBinding(); + } + + public static AnypointMQServerBinding serverBinding () { + return new AnypointMQServerBinding(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = AnypointMQChannelBinding.class; + super.pathToBindingJson = "/bindings/anypointmq/0.0.1/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/anypointmq/0.0.1/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/anypointmq/0.0.1/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = AnypointMQMessageBinding.class; + super.pathToBindingJson = "/bindings/anypointmq/0.0.1/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/anypointmq/0.0.1/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/anypointmq/0.0.1/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = AnypointMQOperationBinding.class; + super.pathToBindingJson = "/bindings/anypointmq/0.0.1/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/anypointmq/0.0.1/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/anypointmq/0.0.1/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = AnypointMQServerBinding.class; + super.pathToBindingJson = "/bindings/anypointmq/0.0.1/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/anypointmq/0.0.1/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/anypointmq/0.0.1/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/anypointmq/AnypointMQWithoutVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/anypointmq/AnypointMQWithoutVersionTest.java new file mode 100644 index 00000000..ef1f3703 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/anypointmq/AnypointMQWithoutVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.anypointmq; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.anypointmq.v0._0_1.channel.AnypointMQChannelBinding; +import com.asyncapi.bindings.anypointmq.v0._0_1.message.AnypointMQMessageBinding; +import com.asyncapi.bindings.anypointmq.v0._0_1.operation.AnypointMQOperationBinding; +import com.asyncapi.bindings.anypointmq.v0._0_1.server.AnypointMQServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("without version") +public class AnypointMQWithoutVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = AnypointMQV0_0_1Test.channelBinding(); + super.bindingTypeClass = AnypointMQChannelBinding.class; + super.pathToBindingJson = "/bindings/anypointmq/without version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/anypointmq/without version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/anypointmq/without version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = AnypointMQV0_0_1Test.messageBinding(); + super.bindingTypeClass = AnypointMQMessageBinding.class; + super.pathToBindingJson = "/bindings/anypointmq/without version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/anypointmq/without version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/anypointmq/without version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = AnypointMQV0_0_1Test.operationBinding(); + super.bindingTypeClass = AnypointMQOperationBinding.class; + super.pathToBindingJson = "/bindings/anypointmq/without version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/anypointmq/without version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/anypointmq/without version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = AnypointMQV0_0_1Test.serverBinding(); + super.bindingTypeClass = AnypointMQServerBinding.class; + super.pathToBindingJson = "/bindings/anypointmq/without version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/anypointmq/without version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/anypointmq/without version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/googlepubsub/GooglePubSub.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/googlepubsub/GooglePubSub.java new file mode 100644 index 00000000..77e5b3bd --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/googlepubsub/GooglePubSub.java @@ -0,0 +1,11 @@ +package com.asyncapi.bindings.googlepubsub; + +import org.junit.platform.suite.api.SelectPackages; +import org.junit.platform.suite.api.Suite; +import org.junit.platform.suite.api.SuiteDisplayName; + +@Suite +@SuiteDisplayName("Google Cloud Pub/Sub") +@SelectPackages("com.asyncapi.bindings.googlepubsub") +public class GooglePubSub { +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/googlepubsub/GooglePubSubLatestTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/googlepubsub/GooglePubSubLatestTest.java new file mode 100644 index 00000000..98f7c937 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/googlepubsub/GooglePubSubLatestTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.googlepubsub; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.googlepubsub.v0._2_0.channel.GooglePubSubChannelBinding; +import com.asyncapi.bindings.googlepubsub.v0._2_0.message.GooglePubSubMessageBinding; +import com.asyncapi.bindings.googlepubsub.v0._2_0.operation.GooglePubSubOperationBinding; +import com.asyncapi.bindings.googlepubsub.v0._2_0.server.GooglePubSubServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("latest") +public class GooglePubSubLatestTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = GooglePubSubV0_2_0Test.channelBinding(); + super.bindingTypeClass = GooglePubSubChannelBinding.class; + super.pathToBindingJson = "/bindings/googlepubsub/latest/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/googlepubsub/latest/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/googlepubsub/latest/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = GooglePubSubV0_2_0Test.messageBinding(); + super.bindingTypeClass = GooglePubSubMessageBinding.class; + super.pathToBindingJson = "/bindings/googlepubsub/latest/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/googlepubsub/latest/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/googlepubsub/latest/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = GooglePubSubV0_2_0Test.operationBinding(); + super.bindingTypeClass = GooglePubSubOperationBinding.class; + super.pathToBindingJson = "/bindings/googlepubsub/latest/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/googlepubsub/latest/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/googlepubsub/latest/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = GooglePubSubV0_2_0Test.serverBinding(); + super.bindingTypeClass = GooglePubSubServerBinding.class; + super.pathToBindingJson = "/bindings/googlepubsub/latest/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/googlepubsub/latest/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/googlepubsub/latest/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/googlepubsub/GooglePubSubUnknownVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/googlepubsub/GooglePubSubUnknownVersionTest.java new file mode 100644 index 00000000..cec52bee --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/googlepubsub/GooglePubSubUnknownVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.googlepubsub; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.googlepubsub.v0._2_0.channel.GooglePubSubChannelBinding; +import com.asyncapi.bindings.googlepubsub.v0._2_0.message.GooglePubSubMessageBinding; +import com.asyncapi.bindings.googlepubsub.v0._2_0.operation.GooglePubSubOperationBinding; +import com.asyncapi.bindings.googlepubsub.v0._2_0.server.GooglePubSubServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("unknown version") +public class GooglePubSubUnknownVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = GooglePubSubV0_2_0Test.channelBinding(); + super.bindingTypeClass = GooglePubSubChannelBinding.class; + super.pathToBindingJson = "/bindings/googlepubsub/unknown version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/googlepubsub/unknown version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/googlepubsub/unknown version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = GooglePubSubV0_2_0Test.messageBinding(); + super.bindingTypeClass = GooglePubSubMessageBinding.class; + super.pathToBindingJson = "/bindings/googlepubsub/unknown version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/googlepubsub/unknown version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/googlepubsub/unknown version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = GooglePubSubV0_2_0Test.operationBinding(); + super.bindingTypeClass = GooglePubSubOperationBinding.class; + super.pathToBindingJson = "/bindings/googlepubsub/unknown version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/googlepubsub/unknown version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/googlepubsub/unknown version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = GooglePubSubV0_2_0Test.serverBinding(); + super.bindingTypeClass = GooglePubSubServerBinding.class; + super.pathToBindingJson = "/bindings/googlepubsub/unknown version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/googlepubsub/unknown version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/googlepubsub/unknown version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/googlepubsub/GooglePubSubV0_1_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/googlepubsub/GooglePubSubV0_1_0Test.java new file mode 100644 index 00000000..97bb9627 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/googlepubsub/GooglePubSubV0_1_0Test.java @@ -0,0 +1,104 @@ +package com.asyncapi.bindings.googlepubsub; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.googlepubsub.v0._1_0.channel.GooglePubSubChannelBinding; +import com.asyncapi.bindings.googlepubsub.v0._1_0.channel.GooglePubSubChannelMessageStoragePolicy; +import com.asyncapi.bindings.googlepubsub.v0._1_0.channel.GooglePubSubChannelSchemaSettings; +import com.asyncapi.bindings.googlepubsub.v0._1_0.message.GooglePubSubMessageBinding; +import com.asyncapi.bindings.googlepubsub.v0._1_0.message.GooglePubSubMessageSchemaDefinition; +import com.asyncapi.bindings.googlepubsub.v0._1_0.message.GooglePubSubMessageSchemaDefinitionType; +import com.asyncapi.bindings.googlepubsub.v0._1_0.operation.GooglePubSubOperationBinding; +import com.asyncapi.bindings.googlepubsub.v0._1_0.server.GooglePubSubServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +import java.util.List; + +@DisplayName("0.1.0") +public class GooglePubSubV0_1_0Test { + + public static GooglePubSubChannelBinding channelBinding () { + return GooglePubSubChannelBinding.builder() + .topic("projects/your-project/topics/topic-proto-schema") + .messageRetentionDuration("86400s") + .messageStoragePolicy(new GooglePubSubChannelMessageStoragePolicy( + List.of( + "us-central1", + "us-central2", + "us-east1", + "us-east4", + "us-east5", + "us-east7", + "us-south1", + "us-west1", + "us-west2", + "us-west3", + "us-west4" + ) + )) + .schemaSettings(GooglePubSubChannelSchemaSettings.builder() + .encoding("binary") + .name("projects/your-project/schemas/message-proto") + .build() + ) + .build(); + } + + public static GooglePubSubMessageBinding messageBinding () { + return GooglePubSubMessageBinding.builder() + .schema(new GooglePubSubMessageSchemaDefinition( + "projects/your-project/schemas/message-avro", + GooglePubSubMessageSchemaDefinitionType.AVRO + )) + .build(); + } + + public static GooglePubSubOperationBinding operationBinding () { + return new GooglePubSubOperationBinding(); + } + + public static GooglePubSubServerBinding serverBinding () { + return new GooglePubSubServerBinding(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = GooglePubSubChannelBinding.class; + super.pathToBindingJson = "/bindings/googlepubsub/0.1.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/googlepubsub/0.1.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/googlepubsub/0.1.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = GooglePubSubMessageBinding.class; + super.pathToBindingJson = "/bindings/googlepubsub/0.1.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/googlepubsub/0.1.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/googlepubsub/0.1.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = GooglePubSubOperationBinding.class; + super.pathToBindingJson = "/bindings/googlepubsub/0.1.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/googlepubsub/0.1.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/googlepubsub/0.1.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = GooglePubSubServerBinding.class; + super.pathToBindingJson = "/bindings/googlepubsub/0.1.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/googlepubsub/0.1.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/googlepubsub/0.1.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/googlepubsub/GooglePubSubV0_2_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/googlepubsub/GooglePubSubV0_2_0Test.java new file mode 100644 index 00000000..dd592e40 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/googlepubsub/GooglePubSubV0_2_0Test.java @@ -0,0 +1,101 @@ +package com.asyncapi.bindings.googlepubsub; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.googlepubsub.v0._2_0.channel.GooglePubSubChannelBinding; +import com.asyncapi.bindings.googlepubsub.v0._2_0.channel.GooglePubSubChannelMessageStoragePolicy; +import com.asyncapi.bindings.googlepubsub.v0._2_0.channel.GooglePubSubChannelSchemaSettings; +import com.asyncapi.bindings.googlepubsub.v0._2_0.message.GooglePubSubMessageBinding; +import com.asyncapi.bindings.googlepubsub.v0._2_0.message.GooglePubSubMessageSchemaDefinition; +import com.asyncapi.bindings.googlepubsub.v0._2_0.operation.GooglePubSubOperationBinding; +import com.asyncapi.bindings.googlepubsub.v0._2_0.server.GooglePubSubServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +import java.util.List; + +@DisplayName("0.2.0") +public class GooglePubSubV0_2_0Test { + + public static GooglePubSubChannelBinding channelBinding () { + return GooglePubSubChannelBinding.builder() + .messageRetentionDuration("86400s") + .messageStoragePolicy(new GooglePubSubChannelMessageStoragePolicy( + List.of( + "us-central1", + "us-central2", + "us-east1", + "us-east4", + "us-east5", + "us-east7", + "us-south1", + "us-west1", + "us-west2", + "us-west3", + "us-west4" + ) + )) + .schemaSettings(GooglePubSubChannelSchemaSettings.builder() + .encoding("binary") + .name("projects/your-project/schemas/message-proto") + .build() + ) + .build(); + } + + public static GooglePubSubMessageBinding messageBinding () { + return GooglePubSubMessageBinding.builder() + .schema(new GooglePubSubMessageSchemaDefinition( + "projects/your-project/schemas/message-avro" + )) + .build(); + } + + public static GooglePubSubOperationBinding operationBinding () { + return new GooglePubSubOperationBinding(); + } + + public static GooglePubSubServerBinding serverBinding () { + return new GooglePubSubServerBinding(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = GooglePubSubChannelBinding.class; + super.pathToBindingJson = "/bindings/googlepubsub/0.2.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/googlepubsub/0.2.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/googlepubsub/0.2.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = GooglePubSubMessageBinding.class; + super.pathToBindingJson = "/bindings/googlepubsub/0.2.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/googlepubsub/0.2.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/googlepubsub/0.2.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = GooglePubSubOperationBinding.class; + super.pathToBindingJson = "/bindings/googlepubsub/0.2.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/googlepubsub/0.2.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/googlepubsub/0.2.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = GooglePubSubServerBinding.class; + super.pathToBindingJson = "/bindings/googlepubsub/0.2.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/googlepubsub/0.2.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/googlepubsub/0.2.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/googlepubsub/GooglePubSubWithoutVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/googlepubsub/GooglePubSubWithoutVersionTest.java new file mode 100644 index 00000000..72c378f8 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/googlepubsub/GooglePubSubWithoutVersionTest.java @@ -0,0 +1,59 @@ +package com.asyncapi.bindings.googlepubsub; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.anypointmq.AnypointMQV0_0_1Test; +import com.asyncapi.bindings.anypointmq.v0._0_1.channel.AnypointMQChannelBinding; +import com.asyncapi.bindings.anypointmq.v0._0_1.message.AnypointMQMessageBinding; +import com.asyncapi.bindings.anypointmq.v0._0_1.operation.AnypointMQOperationBinding; +import com.asyncapi.bindings.anypointmq.v0._0_1.server.AnypointMQServerBinding; +import com.asyncapi.bindings.googlepubsub.v0._2_0.channel.GooglePubSubChannelBinding; +import com.asyncapi.bindings.googlepubsub.v0._2_0.message.GooglePubSubMessageBinding; +import com.asyncapi.bindings.googlepubsub.v0._2_0.operation.GooglePubSubOperationBinding; +import com.asyncapi.bindings.googlepubsub.v0._2_0.server.GooglePubSubServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("without version") +public class GooglePubSubWithoutVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = GooglePubSubV0_2_0Test.channelBinding(); + super.bindingTypeClass = GooglePubSubChannelBinding.class; + super.pathToBindingJson = "/bindings/googlepubsub/without version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/googlepubsub/without version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/googlepubsub/without version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = GooglePubSubV0_2_0Test.messageBinding(); + super.bindingTypeClass = GooglePubSubMessageBinding.class; + super.pathToBindingJson = "/bindings/googlepubsub/without version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/googlepubsub/without version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/googlepubsub/without version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = GooglePubSubV0_2_0Test.operationBinding(); + super.bindingTypeClass = GooglePubSubOperationBinding.class; + super.pathToBindingJson = "/bindings/googlepubsub/without version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/googlepubsub/without version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/googlepubsub/without version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = GooglePubSubV0_2_0Test.serverBinding(); + super.bindingTypeClass = GooglePubSubServerBinding.class; + super.pathToBindingJson = "/bindings/googlepubsub/without version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/googlepubsub/without version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/googlepubsub/without version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/http/HTTP.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/http/HTTP.java new file mode 100644 index 00000000..e56243cd --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/http/HTTP.java @@ -0,0 +1,11 @@ +package com.asyncapi.bindings.http; + +import org.junit.platform.suite.api.SelectPackages; +import org.junit.platform.suite.api.Suite; +import org.junit.platform.suite.api.SuiteDisplayName; + +@Suite +@SuiteDisplayName("HTTP") +@SelectPackages("com.asyncapi.bindings.http") +public class HTTP { +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/http/HTTPLatestTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/http/HTTPLatestTest.java new file mode 100644 index 00000000..65f66df8 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/http/HTTPLatestTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.http; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.http.v0._3_0.channel.HTTPChannelBinding; +import com.asyncapi.bindings.http.v0._3_0.message.HTTPMessageBinding; +import com.asyncapi.bindings.http.v0._3_0.operation.HTTPOperationBinding; +import com.asyncapi.bindings.http.v0._3_0.server.HTTPServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("latest") +public class HTTPLatestTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = HTTPV0_3_0Test.channelBinding(); + super.bindingTypeClass = HTTPChannelBinding.class; + super.pathToBindingJson = "/bindings/http/latest/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/http/latest/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/http/latest/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = HTTPV0_3_0Test.messageBinding(); + super.bindingTypeClass = HTTPMessageBinding.class; + super.pathToBindingJson = "/bindings/http/latest/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/http/latest/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/http/latest/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = HTTPV0_3_0Test.operationBinding(); + super.bindingTypeClass = HTTPOperationBinding.class; + super.pathToBindingJson = "/bindings/http/latest/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/http/latest/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/http/latest/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = HTTPV0_3_0Test.serverBinding(); + super.bindingTypeClass = HTTPServerBinding.class; + super.pathToBindingJson = "/bindings/http/latest/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/http/latest/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/http/latest/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/http/HTTPUnknownVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/http/HTTPUnknownVersionTest.java new file mode 100644 index 00000000..e9cc9f4e --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/http/HTTPUnknownVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.http; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.http.v0._3_0.channel.HTTPChannelBinding; +import com.asyncapi.bindings.http.v0._3_0.message.HTTPMessageBinding; +import com.asyncapi.bindings.http.v0._3_0.operation.HTTPOperationBinding; +import com.asyncapi.bindings.http.v0._3_0.server.HTTPServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("unknown version") +public class HTTPUnknownVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = HTTPV0_3_0Test.channelBinding(); + super.bindingTypeClass = HTTPChannelBinding.class; + super.pathToBindingJson = "/bindings/http/unknown version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/http/unknown version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/http/unknown version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = HTTPV0_3_0Test.messageBinding(); + super.bindingTypeClass = HTTPMessageBinding.class; + super.pathToBindingJson = "/bindings/http/unknown version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/http/unknown version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/http/unknown version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = HTTPV0_3_0Test.operationBinding(); + super.bindingTypeClass = HTTPOperationBinding.class; + super.pathToBindingJson = "/bindings/http/unknown version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/http/unknown version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/http/unknown version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = HTTPV0_3_0Test.serverBinding(); + super.bindingTypeClass = HTTPServerBinding.class; + super.pathToBindingJson = "/bindings/http/unknown version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/http/unknown version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/http/unknown version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/http/HTTPV0_1_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/http/HTTPV0_1_0Test.java new file mode 100644 index 00000000..fdecf321 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/http/HTTPV0_1_0Test.java @@ -0,0 +1,105 @@ +package com.asyncapi.bindings.http; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.http.v0._1_0.channel.HTTPChannelBinding; +import com.asyncapi.bindings.http.v0._1_0.message.HTTPMessageBinding; +import com.asyncapi.bindings.http.v0._1_0.operation.HTTPOperationBinding; +import com.asyncapi.bindings.http.v0._1_0.operation.HTTPOperationMethod; +import com.asyncapi.bindings.http.v0._1_0.operation.HTTPOperationType; +import com.asyncapi.bindings.http.v0._1_0.server.HTTPServerBinding; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.schemas.Type; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +import java.math.BigDecimal; +import java.util.List; +import java.util.Map; + +@DisplayName("0.1.0") +public class HTTPV0_1_0Test { + + public static HTTPChannelBinding channelBinding () { + return new HTTPChannelBinding(); + } + + public static HTTPMessageBinding messageBinding () { + return HTTPMessageBinding.builder() + .headers(AsyncAPISchema.builder() + .type(Type.OBJECT) + .properties(Map.ofEntries( + Map.entry("Content-Type", AsyncAPISchema.builder() + .type(Type.STRING) + .enumValue(List.of("application/json")) + .build()) + )) + .build() + ) + .build(); + } + + public static HTTPOperationBinding operationBinding () { + return HTTPOperationBinding.builder() + .type(HTTPOperationType.REQUEST) + .method(HTTPOperationMethod.GET) + .query(AsyncAPISchema.builder() + .type(Type.OBJECT) + .required(List.of("companyId")) + .properties(Map.ofEntries( + Map.entry("companyId", AsyncAPISchema.builder() + .type(Type.NUMBER) + .minimum(BigDecimal.ONE) + .description("The Id of the company.") + .build()) + )) + .additionalProperties(false) + .build() + ) + .build(); + } + + public static HTTPServerBinding serverBinding () { + return new HTTPServerBinding(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = HTTPChannelBinding.class; + super.pathToBindingJson = "/bindings/http/0.1.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/http/0.1.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/http/0.1.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = HTTPMessageBinding.class; + super.pathToBindingJson = "/bindings/http/0.1.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/http/0.1.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/http/0.1.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = HTTPOperationBinding.class; + super.pathToBindingJson = "/bindings/http/0.1.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/http/0.1.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/http/0.1.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = HTTPServerBinding.class; + super.pathToBindingJson = "/bindings/http/0.1.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/http/0.1.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/http/0.1.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/http/HTTPV0_2_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/http/HTTPV0_2_0Test.java new file mode 100644 index 00000000..c33db22a --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/http/HTTPV0_2_0Test.java @@ -0,0 +1,103 @@ +package com.asyncapi.bindings.http; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.http.v0._2_0.channel.HTTPChannelBinding; +import com.asyncapi.bindings.http.v0._2_0.message.HTTPMessageBinding; +import com.asyncapi.bindings.http.v0._2_0.operation.HTTPOperationBinding; +import com.asyncapi.bindings.http.v0._2_0.operation.HTTPOperationMethod; +import com.asyncapi.bindings.http.v0._2_0.server.HTTPServerBinding; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.schemas.Type; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +import java.math.BigDecimal; +import java.util.List; +import java.util.Map; + +@DisplayName("0.2.0") +public class HTTPV0_2_0Test { + + public static HTTPChannelBinding channelBinding () { + return new HTTPChannelBinding(); + } + + public static HTTPMessageBinding messageBinding () { + return HTTPMessageBinding.builder() + .headers(AsyncAPISchema.builder() + .type(Type.OBJECT) + .properties(Map.ofEntries( + Map.entry("Content-Type", AsyncAPISchema.builder() + .type(Type.STRING) + .enumValue(List.of("application/json")) + .build()) + )) + .build() + ) + .build(); + } + + public static HTTPOperationBinding operationBinding () { + return HTTPOperationBinding.builder() + .method(HTTPOperationMethod.GET) + .query(AsyncAPISchema.builder() + .type(Type.OBJECT) + .required(List.of("companyId")) + .properties(Map.ofEntries( + Map.entry("companyId", AsyncAPISchema.builder() + .type(Type.NUMBER) + .minimum(BigDecimal.ONE) + .description("The Id of the company.") + .build()) + )) + .additionalProperties(false) + .build() + ) + .build(); + } + + public static HTTPServerBinding serverBinding () { + return new HTTPServerBinding(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = HTTPChannelBinding.class; + super.pathToBindingJson = "/bindings/http/0.2.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/http/0.2.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/http/0.2.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = HTTPMessageBinding.class; + super.pathToBindingJson = "/bindings/http/0.2.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/http/0.2.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/http/0.2.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = HTTPOperationBinding.class; + super.pathToBindingJson = "/bindings/http/0.2.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/http/0.2.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/http/0.2.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = HTTPServerBinding.class; + super.pathToBindingJson = "/bindings/http/0.2.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/http/0.2.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/http/0.2.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/http/HTTPV0_3_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/http/HTTPV0_3_0Test.java new file mode 100644 index 00000000..a7343c53 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/http/HTTPV0_3_0Test.java @@ -0,0 +1,104 @@ +package com.asyncapi.bindings.http; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.http.v0._3_0.channel.HTTPChannelBinding; +import com.asyncapi.bindings.http.v0._3_0.message.HTTPMessageBinding; +import com.asyncapi.bindings.http.v0._3_0.operation.HTTPOperationBinding; +import com.asyncapi.bindings.http.v0._3_0.operation.HTTPOperationMethod; +import com.asyncapi.bindings.http.v0._3_0.server.HTTPServerBinding; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.schemas.Type; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +import java.math.BigDecimal; +import java.util.List; +import java.util.Map; + +@DisplayName("0.3.0") +public class HTTPV0_3_0Test { + + public static HTTPChannelBinding channelBinding () { + return new HTTPChannelBinding(); + } + + public static HTTPMessageBinding messageBinding () { + return HTTPMessageBinding.builder() + .headers(AsyncAPISchema.builder() + .type(Type.OBJECT) + .properties(Map.ofEntries( + Map.entry("Content-Type", AsyncAPISchema.builder() + .type(Type.STRING) + .enumValue(List.of("application/json")) + .build()) + )) + .build() + ) + .statusCode(200) + .build(); + } + + public static HTTPOperationBinding operationBinding () { + return HTTPOperationBinding.builder() + .method(HTTPOperationMethod.GET) + .query(AsyncAPISchema.builder() + .type(Type.OBJECT) + .required(List.of("companyId")) + .properties(Map.ofEntries( + Map.entry("companyId", AsyncAPISchema.builder() + .type(Type.NUMBER) + .minimum(BigDecimal.ONE) + .description("The Id of the company.") + .build()) + )) + .additionalProperties(false) + .build() + ) + .build(); + } + + public static HTTPServerBinding serverBinding () { + return new HTTPServerBinding(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = HTTPChannelBinding.class; + super.pathToBindingJson = "/bindings/http/0.3.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/http/0.3.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/http/0.3.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = HTTPMessageBinding.class; + super.pathToBindingJson = "/bindings/http/0.3.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/http/0.3.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/http/0.3.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = HTTPOperationBinding.class; + super.pathToBindingJson = "/bindings/http/0.3.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/http/0.3.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/http/0.3.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = HTTPServerBinding.class; + super.pathToBindingJson = "/bindings/http/0.3.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/http/0.3.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/http/0.3.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/http/HTTPWithoutVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/http/HTTPWithoutVersionTest.java new file mode 100644 index 00000000..f0356064 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/http/HTTPWithoutVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.http; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.http.v0._3_0.channel.HTTPChannelBinding; +import com.asyncapi.bindings.http.v0._3_0.message.HTTPMessageBinding; +import com.asyncapi.bindings.http.v0._3_0.operation.HTTPOperationBinding; +import com.asyncapi.bindings.http.v0._3_0.server.HTTPServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("without version") +public class HTTPWithoutVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = HTTPV0_3_0Test.channelBinding(); + super.bindingTypeClass = HTTPChannelBinding.class; + super.pathToBindingJson = "/bindings/http/without version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/http/without version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/http/without version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = HTTPV0_3_0Test.messageBinding(); + super.bindingTypeClass = HTTPMessageBinding.class; + super.pathToBindingJson = "/bindings/http/without version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/http/without version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/http/without version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = HTTPV0_3_0Test.operationBinding(); + super.bindingTypeClass = HTTPOperationBinding.class; + super.pathToBindingJson = "/bindings/http/without version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/http/without version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/http/without version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = HTTPV0_3_0Test.serverBinding(); + super.bindingTypeClass = HTTPServerBinding.class; + super.pathToBindingJson = "/bindings/http/without version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/http/without version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/http/without version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/ibmmq/IBMMQ.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/ibmmq/IBMMQ.java new file mode 100644 index 00000000..45a45946 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/ibmmq/IBMMQ.java @@ -0,0 +1,11 @@ +package com.asyncapi.bindings.ibmmq; + +import org.junit.platform.suite.api.SelectPackages; +import org.junit.platform.suite.api.Suite; +import org.junit.platform.suite.api.SuiteDisplayName; + +@Suite +@SuiteDisplayName("IBM MQ") +@SelectPackages("com.asyncapi.bindings.ibmmq") +public class IBMMQ { +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/ibmmq/IBMMQLatestTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/ibmmq/IBMMQLatestTest.java new file mode 100644 index 00000000..7af44264 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/ibmmq/IBMMQLatestTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.ibmmq; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.ibmmq.v0._1_0.channel.IBMMQChannelBinding; +import com.asyncapi.bindings.ibmmq.v0._1_0.message.IBMMQMessageBinding; +import com.asyncapi.bindings.ibmmq.v0._1_0.operation.IBMMQOperationBinding; +import com.asyncapi.bindings.ibmmq.v0._1_0.server.IBMMQServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("latest") +public class IBMMQLatestTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = IBMMQV0_1_0Test.channelBinding(); + super.bindingTypeClass = IBMMQChannelBinding.class; + super.pathToBindingJson = "/bindings/ibmmq/latest/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/ibmmq/latest/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/ibmmq/latest/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = IBMMQV0_1_0Test.messageBinding(); + super.bindingTypeClass = IBMMQMessageBinding.class; + super.pathToBindingJson = "/bindings/ibmmq/latest/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/ibmmq/latest/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/ibmmq/latest/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = IBMMQV0_1_0Test.operationBinding(); + super.bindingTypeClass = IBMMQOperationBinding.class; + super.pathToBindingJson = "/bindings/ibmmq/latest/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/ibmmq/latest/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/ibmmq/latest/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = IBMMQV0_1_0Test.serverBinding(); + super.bindingTypeClass = IBMMQServerBinding.class; + super.pathToBindingJson = "/bindings/ibmmq/latest/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/ibmmq/latest/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/ibmmq/latest/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/ibmmq/IBMMQUnknownVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/ibmmq/IBMMQUnknownVersionTest.java new file mode 100644 index 00000000..e6d90d46 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/ibmmq/IBMMQUnknownVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.ibmmq; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.ibmmq.v0._1_0.channel.IBMMQChannelBinding; +import com.asyncapi.bindings.ibmmq.v0._1_0.message.IBMMQMessageBinding; +import com.asyncapi.bindings.ibmmq.v0._1_0.operation.IBMMQOperationBinding; +import com.asyncapi.bindings.ibmmq.v0._1_0.server.IBMMQServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("unknown version") +public class IBMMQUnknownVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = IBMMQV0_1_0Test.channelBinding(); + super.bindingTypeClass = IBMMQChannelBinding.class; + super.pathToBindingJson = "/bindings/ibmmq/unknown version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/ibmmq/unknown version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/ibmmq/unknown version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = IBMMQV0_1_0Test.messageBinding(); + super.bindingTypeClass = IBMMQMessageBinding.class; + super.pathToBindingJson = "/bindings/ibmmq/unknown version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/ibmmq/unknown version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/ibmmq/unknown version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = IBMMQV0_1_0Test.operationBinding(); + super.bindingTypeClass = IBMMQOperationBinding.class; + super.pathToBindingJson = "/bindings/ibmmq/unknown version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/ibmmq/unknown version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/ibmmq/unknown version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = IBMMQV0_1_0Test.serverBinding(); + super.bindingTypeClass = IBMMQServerBinding.class; + super.pathToBindingJson = "/bindings/ibmmq/unknown version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/ibmmq/unknown version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/ibmmq/unknown version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/ibmmq/IBMMQV0_1_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/ibmmq/IBMMQV0_1_0Test.java new file mode 100644 index 00000000..ceb55a48 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/ibmmq/IBMMQV0_1_0Test.java @@ -0,0 +1,98 @@ +package com.asyncapi.bindings.ibmmq; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.ibmmq.v0._1_0.channel.IBMMQChannelBinding; +import com.asyncapi.bindings.ibmmq.v0._1_0.channel.IBMMQChannelDestinationType; +import com.asyncapi.bindings.ibmmq.v0._1_0.channel.IBMMQChannelQueueProperties; +import com.asyncapi.bindings.ibmmq.v0._1_0.channel.IBMMQChannelTopicProperties; +import com.asyncapi.bindings.ibmmq.v0._1_0.message.IBMMQMessageBinding; +import com.asyncapi.bindings.ibmmq.v0._1_0.message.IBMMQMessageType; +import com.asyncapi.bindings.ibmmq.v0._1_0.operation.IBMMQOperationBinding; +import com.asyncapi.bindings.ibmmq.v0._1_0.server.IBMMQServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("0.1.0") +public class IBMMQV0_1_0Test { + + public static IBMMQChannelBinding channelBinding () { + return IBMMQChannelBinding.builder() + .destinationType(IBMMQChannelDestinationType.TOPIC) + .queue(IBMMQChannelQueueProperties.builder() + .objectName("message") + .isPartitioned(false) + .exclusive(true) + .build() + ) + .topic(IBMMQChannelTopicProperties.builder() + .string("messages") + .objectName("message") + .durablePermitted(true) + .lastMsgRetained(true) + .build() + ) + .maxMsgLength(1024) + .build(); + } + + public static IBMMQMessageBinding messageBinding () { + return IBMMQMessageBinding.builder() + .type(IBMMQMessageType.JMS) + .description("JMS stream message") + .headers("Content-Type: application/json") + .expiry(0) + .build(); + } + + public static IBMMQOperationBinding operationBinding () { + return new IBMMQOperationBinding(); + } + + public static IBMMQServerBinding serverBinding () { + return IBMMQServerBinding.builder() + .groupId("PRODCLSTR1") + .cipherSpec("ANY_TLS12_OR_HIGHER") + .build(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = IBMMQChannelBinding.class; + super.pathToBindingJson = "/bindings/ibmmq/0.1.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/ibmmq/0.1.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/ibmmq/0.1.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = IBMMQMessageBinding.class; + super.pathToBindingJson = "/bindings/ibmmq/0.1.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/ibmmq/0.1.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/ibmmq/0.1.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = IBMMQOperationBinding.class; + super.pathToBindingJson = "/bindings/ibmmq/0.1.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/ibmmq/0.1.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/ibmmq/0.1.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = IBMMQServerBinding.class; + super.pathToBindingJson = "/bindings/ibmmq/0.1.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/ibmmq/0.1.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/ibmmq/0.1.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/ibmmq/IBMMQWithoutVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/ibmmq/IBMMQWithoutVersionTest.java new file mode 100644 index 00000000..aa20ca27 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/ibmmq/IBMMQWithoutVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.ibmmq; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.ibmmq.v0._1_0.channel.IBMMQChannelBinding; +import com.asyncapi.bindings.ibmmq.v0._1_0.message.IBMMQMessageBinding; +import com.asyncapi.bindings.ibmmq.v0._1_0.operation.IBMMQOperationBinding; +import com.asyncapi.bindings.ibmmq.v0._1_0.server.IBMMQServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("without version") +public class IBMMQWithoutVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = IBMMQV0_1_0Test.channelBinding(); + super.bindingTypeClass = IBMMQChannelBinding.class; + super.pathToBindingJson = "/bindings/ibmmq/without version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/ibmmq/without version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/ibmmq/without version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = IBMMQV0_1_0Test.messageBinding(); + super.bindingTypeClass = IBMMQMessageBinding.class; + super.pathToBindingJson = "/bindings/ibmmq/without version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/ibmmq/without version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/ibmmq/without version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = IBMMQV0_1_0Test.operationBinding(); + super.bindingTypeClass = IBMMQOperationBinding.class; + super.pathToBindingJson = "/bindings/ibmmq/without version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/ibmmq/without version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/ibmmq/without version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = IBMMQV0_1_0Test.serverBinding(); + super.bindingTypeClass = IBMMQServerBinding.class; + super.pathToBindingJson = "/bindings/ibmmq/without version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/ibmmq/without version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/ibmmq/without version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/jms/JMS.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/jms/JMS.java new file mode 100644 index 00000000..df097ba2 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/jms/JMS.java @@ -0,0 +1,11 @@ +package com.asyncapi.bindings.jms; + +import org.junit.platform.suite.api.SelectPackages; +import org.junit.platform.suite.api.Suite; +import org.junit.platform.suite.api.SuiteDisplayName; + +@Suite +@SuiteDisplayName("JMS") +@SelectPackages("com.asyncapi.bindings.jms") +public class JMS { +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/jms/JMSLatestTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/jms/JMSLatestTest.java new file mode 100644 index 00000000..57cf136a --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/jms/JMSLatestTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.jms; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.jms.v0._0_1.channel.JMSChannelBinding; +import com.asyncapi.bindings.jms.v0._0_1.message.JMSMessageBinding; +import com.asyncapi.bindings.jms.v0._0_1.operation.JMSOperationBinding; +import com.asyncapi.bindings.jms.v0._0_1.server.JMSServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("latest") +public class JMSLatestTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = JMSV0_1_0Test.channelBinding(); + super.bindingTypeClass = JMSChannelBinding.class; + super.pathToBindingJson = "/bindings/jms/latest/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/jms/latest/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/jms/latest/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = JMSV0_1_0Test.messageBinding(); + super.bindingTypeClass = JMSMessageBinding.class; + super.pathToBindingJson = "/bindings/jms/latest/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/jms/latest/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/jms/latest/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = JMSV0_1_0Test.operationBinding(); + super.bindingTypeClass = JMSOperationBinding.class; + super.pathToBindingJson = "/bindings/jms/latest/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/jms/latest/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/jms/latest/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = JMSV0_1_0Test.serverBinding(); + super.bindingTypeClass = JMSServerBinding.class; + super.pathToBindingJson = "/bindings/jms/latest/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/jms/latest/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/jms/latest/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/jms/JMSUnknownVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/jms/JMSUnknownVersionTest.java new file mode 100644 index 00000000..4e422365 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/jms/JMSUnknownVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.jms; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.jms.v0._0_1.channel.JMSChannelBinding; +import com.asyncapi.bindings.jms.v0._0_1.message.JMSMessageBinding; +import com.asyncapi.bindings.jms.v0._0_1.operation.JMSOperationBinding; +import com.asyncapi.bindings.jms.v0._0_1.server.JMSServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("unknown version") +public class JMSUnknownVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = JMSV0_1_0Test.channelBinding(); + super.bindingTypeClass = JMSChannelBinding.class; + super.pathToBindingJson = "/bindings/jms/unknown version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/jms/unknown version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/jms/unknown version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = JMSV0_1_0Test.messageBinding(); + super.bindingTypeClass = JMSMessageBinding.class; + super.pathToBindingJson = "/bindings/jms/unknown version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/jms/unknown version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/jms/unknown version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = JMSV0_1_0Test.operationBinding(); + super.bindingTypeClass = JMSOperationBinding.class; + super.pathToBindingJson = "/bindings/jms/unknown version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/jms/unknown version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/jms/unknown version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = JMSV0_1_0Test.serverBinding(); + super.bindingTypeClass = JMSServerBinding.class; + super.pathToBindingJson = "/bindings/jms/unknown version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/jms/unknown version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/jms/unknown version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/jms/JMSV0_1_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/jms/JMSV0_1_0Test.java new file mode 100644 index 00000000..eaf03390 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/jms/JMSV0_1_0Test.java @@ -0,0 +1,135 @@ +package com.asyncapi.bindings.jms; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.jms.v0._0_1.channel.JMSChannelBinding; +import com.asyncapi.bindings.jms.v0._0_1.channel.JMSChannelDestinationType; +import com.asyncapi.bindings.jms.v0._0_1.message.JMSMessageBinding; +import com.asyncapi.bindings.jms.v0._0_1.operation.JMSOperationBinding; +import com.asyncapi.bindings.jms.v0._0_1.server.JMSServerBinding; +import com.asyncapi.bindings.jms.v0._0_1.server.JMSServerProperty; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +import java.util.LinkedHashMap; +import java.util.List; + +@DisplayName("0.0.1") +public class JMSV0_1_0Test { + + public static JMSChannelBinding channelBinding () { + return JMSChannelBinding.builder() + .destination("user-signed-up") + .destinationType(JMSChannelDestinationType.FIFO_QUEUE) + .build(); + } + + public static JMSMessageBinding messageBinding () { + var properties = new LinkedHashMap(); + properties.put("JMSMessageID", AsyncAPISchema.builder() + .type(List.of("string", "null")) + .description("A unique message identifier. This may be set by your JMS Provider on your behalf.") + .build() + ); + properties.put("JMSTimestamp", AsyncAPISchema.builder() + .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.") + .build() + ); + properties.put("JMSDeliveryMode", AsyncAPISchema.builder() + .type("string") + .enumValue(List.of("PERSISTENT", "NON_PERSISTENT")) + .defaultValue("PERSISTENT") + .description("Denotes the delivery mode for the message. This may be set by your JMS Provider on your behalf.") + .build() + ); + properties.put("JMSPriority", AsyncAPISchema.builder() + .type("integer") + .defaultValue(4) + .description("The priority of the message. This may be set by your JMS Provider on your behalf.") + .build() + ); + properties.put("JMSExpires", AsyncAPISchema.builder() + .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.") + .build() + ); + properties.put("JMSType", AsyncAPISchema.builder() + .type(List.of("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.") + .build() + ); + properties.put("JMSCorrelationID", AsyncAPISchema.builder() + .type(List.of("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.") + .build() + ); + properties.put("JMSReplyTo", AsyncAPISchema.builder() + .type("string") + .description("The queue or topic that the message sender expects replies to.") + .build() + ); + + return JMSMessageBinding.builder() + .headers(AsyncAPISchema.builder() + .type("object") + .required(List.of("JMSMessageID")) + .properties(properties) + .build() + ) + .build(); + } + + public static JMSOperationBinding operationBinding () { + return new JMSOperationBinding(); + } + + public static JMSServerBinding serverBinding () { + return JMSServerBinding.builder() + .jmsConnectionFactory("org.apache.activemq.ActiveMQConnectionFactory") + .clientID("my-application-1") + .properties(List.of(new JMSServerProperty("disableTimeStampsByDefault", false))) + .build(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = JMSChannelBinding.class; + super.pathToBindingJson = "/bindings/jms/0.0.1/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/jms/0.0.1/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/jms/0.0.1/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = JMSMessageBinding.class; + super.pathToBindingJson = "/bindings/jms/0.0.1/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/jms/0.0.1/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/jms/0.0.1/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = JMSOperationBinding.class; + super.pathToBindingJson = "/bindings/jms/0.0.1/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/jms/0.0.1/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/jms/0.0.1/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = JMSServerBinding.class; + super.pathToBindingJson = "/bindings/jms/0.0.1/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/jms/0.0.1/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/jms/0.0.1/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/jms/JMSWithoutVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/jms/JMSWithoutVersionTest.java new file mode 100644 index 00000000..c4779a3e --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/jms/JMSWithoutVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.jms; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.jms.v0._0_1.channel.JMSChannelBinding; +import com.asyncapi.bindings.jms.v0._0_1.message.JMSMessageBinding; +import com.asyncapi.bindings.jms.v0._0_1.operation.JMSOperationBinding; +import com.asyncapi.bindings.jms.v0._0_1.server.JMSServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("without version") +public class JMSWithoutVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = JMSV0_1_0Test.channelBinding(); + super.bindingTypeClass = JMSChannelBinding.class; + super.pathToBindingJson = "/bindings/jms/without version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/jms/without version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/jms/without version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = JMSV0_1_0Test.messageBinding(); + super.bindingTypeClass = JMSMessageBinding.class; + super.pathToBindingJson = "/bindings/jms/without version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/jms/without version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/jms/without version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = JMSV0_1_0Test.operationBinding(); + super.bindingTypeClass = JMSOperationBinding.class; + super.pathToBindingJson = "/bindings/jms/without version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/jms/without version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/jms/without version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = JMSV0_1_0Test.serverBinding(); + super.bindingTypeClass = JMSServerBinding.class; + super.pathToBindingJson = "/bindings/jms/without version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/jms/without version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/jms/without version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/kafka/Kafka.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/kafka/Kafka.java new file mode 100644 index 00000000..afe6523a --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/kafka/Kafka.java @@ -0,0 +1,11 @@ +package com.asyncapi.bindings.kafka; + +import org.junit.platform.suite.api.SelectPackages; +import org.junit.platform.suite.api.Suite; +import org.junit.platform.suite.api.SuiteDisplayName; + +@Suite +@SuiteDisplayName("Kafka") +@SelectPackages("com.asyncapi.bindings.kafka") +public class Kafka { +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/kafka/KafkaLatestTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/kafka/KafkaLatestTest.java new file mode 100644 index 00000000..d164d446 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/kafka/KafkaLatestTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.kafka; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.kafka.v0._5_0.channel.KafkaChannelBinding; +import com.asyncapi.bindings.kafka.v0._5_0.message.KafkaMessageBinding; +import com.asyncapi.bindings.kafka.v0._5_0.operation.KafkaOperationBinding; +import com.asyncapi.bindings.kafka.v0._5_0.server.KafkaServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("latest") +public class KafkaLatestTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = KafkaV0_5_0Test.channelBinding(); + super.bindingTypeClass = KafkaChannelBinding.class; + super.pathToBindingJson = "/bindings/kafka/latest/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/kafka/latest/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/kafka/latest/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = KafkaV0_5_0Test.messageBinding(); + super.bindingTypeClass = KafkaMessageBinding.class; + super.pathToBindingJson = "/bindings/kafka/latest/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/kafka/latest/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/kafka/latest/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = KafkaV0_5_0Test.operationBinding(); + super.bindingTypeClass = KafkaOperationBinding.class; + super.pathToBindingJson = "/bindings/kafka/latest/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/kafka/latest/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/kafka/latest/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = KafkaV0_5_0Test.serverBinding(); + super.bindingTypeClass = KafkaServerBinding.class; + super.pathToBindingJson = "/bindings/kafka/latest/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/kafka/latest/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/kafka/latest/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/kafka/KafkaUnknownVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/kafka/KafkaUnknownVersionTest.java new file mode 100644 index 00000000..4d38fbb4 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/kafka/KafkaUnknownVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.kafka; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.kafka.v0._5_0.channel.KafkaChannelBinding; +import com.asyncapi.bindings.kafka.v0._5_0.message.KafkaMessageBinding; +import com.asyncapi.bindings.kafka.v0._5_0.operation.KafkaOperationBinding; +import com.asyncapi.bindings.kafka.v0._5_0.server.KafkaServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("unknown version") +public class KafkaUnknownVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = KafkaV0_5_0Test.channelBinding(); + super.bindingTypeClass = KafkaChannelBinding.class; + super.pathToBindingJson = "/bindings/kafka/unknown version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/kafka/unknown version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/kafka/unknown version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = KafkaV0_5_0Test.messageBinding(); + super.bindingTypeClass = KafkaMessageBinding.class; + super.pathToBindingJson = "/bindings/kafka/unknown version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/kafka/unknown version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/kafka/unknown version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = KafkaV0_5_0Test.operationBinding(); + super.bindingTypeClass = KafkaOperationBinding.class; + super.pathToBindingJson = "/bindings/kafka/unknown version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/kafka/unknown version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/kafka/unknown version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = KafkaV0_5_0Test.serverBinding(); + super.bindingTypeClass = KafkaServerBinding.class; + super.pathToBindingJson = "/bindings/kafka/unknown version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/kafka/unknown version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/kafka/unknown version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/kafka/KafkaV0_1_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/kafka/KafkaV0_1_0Test.java new file mode 100644 index 00000000..daf94de7 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/kafka/KafkaV0_1_0Test.java @@ -0,0 +1,88 @@ +package com.asyncapi.bindings.kafka; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.kafka.v0._1_0.channel.KafkaChannelBinding; +import com.asyncapi.bindings.kafka.v0._1_0.message.KafkaMessageBinding; +import com.asyncapi.bindings.kafka.v0._1_0.operation.KafkaOperationBinding; +import com.asyncapi.bindings.kafka.v0._1_0.server.KafkaServerBinding; +import com.asyncapi.schemas.Type; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +import java.util.List; + +@DisplayName("0.1.0") +public class KafkaV0_1_0Test { + + public static KafkaChannelBinding channelBinding () { + return new KafkaChannelBinding(); + } + + public static KafkaMessageBinding messageBinding () { + return KafkaMessageBinding.builder() + .key(AsyncAPISchema.builder() + .type(Type.STRING) + .enumValue(List.of("myKey")) + .build()) + .build(); + } + + public static KafkaOperationBinding operationBinding () { + return KafkaOperationBinding.builder() + .groupId(AsyncAPISchema.builder() + .type(Type.STRING) + .enumValue(List.of("myGroupId")) + .build()) + .clientId(AsyncAPISchema.builder() + .type(Type.STRING) + .enumValue(List.of("myClientId")) + .build()) + .build(); + } + + public static KafkaServerBinding serverBinding () { + return new KafkaServerBinding(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = KafkaChannelBinding.class; + super.pathToBindingJson = "/bindings/kafka/0.1.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/kafka/0.1.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/kafka/0.1.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = KafkaMessageBinding.class; + super.pathToBindingJson = "/bindings/kafka/0.1.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/kafka/0.1.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/kafka/0.1.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = KafkaOperationBinding.class; + super.pathToBindingJson = "/bindings/kafka/0.1.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/kafka/0.1.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/kafka/0.1.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = KafkaServerBinding.class; + super.pathToBindingJson = "/bindings/kafka/0.1.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/kafka/0.1.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/kafka/0.1.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/kafka/KafkaV0_3_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/kafka/KafkaV0_3_0Test.java new file mode 100644 index 00000000..73dd017e --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/kafka/KafkaV0_3_0Test.java @@ -0,0 +1,99 @@ +package com.asyncapi.bindings.kafka; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.kafka.v0._3_0.channel.KafkaChannelBinding; +import com.asyncapi.bindings.kafka.v0._3_0.message.KafkaMessageBinding; +import com.asyncapi.bindings.kafka.v0._3_0.message.KafkaMessageSchemaIdLocation; +import com.asyncapi.bindings.kafka.v0._3_0.operation.KafkaOperationBinding; +import com.asyncapi.bindings.kafka.v0._3_0.server.KafkaServerBinding; +import com.asyncapi.schemas.Type; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +import java.util.List; + +@DisplayName("0.3.0") +public class KafkaV0_3_0Test { + + public static KafkaChannelBinding channelBinding () { + return KafkaChannelBinding.builder() + .topic("my-specific-topic") + .partitions(20) + .replicas(3) + .build(); + } + + public static KafkaMessageBinding messageBinding () { + return KafkaMessageBinding.builder() + .key(AsyncAPISchema.builder() + .type(Type.STRING) + .enumValue(List.of("myKey")) + .build()) + .schemaIdLocation(KafkaMessageSchemaIdLocation.PAYLOAD) + .schemaIdPayloadEncoding("apicurio-new") + .schemaLookupStrategy("TopicIdStrategy") + .build(); + } + + public static KafkaOperationBinding operationBinding () { + return KafkaOperationBinding.builder() + .groupId(AsyncAPISchema.builder() + .type(Type.STRING) + .enumValue(List.of("myGroupId")) + .build()) + .clientId(AsyncAPISchema.builder() + .type(Type.STRING) + .enumValue(List.of("myClientId")) + .build()) + .build(); + } + + public static KafkaServerBinding serverBinding () { + return KafkaServerBinding.builder() + .schemaRegistryUrl("https://my-schema-registry.com") + .schemaRegistryVendor("confluent") + .build(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = KafkaChannelBinding.class; + super.pathToBindingJson = "/bindings/kafka/0.3.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/kafka/0.3.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/kafka/0.3.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = KafkaMessageBinding.class; + super.pathToBindingJson = "/bindings/kafka/0.3.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/kafka/0.3.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/kafka/0.3.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = KafkaOperationBinding.class; + super.pathToBindingJson = "/bindings/kafka/0.3.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/kafka/0.3.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/kafka/0.3.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = KafkaServerBinding.class; + super.pathToBindingJson = "/bindings/kafka/0.3.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/kafka/0.3.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/kafka/0.3.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/kafka/KafkaV0_4_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/kafka/KafkaV0_4_0Test.java new file mode 100644 index 00000000..e2541d21 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/kafka/KafkaV0_4_0Test.java @@ -0,0 +1,112 @@ +package com.asyncapi.bindings.kafka; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.kafka.v0._4_0.channel.KafkaChannelBinding; +import com.asyncapi.bindings.kafka.v0._4_0.channel.KafkaChannelTopicCleanupPolicy; +import com.asyncapi.bindings.kafka.v0._4_0.channel.KafkaChannelTopicConfiguration; +import com.asyncapi.bindings.kafka.v0._4_0.message.KafkaMessageBinding; +import com.asyncapi.bindings.kafka.v0._4_0.message.KafkaMessageSchemaIdLocation; +import com.asyncapi.bindings.kafka.v0._4_0.operation.KafkaOperationBinding; +import com.asyncapi.bindings.kafka.v0._4_0.server.KafkaServerBinding; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.schemas.Type; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +import java.util.List; + +@DisplayName("0.4.0") +public class KafkaV0_4_0Test { + + public static KafkaChannelBinding channelBinding () { + return KafkaChannelBinding.builder() + .topic("my-specific-topic-name") + .partitions(20) + .replicas(3) + .topicConfiguration(KafkaChannelTopicConfiguration.builder() + .cleanupPolicy(List.of( + KafkaChannelTopicCleanupPolicy.DELETE, + KafkaChannelTopicCleanupPolicy.COMPACT + )) + .retentionMs(604_800_000) + .retentionBytes(1_000_000_000) + .deleteRetentionMs(86_400_000) + .maxMessageBytes(1_048_588) + .build() + ) + .build(); + } + + public static KafkaMessageBinding messageBinding () { + return KafkaMessageBinding.builder() + .key(AsyncAPISchema.builder() + .type(Type.STRING) + .enumValue(List.of("myKey")) + .build()) + .schemaIdLocation(KafkaMessageSchemaIdLocation.PAYLOAD) + .schemaIdPayloadEncoding("apicurio-new") + .schemaLookupStrategy("TopicIdStrategy") + .build(); + } + + public static KafkaOperationBinding operationBinding () { + return KafkaOperationBinding.builder() + .groupId(AsyncAPISchema.builder() + .type(Type.STRING) + .enumValue(List.of("myGroupId")) + .build()) + .clientId(AsyncAPISchema.builder() + .type(Type.STRING) + .enumValue(List.of("myClientId")) + .build()) + .build(); + } + + public static KafkaServerBinding serverBinding () { + return KafkaServerBinding.builder() + .schemaRegistryUrl("https://my-schema-registry.com") + .schemaRegistryVendor("confluent") + .build(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = KafkaChannelBinding.class; + super.pathToBindingJson = "/bindings/kafka/0.4.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/kafka/0.4.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/kafka/0.4.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = KafkaMessageBinding.class; + super.pathToBindingJson = "/bindings/kafka/0.4.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/kafka/0.4.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/kafka/0.4.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = KafkaOperationBinding.class; + super.pathToBindingJson = "/bindings/kafka/0.4.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/kafka/0.4.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/kafka/0.4.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = KafkaServerBinding.class; + super.pathToBindingJson = "/bindings/kafka/0.4.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/kafka/0.4.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/kafka/0.4.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/kafka/KafkaV0_5_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/kafka/KafkaV0_5_0Test.java new file mode 100644 index 00000000..e75a81eb --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/kafka/KafkaV0_5_0Test.java @@ -0,0 +1,112 @@ +package com.asyncapi.bindings.kafka; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.kafka.v0._5_0.channel.KafkaChannelBinding; +import com.asyncapi.bindings.kafka.v0._5_0.channel.KafkaChannelTopicCleanupPolicy; +import com.asyncapi.bindings.kafka.v0._5_0.channel.KafkaChannelTopicConfiguration; +import com.asyncapi.bindings.kafka.v0._5_0.message.KafkaMessageBinding; +import com.asyncapi.bindings.kafka.v0._5_0.message.KafkaMessageSchemaIdLocation; +import com.asyncapi.bindings.kafka.v0._5_0.operation.KafkaOperationBinding; +import com.asyncapi.bindings.kafka.v0._5_0.server.KafkaServerBinding; +import com.asyncapi.schemas.Type; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +import java.util.List; + +@DisplayName("0.5.0") +public class KafkaV0_5_0Test { + + public static KafkaChannelBinding channelBinding () { + return KafkaChannelBinding.builder() + .topic("my-specific-topic-name") + .partitions(20) + .replicas(3) + .topicConfiguration(KafkaChannelTopicConfiguration.builder() + .cleanupPolicy(List.of( + KafkaChannelTopicCleanupPolicy.DELETE, + KafkaChannelTopicCleanupPolicy.COMPACT + )) + .retentionMs(604_800_000) + .retentionBytes(1_000_000_000) + .deleteRetentionMs(86_400_000) + .maxMessageBytes(1_048_588) + .build() + ) + .build(); + } + + public static KafkaMessageBinding messageBinding () { + return KafkaMessageBinding.builder() + .key(AsyncAPISchema.builder() + .type(Type.STRING) + .enumValue(List.of("myKey")) + .build()) + .schemaIdLocation(KafkaMessageSchemaIdLocation.PAYLOAD) + .schemaIdPayloadEncoding("apicurio-new") + .schemaLookupStrategy("TopicIdStrategy") + .build(); + } + + public static KafkaOperationBinding operationBinding () { + return KafkaOperationBinding.builder() + .groupId(AsyncAPISchema.builder() + .type(Type.STRING) + .enumValue(List.of("myGroupId")) + .build()) + .clientId(AsyncAPISchema.builder() + .type(Type.STRING) + .enumValue(List.of("myClientId")) + .build()) + .build(); + } + + public static KafkaServerBinding serverBinding () { + return KafkaServerBinding.builder() + .schemaRegistryUrl("https://my-schema-registry.com") + .schemaRegistryVendor("confluent") + .build(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = KafkaChannelBinding.class; + super.pathToBindingJson = "/bindings/kafka/0.5.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/kafka/0.5.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/kafka/0.5.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = KafkaMessageBinding.class; + super.pathToBindingJson = "/bindings/kafka/0.5.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/kafka/0.5.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/kafka/0.5.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = KafkaOperationBinding.class; + super.pathToBindingJson = "/bindings/kafka/0.5.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/kafka/0.5.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/kafka/0.5.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = KafkaServerBinding.class; + super.pathToBindingJson = "/bindings/kafka/0.5.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/kafka/0.5.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/kafka/0.5.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/kafka/KafkaWithoutVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/kafka/KafkaWithoutVersionTest.java new file mode 100644 index 00000000..2337f7ea --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/kafka/KafkaWithoutVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.kafka; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.kafka.v0._5_0.channel.KafkaChannelBinding; +import com.asyncapi.bindings.kafka.v0._5_0.message.KafkaMessageBinding; +import com.asyncapi.bindings.kafka.v0._5_0.operation.KafkaOperationBinding; +import com.asyncapi.bindings.kafka.v0._5_0.server.KafkaServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("without version") +public class KafkaWithoutVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = KafkaV0_5_0Test.channelBinding(); + super.bindingTypeClass = KafkaChannelBinding.class; + super.pathToBindingJson = "/bindings/kafka/without version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/kafka/without version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/kafka/without version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = KafkaV0_5_0Test.messageBinding(); + super.bindingTypeClass = KafkaMessageBinding.class; + super.pathToBindingJson = "/bindings/kafka/without version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/kafka/without version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/kafka/without version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = KafkaV0_5_0Test.operationBinding(); + super.bindingTypeClass = KafkaOperationBinding.class; + super.pathToBindingJson = "/bindings/kafka/without version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/kafka/without version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/kafka/without version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = KafkaV0_5_0Test.serverBinding(); + super.bindingTypeClass = KafkaServerBinding.class; + super.pathToBindingJson = "/bindings/kafka/without version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/kafka/without version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/kafka/without version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mercure/Mercure.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mercure/Mercure.java new file mode 100644 index 00000000..cc934cf4 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mercure/Mercure.java @@ -0,0 +1,11 @@ +package com.asyncapi.bindings.mercure; + +import org.junit.platform.suite.api.SelectPackages; +import org.junit.platform.suite.api.Suite; +import org.junit.platform.suite.api.SuiteDisplayName; + +@Suite +@SuiteDisplayName("Mercure") +@SelectPackages("com.asyncapi.bindings.mercure") +public class Mercure { +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mercure/MercureLatestTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mercure/MercureLatestTest.java new file mode 100644 index 00000000..b4c63f3c --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mercure/MercureLatestTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.mercure; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.mercure.v0._1_0.channel.MercureChannelBinding; +import com.asyncapi.bindings.mercure.v0._1_0.message.MercureMessageBinding; +import com.asyncapi.bindings.mercure.v0._1_0.operation.MercureOperationBinding; +import com.asyncapi.bindings.mercure.v0._1_0.server.MercureServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("latest") +public class MercureLatestTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = MercureV0_1_0Test.channelBinding(); + super.bindingTypeClass = MercureChannelBinding.class; + super.pathToBindingJson = "/bindings/default implementation/latest/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/latest/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/latest/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = MercureV0_1_0Test.messageBinding(); + super.bindingTypeClass = MercureMessageBinding.class; + super.pathToBindingJson = "/bindings/default implementation/latest/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/latest/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/latest/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = MercureV0_1_0Test.operationBinding(); + super.bindingTypeClass = MercureOperationBinding.class; + super.pathToBindingJson = "/bindings/default implementation/latest/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/latest/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/latest/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = MercureV0_1_0Test.serverBinding(); + super.bindingTypeClass = MercureServerBinding.class; + super.pathToBindingJson = "/bindings/default implementation/latest/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/latest/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/latest/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mercure/MercureUnknownVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mercure/MercureUnknownVersionTest.java new file mode 100644 index 00000000..5f4a3938 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mercure/MercureUnknownVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.mercure; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.mercure.v0._1_0.channel.MercureChannelBinding; +import com.asyncapi.bindings.mercure.v0._1_0.message.MercureMessageBinding; +import com.asyncapi.bindings.mercure.v0._1_0.operation.MercureOperationBinding; +import com.asyncapi.bindings.mercure.v0._1_0.server.MercureServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("unknown version") +public class MercureUnknownVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = MercureV0_1_0Test.channelBinding(); + super.bindingTypeClass = MercureChannelBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = MercureV0_1_0Test.messageBinding(); + super.bindingTypeClass = MercureMessageBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = MercureV0_1_0Test.operationBinding(); + super.bindingTypeClass = MercureOperationBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = MercureV0_1_0Test.serverBinding(); + super.bindingTypeClass = MercureServerBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mercure/MercureV0_1_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mercure/MercureV0_1_0Test.java new file mode 100644 index 00000000..e929f329 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mercure/MercureV0_1_0Test.java @@ -0,0 +1,70 @@ +package com.asyncapi.bindings.mercure; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.mercure.v0._1_0.channel.MercureChannelBinding; +import com.asyncapi.bindings.mercure.v0._1_0.message.MercureMessageBinding; +import com.asyncapi.bindings.mercure.v0._1_0.operation.MercureOperationBinding; +import com.asyncapi.bindings.mercure.v0._1_0.server.MercureServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("0.1.0") +public class MercureV0_1_0Test { + + public static MercureChannelBinding channelBinding () { + return new MercureChannelBinding(); + } + + public static MercureMessageBinding messageBinding () { + return new MercureMessageBinding(); + } + + public static MercureOperationBinding operationBinding () { + return new MercureOperationBinding(); + } + + public static MercureServerBinding serverBinding () { + return new MercureServerBinding(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = MercureChannelBinding.class; + super.pathToBindingJson = "/bindings/default implementation/0.1.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/0.1.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/0.1.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = MercureMessageBinding.class; + super.pathToBindingJson = "/bindings/default implementation/0.1.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/0.1.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/0.1.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = MercureOperationBinding.class; + super.pathToBindingJson = "/bindings/default implementation/0.1.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/0.1.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/0.1.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = MercureServerBinding.class; + super.pathToBindingJson = "/bindings/default implementation/0.1.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/0.1.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/0.1.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mercure/MercureWithoutVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mercure/MercureWithoutVersionTest.java new file mode 100644 index 00000000..3b3e2b53 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mercure/MercureWithoutVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.mercure; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.mercure.v0._1_0.channel.MercureChannelBinding; +import com.asyncapi.bindings.mercure.v0._1_0.message.MercureMessageBinding; +import com.asyncapi.bindings.mercure.v0._1_0.operation.MercureOperationBinding; +import com.asyncapi.bindings.mercure.v0._1_0.server.MercureServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("without version") +public class MercureWithoutVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = MercureV0_1_0Test.channelBinding(); + super.bindingTypeClass = MercureChannelBinding.class; + super.pathToBindingJson = "/bindings/default implementation/without version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/without version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/without version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = MercureV0_1_0Test.messageBinding(); + super.bindingTypeClass = MercureMessageBinding.class; + super.pathToBindingJson = "/bindings/default implementation/without version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/without version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/without version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = MercureV0_1_0Test.operationBinding(); + super.bindingTypeClass = MercureOperationBinding.class; + super.pathToBindingJson = "/bindings/default implementation/without version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/without version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/without version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = MercureV0_1_0Test.serverBinding(); + super.bindingTypeClass = MercureServerBinding.class; + super.pathToBindingJson = "/bindings/default implementation/without version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/without version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/without version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt/MQTT.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt/MQTT.java new file mode 100644 index 00000000..21785200 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt/MQTT.java @@ -0,0 +1,11 @@ +package com.asyncapi.bindings.mqtt; + +import org.junit.platform.suite.api.SelectPackages; +import org.junit.platform.suite.api.Suite; +import org.junit.platform.suite.api.SuiteDisplayName; + +@Suite +@SuiteDisplayName("MQTT") +@SelectPackages("com.asyncapi.bindings.mqtt") +public class MQTT { +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt/MQTTLatestTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt/MQTTLatestTest.java new file mode 100644 index 00000000..9509b193 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt/MQTTLatestTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.mqtt; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.mqtt.v0._2_0.channel.MQTTChannelBinding; +import com.asyncapi.bindings.mqtt.v0._2_0.message.MQTTMessageBinding; +import com.asyncapi.bindings.mqtt.v0._2_0.operation.MQTTOperationBinding; +import com.asyncapi.bindings.mqtt.v0._2_0.server.MQTTServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("latest") +public class MQTTLatestTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = MQTTV0_2_0Test.channelBinding(); + super.bindingTypeClass = MQTTChannelBinding.class; + super.pathToBindingJson = "/bindings/mqtt/latest/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt/latest/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt/latest/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = MQTTV0_2_0Test.messageBinding(); + super.bindingTypeClass = MQTTMessageBinding.class; + super.pathToBindingJson = "/bindings/mqtt/latest/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt/latest/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt/latest/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = MQTTV0_2_0Test.operationBinding(); + super.bindingTypeClass = MQTTOperationBinding.class; + super.pathToBindingJson = "/bindings/mqtt/latest/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt/latest/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt/latest/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = MQTTV0_2_0Test.serverBinding(); + super.bindingTypeClass = MQTTServerBinding.class; + super.pathToBindingJson = "/bindings/mqtt/latest/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt/latest/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt/latest/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt/MQTTUnknownVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt/MQTTUnknownVersionTest.java new file mode 100644 index 00000000..568a8c65 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt/MQTTUnknownVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.mqtt; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.mqtt.v0._2_0.channel.MQTTChannelBinding; +import com.asyncapi.bindings.mqtt.v0._2_0.message.MQTTMessageBinding; +import com.asyncapi.bindings.mqtt.v0._2_0.operation.MQTTOperationBinding; +import com.asyncapi.bindings.mqtt.v0._2_0.server.MQTTServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("unknown version") +public class MQTTUnknownVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = MQTTV0_2_0Test.channelBinding(); + super.bindingTypeClass = MQTTChannelBinding.class; + super.pathToBindingJson = "/bindings/mqtt/unknown version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt/unknown version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt/unknown version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = MQTTV0_2_0Test.messageBinding(); + super.bindingTypeClass = MQTTMessageBinding.class; + super.pathToBindingJson = "/bindings/mqtt/unknown version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt/unknown version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt/unknown version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = MQTTV0_2_0Test.operationBinding(); + super.bindingTypeClass = MQTTOperationBinding.class; + super.pathToBindingJson = "/bindings/mqtt/unknown version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt/unknown version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt/unknown version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = MQTTV0_2_0Test.serverBinding(); + super.bindingTypeClass = MQTTServerBinding.class; + super.pathToBindingJson = "/bindings/mqtt/unknown version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt/unknown version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt/unknown version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt/MQTTV0_1_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt/MQTTV0_1_0Test.java new file mode 100644 index 00000000..9baffff1 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt/MQTTV0_1_0Test.java @@ -0,0 +1,84 @@ +package com.asyncapi.bindings.mqtt; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.mqtt.v0._1_0.channel.MQTTChannelBinding; +import com.asyncapi.bindings.mqtt.v0._1_0.message.MQTTMessageBinding; +import com.asyncapi.bindings.mqtt.v0._1_0.operation.MQTTOperationBinding; +import com.asyncapi.bindings.mqtt.v0._1_0.server.MQTTServerBinding; +import com.asyncapi.bindings.mqtt.v0._1_0.server.MQTTServerLastWillConfiguration; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("0.1.0") +public class MQTTV0_1_0Test { + + public static MQTTChannelBinding channelBinding () { + return new MQTTChannelBinding(); + } + + public static MQTTMessageBinding messageBinding () { + return new MQTTMessageBinding(); + } + + public static MQTTOperationBinding operationBinding () { + return MQTTOperationBinding.builder() + .qos(2) + .retain(true) + .build(); + } + + public static MQTTServerBinding serverBinding () { + return MQTTServerBinding.builder() + .clientId("guest") + .cleanSession(true) + .lastWill(new MQTTServerLastWillConfiguration( + "/last-wills", + 2, + "Guest gone offline.", + false + )) + .keepAlive(60) + .build(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = MQTTChannelBinding.class; + super.pathToBindingJson = "/bindings/mqtt/0.1.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt/0.1.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt/0.1.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = MQTTMessageBinding.class; + super.pathToBindingJson = "/bindings/mqtt/0.1.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt/0.1.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt/0.1.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = MQTTOperationBinding.class; + super.pathToBindingJson = "/bindings/mqtt/0.1.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt/0.1.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt/0.1.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = MQTTServerBinding.class; + super.pathToBindingJson = "/bindings/mqtt/0.1.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt/0.1.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt/0.1.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt/MQTTV0_2_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt/MQTTV0_2_0Test.java new file mode 100644 index 00000000..ac59a2cc --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt/MQTTV0_2_0Test.java @@ -0,0 +1,96 @@ +package com.asyncapi.bindings.mqtt; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.mqtt.v0._2_0.channel.MQTTChannelBinding; +import com.asyncapi.bindings.mqtt.v0._2_0.message.MQTTMessageBinding; +import com.asyncapi.bindings.mqtt.v0._2_0.operation.MQTTOperationBinding; +import com.asyncapi.bindings.mqtt.v0._2_0.server.MQTTServerBinding; +import com.asyncapi.bindings.mqtt.v0._2_0.server.MQTTServerLastWillConfiguration; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("0.2.0") +public class MQTTV0_2_0Test { + + public static MQTTChannelBinding channelBinding () { + return new MQTTChannelBinding(); + } + + public static MQTTMessageBinding messageBinding () { + return MQTTMessageBinding.builder() + .contentType("application/json") + .correlationData(AsyncAPISchema.builder() + .type("string") + .format("uuid") + .build() + ) + .responseTopic("application/responses") + .build(); + } + + public static MQTTOperationBinding operationBinding () { + return MQTTOperationBinding.builder() + .qos(2) + .retain(true) + .messageExpiryInterval(60) + .build(); + } + + public static MQTTServerBinding serverBinding () { + return MQTTServerBinding.builder() + .clientId("guest") + .cleanSession(true) + .lastWill(new MQTTServerLastWillConfiguration( + "/last-wills", + 2, + "Guest gone offline.", + false + )) + .keepAlive(60) + .sessionExpiryInterval(120) + .maximumPacketSize(1024) + .build(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = MQTTChannelBinding.class; + super.pathToBindingJson = "/bindings/mqtt/0.2.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt/0.2.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt/0.2.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = MQTTMessageBinding.class; + super.pathToBindingJson = "/bindings/mqtt/0.2.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt/0.2.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt/0.2.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = MQTTOperationBinding.class; + super.pathToBindingJson = "/bindings/mqtt/0.2.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt/0.2.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt/0.2.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = MQTTServerBinding.class; + super.pathToBindingJson = "/bindings/mqtt/0.2.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt/0.2.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt/0.2.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt/MQTTWithoutVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt/MQTTWithoutVersionTest.java new file mode 100644 index 00000000..5decdc8f --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt/MQTTWithoutVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.mqtt; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.mqtt.v0._2_0.channel.MQTTChannelBinding; +import com.asyncapi.bindings.mqtt.v0._2_0.message.MQTTMessageBinding; +import com.asyncapi.bindings.mqtt.v0._2_0.operation.MQTTOperationBinding; +import com.asyncapi.bindings.mqtt.v0._2_0.server.MQTTServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("without version") +public class MQTTWithoutVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = MQTTV0_2_0Test.channelBinding(); + super.bindingTypeClass = MQTTChannelBinding.class; + super.pathToBindingJson = "/bindings/mqtt/without version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt/without version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt/without version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = MQTTV0_2_0Test.messageBinding(); + super.bindingTypeClass = MQTTMessageBinding.class; + super.pathToBindingJson = "/bindings/mqtt/without version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt/without version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt/without version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = MQTTV0_2_0Test.operationBinding(); + super.bindingTypeClass = MQTTOperationBinding.class; + super.pathToBindingJson = "/bindings/mqtt/without version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt/without version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt/without version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = MQTTV0_2_0Test.serverBinding(); + super.bindingTypeClass = MQTTServerBinding.class; + super.pathToBindingJson = "/bindings/mqtt/without version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt/without version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt/without version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt5/MQTT5.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt5/MQTT5.java new file mode 100644 index 00000000..d8fb0ab7 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt5/MQTT5.java @@ -0,0 +1,11 @@ +package com.asyncapi.bindings.mqtt5; + +import org.junit.platform.suite.api.SelectPackages; +import org.junit.platform.suite.api.Suite; +import org.junit.platform.suite.api.SuiteDisplayName; + +@Suite +@SuiteDisplayName("MQTT5") +@SelectPackages("com.asyncapi.bindings.mqtt5") +public class MQTT5 { +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt5/MQTT5LatestTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt5/MQTT5LatestTest.java new file mode 100644 index 00000000..9efb892e --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt5/MQTT5LatestTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.mqtt5; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.mqtt5.v0._2_0.channel.MQTT5ChannelBinding; +import com.asyncapi.bindings.mqtt5.v0._2_0.message.MQTT5MessageBinding; +import com.asyncapi.bindings.mqtt5.v0._2_0.operation.MQTT5OperationBinding; +import com.asyncapi.bindings.mqtt5.v0._2_0.server.MQTT5ServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("latest") +public class MQTT5LatestTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = MQTT5V0_2_0Test.channelBinding(); + super.bindingTypeClass = MQTT5ChannelBinding.class; + super.pathToBindingJson = "/bindings/mqtt5/latest/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt5/latest/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt5/latest/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = MQTT5V0_2_0Test.messageBinding(); + super.bindingTypeClass = MQTT5MessageBinding.class; + super.pathToBindingJson = "/bindings/mqtt5/latest/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt5/latest/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt5/latest/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = MQTT5V0_2_0Test.operationBinding(); + super.bindingTypeClass = MQTT5OperationBinding.class; + super.pathToBindingJson = "/bindings/mqtt5/latest/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt5/latest/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt5/latest/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = MQTT5V0_2_0Test.serverBinding(); + super.bindingTypeClass = MQTT5ServerBinding.class; + super.pathToBindingJson = "/bindings/mqtt5/latest/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt5/latest/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt5/latest/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt5/MQTT5UnknownVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt5/MQTT5UnknownVersionTest.java new file mode 100644 index 00000000..e9b1c1d9 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt5/MQTT5UnknownVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.mqtt5; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.mqtt5.v0._2_0.channel.MQTT5ChannelBinding; +import com.asyncapi.bindings.mqtt5.v0._2_0.message.MQTT5MessageBinding; +import com.asyncapi.bindings.mqtt5.v0._2_0.operation.MQTT5OperationBinding; +import com.asyncapi.bindings.mqtt5.v0._2_0.server.MQTT5ServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("unknown version") +public class MQTT5UnknownVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = MQTT5V0_2_0Test.channelBinding(); + super.bindingTypeClass = MQTT5ChannelBinding.class; + super.pathToBindingJson = "/bindings/mqtt5/unknown version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt5/unknown version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt5/unknown version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = MQTT5V0_2_0Test.messageBinding(); + super.bindingTypeClass = MQTT5MessageBinding.class; + super.pathToBindingJson = "/bindings/mqtt5/unknown version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt5/unknown version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt5/unknown version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = MQTT5V0_2_0Test.operationBinding(); + super.bindingTypeClass = MQTT5OperationBinding.class; + super.pathToBindingJson = "/bindings/mqtt5/unknown version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt5/unknown version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt5/unknown version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = MQTT5V0_2_0Test.serverBinding(); + super.bindingTypeClass = MQTT5ServerBinding.class; + super.pathToBindingJson = "/bindings/mqtt5/unknown version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt5/unknown version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt5/unknown version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt5/MQTT5V0_1_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt5/MQTT5V0_1_0Test.java new file mode 100644 index 00000000..d1f2fa28 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt5/MQTT5V0_1_0Test.java @@ -0,0 +1,70 @@ +package com.asyncapi.bindings.mqtt5; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.mqtt5.v0._1_0.channel.MQTT5ChannelBinding; +import com.asyncapi.bindings.mqtt5.v0._1_0.message.MQTT5MessageBinding; +import com.asyncapi.bindings.mqtt5.v0._1_0.operation.MQTT5OperationBinding; +import com.asyncapi.bindings.mqtt5.v0._1_0.server.MQTT5ServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("0.1.0") +public class MQTT5V0_1_0Test { + + public static MQTT5ChannelBinding channelBinding () { + return new MQTT5ChannelBinding(); + } + + public static MQTT5MessageBinding messageBinding () { + return new MQTT5MessageBinding(); + } + + public static MQTT5OperationBinding operationBinding () { + return new MQTT5OperationBinding(); + } + + public static MQTT5ServerBinding serverBinding () { + return new MQTT5ServerBinding(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = MQTT5ChannelBinding.class; + super.pathToBindingJson = "/bindings/default implementation/0.1.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/0.1.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/0.1.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = MQTT5MessageBinding.class; + super.pathToBindingJson = "/bindings/default implementation/0.1.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/0.1.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/0.1.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = MQTT5OperationBinding.class; + super.pathToBindingJson = "/bindings/default implementation/0.1.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/0.1.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/0.1.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = MQTT5ServerBinding.class; + super.pathToBindingJson = "/bindings/default implementation/0.1.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/0.1.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/0.1.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt5/MQTT5V0_2_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt5/MQTT5V0_2_0Test.java new file mode 100644 index 00000000..ecbf2216 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt5/MQTT5V0_2_0Test.java @@ -0,0 +1,72 @@ +package com.asyncapi.bindings.mqtt5; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.mqtt5.v0._2_0.channel.MQTT5ChannelBinding; +import com.asyncapi.bindings.mqtt5.v0._2_0.message.MQTT5MessageBinding; +import com.asyncapi.bindings.mqtt5.v0._2_0.operation.MQTT5OperationBinding; +import com.asyncapi.bindings.mqtt5.v0._2_0.server.MQTT5ServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("0.2.0") +public class MQTT5V0_2_0Test { + + public static MQTT5ChannelBinding channelBinding () { + return new MQTT5ChannelBinding(); + } + + public static MQTT5MessageBinding messageBinding () { + return new MQTT5MessageBinding(); + } + + public static MQTT5OperationBinding operationBinding () { + return new MQTT5OperationBinding(); + } + + public static MQTT5ServerBinding serverBinding () { + return MQTT5ServerBinding.builder() + .sessionExpiryInterval(60) + .build(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = MQTT5ChannelBinding.class; + super.pathToBindingJson = "/bindings/mqtt5/0.2.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt5/0.2.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt5/0.2.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = MQTT5MessageBinding.class; + super.pathToBindingJson = "/bindings/mqtt5/0.2.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt5/0.2.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt5/0.2.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = MQTT5OperationBinding.class; + super.pathToBindingJson = "/bindings/mqtt5/0.2.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt5/0.2.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt5/0.2.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = MQTT5ServerBinding.class; + super.pathToBindingJson = "/bindings/mqtt5/0.2.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt5/0.2.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt5/0.2.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt5/MQTT5WithoutVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt5/MQTT5WithoutVersionTest.java new file mode 100644 index 00000000..e42c7e77 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/mqtt5/MQTT5WithoutVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.mqtt5; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.mqtt5.v0._2_0.channel.MQTT5ChannelBinding; +import com.asyncapi.bindings.mqtt5.v0._2_0.message.MQTT5MessageBinding; +import com.asyncapi.bindings.mqtt5.v0._2_0.operation.MQTT5OperationBinding; +import com.asyncapi.bindings.mqtt5.v0._2_0.server.MQTT5ServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("without version") +public class MQTT5WithoutVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = MQTT5V0_2_0Test.channelBinding(); + super.bindingTypeClass = MQTT5ChannelBinding.class; + super.pathToBindingJson = "/bindings/mqtt5/without version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt5/without version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt5/without version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = MQTT5V0_2_0Test.messageBinding(); + super.bindingTypeClass = MQTT5MessageBinding.class; + super.pathToBindingJson = "/bindings/mqtt5/without version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt5/without version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt5/without version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = MQTT5V0_2_0Test.operationBinding(); + super.bindingTypeClass = MQTT5OperationBinding.class; + super.pathToBindingJson = "/bindings/mqtt5/without version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt5/without version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt5/without version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = MQTT5V0_2_0Test.serverBinding(); + super.bindingTypeClass = MQTT5ServerBinding.class; + super.pathToBindingJson = "/bindings/mqtt5/without version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/mqtt5/without version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/mqtt5/without version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/nats/NATS.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/nats/NATS.java new file mode 100644 index 00000000..f7ce0eb3 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/nats/NATS.java @@ -0,0 +1,11 @@ +package com.asyncapi.bindings.nats; + +import org.junit.platform.suite.api.SelectPackages; +import org.junit.platform.suite.api.Suite; +import org.junit.platform.suite.api.SuiteDisplayName; + +@Suite +@SuiteDisplayName("NATS") +@SelectPackages("com.asyncapi.bindings.nats") +public class NATS { +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/nats/NATSLatestTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/nats/NATSLatestTest.java new file mode 100644 index 00000000..2ad71451 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/nats/NATSLatestTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.nats; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.nats.v0._1_0.channel.NATSChannelBinding; +import com.asyncapi.bindings.nats.v0._1_0.message.NATSMessageBinding; +import com.asyncapi.bindings.nats.v0._1_0.operation.NATSOperationBinding; +import com.asyncapi.bindings.nats.v0._1_0.server.NATSServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("latest") +public class NATSLatestTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = NATSV0_1_0Test.channelBinding(); + super.bindingTypeClass = NATSChannelBinding.class; + super.pathToBindingJson = "/bindings/nats/latest/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/nats/latest/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/nats/latest/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = NATSV0_1_0Test.messageBinding(); + super.bindingTypeClass = NATSMessageBinding.class; + super.pathToBindingJson = "/bindings/nats/latest/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/nats/latest/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/nats/latest/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = NATSV0_1_0Test.operationBinding(); + super.bindingTypeClass = NATSOperationBinding.class; + super.pathToBindingJson = "/bindings/nats/latest/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/nats/latest/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/nats/latest/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = NATSV0_1_0Test.serverBinding(); + super.bindingTypeClass = NATSServerBinding.class; + super.pathToBindingJson = "/bindings/nats/latest/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/nats/latest/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/nats/latest/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/nats/NATSUnknownVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/nats/NATSUnknownVersionTest.java new file mode 100644 index 00000000..a4809d1e --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/nats/NATSUnknownVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.nats; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.nats.v0._1_0.channel.NATSChannelBinding; +import com.asyncapi.bindings.nats.v0._1_0.message.NATSMessageBinding; +import com.asyncapi.bindings.nats.v0._1_0.operation.NATSOperationBinding; +import com.asyncapi.bindings.nats.v0._1_0.server.NATSServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("unknown version") +public class NATSUnknownVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = NATSV0_1_0Test.channelBinding(); + super.bindingTypeClass = NATSChannelBinding.class; + super.pathToBindingJson = "/bindings/nats/unknown version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/nats/unknown version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/nats/unknown version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = NATSV0_1_0Test.messageBinding(); + super.bindingTypeClass = NATSMessageBinding.class; + super.pathToBindingJson = "/bindings/nats/unknown version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/nats/unknown version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/nats/unknown version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = NATSV0_1_0Test.operationBinding(); + super.bindingTypeClass = NATSOperationBinding.class; + super.pathToBindingJson = "/bindings/nats/unknown version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/nats/unknown version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/nats/unknown version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = NATSV0_1_0Test.serverBinding(); + super.bindingTypeClass = NATSServerBinding.class; + super.pathToBindingJson = "/bindings/nats/unknown version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/nats/unknown version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/nats/unknown version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/nats/NATSV0_1_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/nats/NATSV0_1_0Test.java new file mode 100644 index 00000000..aa8b7287 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/nats/NATSV0_1_0Test.java @@ -0,0 +1,72 @@ +package com.asyncapi.bindings.nats; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.nats.v0._1_0.channel.NATSChannelBinding; +import com.asyncapi.bindings.nats.v0._1_0.message.NATSMessageBinding; +import com.asyncapi.bindings.nats.v0._1_0.operation.NATSOperationBinding; +import com.asyncapi.bindings.nats.v0._1_0.server.NATSServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("0.1.0") +public class NATSV0_1_0Test { + + public static NATSChannelBinding channelBinding () { + return new NATSChannelBinding(); + } + + public static NATSMessageBinding messageBinding () { + return new NATSMessageBinding(); + } + + public static NATSOperationBinding operationBinding () { + return NATSOperationBinding.builder() + .queue("messages") + .build(); + } + + public static NATSServerBinding serverBinding () { + return new NATSServerBinding(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = NATSChannelBinding.class; + super.pathToBindingJson = "/bindings/nats/0.1.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/nats/0.1.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/nats/0.1.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = NATSMessageBinding.class; + super.pathToBindingJson = "/bindings/nats/0.1.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/nats/0.1.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/nats/0.1.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = NATSOperationBinding.class; + super.pathToBindingJson = "/bindings/nats/0.1.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/nats/0.1.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/nats/0.1.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = NATSServerBinding.class; + super.pathToBindingJson = "/bindings/nats/0.1.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/nats/0.1.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/nats/0.1.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/nats/NATSWithoutVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/nats/NATSWithoutVersionTest.java new file mode 100644 index 00000000..011fa1ca --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/nats/NATSWithoutVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.nats; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.nats.v0._1_0.channel.NATSChannelBinding; +import com.asyncapi.bindings.nats.v0._1_0.message.NATSMessageBinding; +import com.asyncapi.bindings.nats.v0._1_0.operation.NATSOperationBinding; +import com.asyncapi.bindings.nats.v0._1_0.server.NATSServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("without version") +public class NATSWithoutVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = NATSV0_1_0Test.channelBinding(); + super.bindingTypeClass = NATSChannelBinding.class; + super.pathToBindingJson = "/bindings/nats/without version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/nats/without version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/nats/without version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = NATSV0_1_0Test.messageBinding(); + super.bindingTypeClass = NATSMessageBinding.class; + super.pathToBindingJson = "/bindings/nats/without version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/nats/without version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/nats/without version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = NATSV0_1_0Test.operationBinding(); + super.bindingTypeClass = NATSOperationBinding.class; + super.pathToBindingJson = "/bindings/nats/without version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/nats/without version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/nats/without version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = NATSV0_1_0Test.serverBinding(); + super.bindingTypeClass = NATSServerBinding.class; + super.pathToBindingJson = "/bindings/nats/without version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/nats/without version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/nats/without version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/pulsar/Pulsar.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/pulsar/Pulsar.java new file mode 100644 index 00000000..75b2348e --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/pulsar/Pulsar.java @@ -0,0 +1,11 @@ +package com.asyncapi.bindings.pulsar; + +import org.junit.platform.suite.api.SelectPackages; +import org.junit.platform.suite.api.Suite; +import org.junit.platform.suite.api.SuiteDisplayName; + +@Suite +@SuiteDisplayName("Pulsar") +@SelectPackages("com.asyncapi.bindings.pulsar") +public class Pulsar { +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/pulsar/PulsarLatestTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/pulsar/PulsarLatestTest.java new file mode 100644 index 00000000..f5202ac7 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/pulsar/PulsarLatestTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.pulsar; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.pulsar.v0._1_0.channel.PulsarChannelBinding; +import com.asyncapi.bindings.pulsar.v0._1_0.message.PulsarMessageBinding; +import com.asyncapi.bindings.pulsar.v0._1_0.operation.PulsarOperationBinding; +import com.asyncapi.bindings.pulsar.v0._1_0.server.PulsarServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("latest") +public class PulsarLatestTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = PulsarV0_1_0Test.channelBinding(); + super.bindingTypeClass = PulsarChannelBinding.class; + super.pathToBindingJson = "/bindings/pulsar/latest/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/pulsar/latest/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/pulsar/latest/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = PulsarV0_1_0Test.messageBinding(); + super.bindingTypeClass = PulsarMessageBinding.class; + super.pathToBindingJson = "/bindings/pulsar/latest/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/pulsar/latest/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/pulsar/latest/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = PulsarV0_1_0Test.operationBinding(); + super.bindingTypeClass = PulsarOperationBinding.class; + super.pathToBindingJson = "/bindings/pulsar/latest/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/pulsar/latest/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/pulsar/latest/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = PulsarV0_1_0Test.serverBinding(); + super.bindingTypeClass = PulsarServerBinding.class; + super.pathToBindingJson = "/bindings/pulsar/latest/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/pulsar/latest/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/pulsar/latest/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/pulsar/PulsarUnknownVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/pulsar/PulsarUnknownVersionTest.java new file mode 100644 index 00000000..88d98fbb --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/pulsar/PulsarUnknownVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.pulsar; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.pulsar.v0._1_0.channel.PulsarChannelBinding; +import com.asyncapi.bindings.pulsar.v0._1_0.message.PulsarMessageBinding; +import com.asyncapi.bindings.pulsar.v0._1_0.operation.PulsarOperationBinding; +import com.asyncapi.bindings.pulsar.v0._1_0.server.PulsarServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("unknown version") +public class PulsarUnknownVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = PulsarV0_1_0Test.channelBinding(); + super.bindingTypeClass = PulsarChannelBinding.class; + super.pathToBindingJson = "/bindings/pulsar/unknown version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/pulsar/unknown version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/pulsar/unknown version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = PulsarV0_1_0Test.messageBinding(); + super.bindingTypeClass = PulsarMessageBinding.class; + super.pathToBindingJson = "/bindings/pulsar/unknown version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/pulsar/unknown version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/pulsar/unknown version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = PulsarV0_1_0Test.operationBinding(); + super.bindingTypeClass = PulsarOperationBinding.class; + super.pathToBindingJson = "/bindings/pulsar/unknown version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/pulsar/unknown version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/pulsar/unknown version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = PulsarV0_1_0Test.serverBinding(); + super.bindingTypeClass = PulsarServerBinding.class; + super.pathToBindingJson = "/bindings/pulsar/unknown version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/pulsar/unknown version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/pulsar/unknown version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/pulsar/PulsarV0_1_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/pulsar/PulsarV0_1_0Test.java new file mode 100644 index 00000000..c793946c --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/pulsar/PulsarV0_1_0Test.java @@ -0,0 +1,88 @@ +package com.asyncapi.bindings.pulsar; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.pulsar.v0._1_0.channel.PulsarChannelBinding; +import com.asyncapi.bindings.pulsar.v0._1_0.channel.PulsarChannelPersistence; +import com.asyncapi.bindings.pulsar.v0._1_0.channel.PulsarChannelRetentionDefinition; +import com.asyncapi.bindings.pulsar.v0._1_0.message.PulsarMessageBinding; +import com.asyncapi.bindings.pulsar.v0._1_0.operation.PulsarOperationBinding; +import com.asyncapi.bindings.pulsar.v0._1_0.server.PulsarServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +import java.util.List; + +@DisplayName("0.1.0") +public class PulsarV0_1_0Test { + + public static PulsarChannelBinding channelBinding () { + return PulsarChannelBinding.builder() + .namespace("staging") + .persistence(PulsarChannelPersistence.PERSISTENT) + .compaction(1000) + .geoReplication(List.of("us-east1", "us-west1")) + .retention(PulsarChannelRetentionDefinition.builder() + .time(7) + .size(1000) + .build() + ) + .ttl(360) + .deduplication(false) + .build(); + } + + public static PulsarMessageBinding messageBinding () { + return new PulsarMessageBinding(); + } + + public static PulsarOperationBinding operationBinding () { + return new PulsarOperationBinding(); + } + + public static PulsarServerBinding serverBinding () { + return PulsarServerBinding.builder() + .tenant("contoso") + .build(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = PulsarChannelBinding.class; + super.pathToBindingJson = "/bindings/pulsar/0.1.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/pulsar/0.1.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/pulsar/0.1.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = PulsarMessageBinding.class; + super.pathToBindingJson = "/bindings/pulsar/0.1.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/pulsar/0.1.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/pulsar/0.1.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = PulsarOperationBinding.class; + super.pathToBindingJson = "/bindings/pulsar/0.1.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/pulsar/0.1.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/pulsar/0.1.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = PulsarServerBinding.class; + super.pathToBindingJson = "/bindings/pulsar/0.1.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/pulsar/0.1.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/pulsar/0.1.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/pulsar/PulsarWithoutVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/pulsar/PulsarWithoutVersionTest.java new file mode 100644 index 00000000..70bd410e --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/pulsar/PulsarWithoutVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.pulsar; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.pulsar.v0._1_0.channel.PulsarChannelBinding; +import com.asyncapi.bindings.pulsar.v0._1_0.message.PulsarMessageBinding; +import com.asyncapi.bindings.pulsar.v0._1_0.operation.PulsarOperationBinding; +import com.asyncapi.bindings.pulsar.v0._1_0.server.PulsarServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("without version") +public class PulsarWithoutVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = PulsarV0_1_0Test.channelBinding(); + super.bindingTypeClass = PulsarChannelBinding.class; + super.pathToBindingJson = "/bindings/pulsar/without version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/pulsar/without version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/pulsar/without version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = PulsarV0_1_0Test.messageBinding(); + super.bindingTypeClass = PulsarMessageBinding.class; + super.pathToBindingJson = "/bindings/pulsar/without version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/pulsar/without version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/pulsar/without version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = PulsarV0_1_0Test.operationBinding(); + super.bindingTypeClass = PulsarOperationBinding.class; + super.pathToBindingJson = "/bindings/pulsar/without version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/pulsar/without version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/pulsar/without version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = PulsarV0_1_0Test.serverBinding(); + super.bindingTypeClass = PulsarServerBinding.class; + super.pathToBindingJson = "/bindings/pulsar/without version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/pulsar/without version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/pulsar/without version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/redis/Redis.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/redis/Redis.java new file mode 100644 index 00000000..404010d0 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/redis/Redis.java @@ -0,0 +1,10 @@ +package com.asyncapi.bindings.redis; + +import org.junit.platform.suite.api.SelectPackages; +import org.junit.platform.suite.api.Suite; +import org.junit.platform.suite.api.SuiteDisplayName; + +@Suite +@SuiteDisplayName("Redis") +@SelectPackages("com.asyncapi.bindings.redis") +public class Redis {} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/redis/RedisLatestTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/redis/RedisLatestTest.java new file mode 100644 index 00000000..bc833cac --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/redis/RedisLatestTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.redis; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.redis.v0._1_0.channel.RedisChannelBinding; +import com.asyncapi.bindings.redis.v0._1_0.message.RedisMessageBinding; +import com.asyncapi.bindings.redis.v0._1_0.operation.RedisOperationBinding; +import com.asyncapi.bindings.redis.v0._1_0.server.RedisServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("latest") +public class RedisLatestTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = new RedisChannelBinding(); + super.bindingTypeClass = RedisChannelBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = new RedisMessageBinding(); + super.bindingTypeClass = RedisMessageBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = new RedisOperationBinding(); + super.bindingTypeClass = RedisOperationBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = new RedisServerBinding(); + super.bindingTypeClass = RedisServerBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/redis/RedisUnknownVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/redis/RedisUnknownVersionTest.java new file mode 100644 index 00000000..3a674da8 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/redis/RedisUnknownVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.redis; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.redis.v0._1_0.channel.RedisChannelBinding; +import com.asyncapi.bindings.redis.v0._1_0.message.RedisMessageBinding; +import com.asyncapi.bindings.redis.v0._1_0.operation.RedisOperationBinding; +import com.asyncapi.bindings.redis.v0._1_0.server.RedisServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("unknown version") +public class RedisUnknownVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = new RedisChannelBinding(); + super.bindingTypeClass = RedisChannelBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = new RedisMessageBinding(); + super.bindingTypeClass = RedisMessageBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = new RedisOperationBinding(); + super.bindingTypeClass = RedisOperationBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = new RedisServerBinding(); + super.bindingTypeClass = RedisServerBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/redis/RedisV0_1_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/redis/RedisV0_1_0Test.java new file mode 100644 index 00000000..243e821b --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/redis/RedisV0_1_0Test.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.redis; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.redis.v0._1_0.channel.RedisChannelBinding; +import com.asyncapi.bindings.redis.v0._1_0.message.RedisMessageBinding; +import com.asyncapi.bindings.redis.v0._1_0.operation.RedisOperationBinding; +import com.asyncapi.bindings.redis.v0._1_0.server.RedisServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("0.1.0") +public class RedisV0_1_0Test { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = new RedisChannelBinding(); + super.bindingTypeClass = RedisChannelBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = new RedisMessageBinding(); + super.bindingTypeClass = RedisMessageBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = new RedisOperationBinding(); + super.bindingTypeClass = RedisOperationBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = new RedisServerBinding(); + super.bindingTypeClass = RedisServerBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/redis/RedisWithoutVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/redis/RedisWithoutVersionTest.java new file mode 100644 index 00000000..205c399f --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/redis/RedisWithoutVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.redis; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.redis.v0._1_0.channel.RedisChannelBinding; +import com.asyncapi.bindings.redis.v0._1_0.message.RedisMessageBinding; +import com.asyncapi.bindings.redis.v0._1_0.operation.RedisOperationBinding; +import com.asyncapi.bindings.redis.v0._1_0.server.RedisServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("without version") +public class RedisWithoutVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = new RedisChannelBinding(); + super.bindingTypeClass = RedisChannelBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = new RedisMessageBinding(); + super.bindingTypeClass = RedisMessageBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = new RedisOperationBinding(); + super.bindingTypeClass = RedisOperationBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = new RedisServerBinding(); + super.bindingTypeClass = RedisServerBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sns/SNS.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sns/SNS.java new file mode 100644 index 00000000..d85df17a --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sns/SNS.java @@ -0,0 +1,11 @@ +package com.asyncapi.bindings.sns; + +import org.junit.platform.suite.api.SelectPackages; +import org.junit.platform.suite.api.Suite; +import org.junit.platform.suite.api.SuiteDisplayName; + +@Suite +@SuiteDisplayName("SNS") +@SelectPackages("com.asyncapi.bindings.sns") +public class SNS { +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sns/SNSLatestTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sns/SNSLatestTest.java new file mode 100644 index 00000000..ccabb501 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sns/SNSLatestTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.sns; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.sns.v0._1_0.channel.SNSChannelBinding; +import com.asyncapi.bindings.sns.v0._1_0.message.SNSMessageBinding; +import com.asyncapi.bindings.sns.v0._1_0.operation.SNSOperationBinding; +import com.asyncapi.bindings.sns.v0._1_0.server.SNSServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("latest") +public class SNSLatestTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = SNSV0_1_0Test.channelBinding(); + super.bindingTypeClass = SNSChannelBinding.class; + super.pathToBindingJson = "/bindings/sns/latest/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sns/latest/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sns/latest/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = SNSV0_1_0Test.messageBinding(); + super.bindingTypeClass = SNSMessageBinding.class; + super.pathToBindingJson = "/bindings/sns/latest/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sns/latest/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sns/latest/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = SNSV0_1_0Test.operationBinding(); + super.bindingTypeClass = SNSOperationBinding.class; + super.pathToBindingJson = "/bindings/sns/latest/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sns/latest/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sns/latest/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = SNSV0_1_0Test.serverBinding(); + super.bindingTypeClass = SNSServerBinding.class; + super.pathToBindingJson = "/bindings/sns/latest/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sns/latest/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sns/latest/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sns/SNSUnknownVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sns/SNSUnknownVersionTest.java new file mode 100644 index 00000000..b75f0776 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sns/SNSUnknownVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.sns; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.sns.v0._1_0.channel.SNSChannelBinding; +import com.asyncapi.bindings.sns.v0._1_0.message.SNSMessageBinding; +import com.asyncapi.bindings.sns.v0._1_0.operation.SNSOperationBinding; +import com.asyncapi.bindings.sns.v0._1_0.server.SNSServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("unknown version") +public class SNSUnknownVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = SNSV0_1_0Test.channelBinding(); + super.bindingTypeClass = SNSChannelBinding.class; + super.pathToBindingJson = "/bindings/sns/unknown version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sns/unknown version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sns/unknown version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = SNSV0_1_0Test.messageBinding(); + super.bindingTypeClass = SNSMessageBinding.class; + super.pathToBindingJson = "/bindings/sns/unknown version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sns/unknown version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sns/unknown version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = SNSV0_1_0Test.operationBinding(); + super.bindingTypeClass = SNSOperationBinding.class; + super.pathToBindingJson = "/bindings/sns/unknown version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sns/unknown version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sns/unknown version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = SNSV0_1_0Test.serverBinding(); + super.bindingTypeClass = SNSServerBinding.class; + super.pathToBindingJson = "/bindings/sns/unknown version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sns/unknown version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sns/unknown version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sns/SNSV0_1_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sns/SNSV0_1_0Test.java new file mode 100644 index 00000000..88ebb0fe --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sns/SNSV0_1_0Test.java @@ -0,0 +1,130 @@ +package com.asyncapi.bindings.sns; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.sns.v0._1_0.channel.SNSChannelBinding; +import com.asyncapi.bindings.sns.v0._1_0.channel.SNSChannelPolicy; +import com.asyncapi.bindings.sns.v0._1_0.channel.SNSChannelPolicyStatement; +import com.asyncapi.bindings.sns.v0._1_0.channel.SNSChannelPolicyStatementEffect; +import com.asyncapi.bindings.sns.v0._1_0.message.SNSMessageBinding; +import com.asyncapi.bindings.sns.v0._1_0.operation.SNSOperationBinding; +import com.asyncapi.bindings.sns.v0._1_0.operation.*; +import com.asyncapi.bindings.sns.v0._1_0.server.SNSServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +@DisplayName("0.1.0") +public class SNSV0_1_0Test { + + public static SNSChannelBinding channelBinding () { + return SNSChannelBinding.builder() + .name("my-sns-topic") + .policy(SNSChannelPolicy.builder() + .statements(List.of(SNSChannelPolicyStatement.builder() + .effect(SNSChannelPolicyStatementEffect.ALLOW) + .principal("*") + .action("SNS:Publish") + .build() + )) + .build() + ) + .build(); + } + + public static SNSMessageBinding messageBinding () { + return new SNSMessageBinding(); + } + + public static SNSOperationBinding operationBinding () { + var filterPolicy = new LinkedHashMap(); + filterPolicy.put("store", List.of("asyncapi_corp")); + filterPolicy.put("event", List.of(Map.ofEntries(Map.entry("anything-but", "order_cancelled")))); + filterPolicy.put("customer_interests", List.of("rugby", "football", "baseball")); + + return SNSOperationBinding.builder() + .topic(SNSOperationDestinationIdentifier.builder() + .name("someTopic") + .build() + ) + .consumers(List.of( + SNSOperationConsumer.builder() + .protocol(SNSOperationConsumerProtocol.SQS) + .endpoint(SNSOperationDestinationIdentifier.builder() + .name("someQueue") + .build() + ) + .filterPolicy(filterPolicy) + .filterPolicyScope(SNSOperationConsumerFilterPolicyScope.MESSAGE_ATTRIBUTES) + .rawMessageDelivery(false) + .redrivePolicy(SNSOperationConsumerRedrivePolicy.builder() + .deadLetterQueue(SNSOperationDestinationIdentifier.builder() + .arn("arn:aws:SQS:eu-west-1:0000000:123456789") + .build() + ) + .maxReceiveCount(25) + .build() + ) + .deliveryPolicy(SNSOperationConsumerDeliveryPolicy.builder() + .minDelayTarget(10) + .maxDelayTarget(100) + .numRetries(5) + .numNoDelayRetries(2) + .numMinDelayRetries(3) + .numMaxDelayRetries(5) + .backoffFunction(SNSOperationConsumerDeliveryPolicyBackoffFunction.LINEAR) + .maxReceivesPerSecond(2) + .build() + ) + .build() + )) + .build(); + } + + public static SNSServerBinding serverBinding () { + return new SNSServerBinding(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = SNSChannelBinding.class; + super.pathToBindingJson = "/bindings/sns/0.1.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sns/0.1.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sns/0.1.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = SNSMessageBinding.class; + super.pathToBindingJson = "/bindings/sns/0.1.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sns/0.1.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sns/0.1.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = SNSOperationBinding.class; + super.pathToBindingJson = "/bindings/sns/0.1.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sns/0.1.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sns/0.1.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = SNSServerBinding.class; + super.pathToBindingJson = "/bindings/sns/0.1.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sns/0.1.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sns/0.1.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sns/SNSWithoutVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sns/SNSWithoutVersionTest.java new file mode 100644 index 00000000..fd5e941b --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sns/SNSWithoutVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.sns; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.sns.v0._1_0.channel.SNSChannelBinding; +import com.asyncapi.bindings.sns.v0._1_0.message.SNSMessageBinding; +import com.asyncapi.bindings.sns.v0._1_0.operation.SNSOperationBinding; +import com.asyncapi.bindings.sns.v0._1_0.server.SNSServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("without version") +public class SNSWithoutVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = SNSV0_1_0Test.channelBinding(); + super.bindingTypeClass = SNSChannelBinding.class; + super.pathToBindingJson = "/bindings/sns/without version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sns/without version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sns/without version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = SNSV0_1_0Test.messageBinding(); + super.bindingTypeClass = SNSMessageBinding.class; + super.pathToBindingJson = "/bindings/sns/without version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sns/without version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sns/without version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = SNSV0_1_0Test.operationBinding(); + super.bindingTypeClass = SNSOperationBinding.class; + super.pathToBindingJson = "/bindings/sns/without version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sns/without version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sns/without version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = SNSV0_1_0Test.serverBinding(); + super.bindingTypeClass = SNSServerBinding.class; + super.pathToBindingJson = "/bindings/sns/without version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sns/without version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sns/without version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/solace/Solace.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/solace/Solace.java new file mode 100644 index 00000000..b8eb11e9 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/solace/Solace.java @@ -0,0 +1,11 @@ +package com.asyncapi.bindings.solace; + +import org.junit.platform.suite.api.SelectPackages; +import org.junit.platform.suite.api.Suite; +import org.junit.platform.suite.api.SuiteDisplayName; + +@Suite +@SuiteDisplayName("Solace") +@SelectPackages("com.asyncapi.bindings.solace") +public class Solace { +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/solace/SolaceLatestTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/solace/SolaceLatestTest.java new file mode 100644 index 00000000..236182ab --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/solace/SolaceLatestTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.solace; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.solace.v0._4_0.channel.SolaceChannelBinding; +import com.asyncapi.bindings.solace.v0._4_0.message.SolaceMessageBinding; +import com.asyncapi.bindings.solace.v0._4_0.operation.SolaceOperationBinding; +import com.asyncapi.bindings.solace.v0._4_0.server.SolaceServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("latest") +public class SolaceLatestTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = SolaceV0_4_0Test.channelBinding(); + super.bindingTypeClass = SolaceChannelBinding.class; + super.pathToBindingJson = "/bindings/solace/latest/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/solace/latest/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/solace/latest/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = SolaceV0_4_0Test.messageBinding(); + super.bindingTypeClass = SolaceMessageBinding.class; + super.pathToBindingJson = "/bindings/solace/latest/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/solace/latest/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/solace/latest/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = SolaceV0_4_0Test.operationBinding(); + super.bindingTypeClass = SolaceOperationBinding.class; + super.pathToBindingJson = "/bindings/solace/latest/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/solace/latest/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/solace/latest/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = SolaceV0_4_0Test.serverBinding(); + super.bindingTypeClass = SolaceServerBinding.class; + super.pathToBindingJson = "/bindings/solace/latest/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/solace/latest/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/solace/latest/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/solace/SolaceUnknownVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/solace/SolaceUnknownVersionTest.java new file mode 100644 index 00000000..5ab2a6af --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/solace/SolaceUnknownVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.solace; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.solace.v0._4_0.channel.SolaceChannelBinding; +import com.asyncapi.bindings.solace.v0._4_0.message.SolaceMessageBinding; +import com.asyncapi.bindings.solace.v0._4_0.operation.SolaceOperationBinding; +import com.asyncapi.bindings.solace.v0._4_0.server.SolaceServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("unknown version") +public class SolaceUnknownVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = SolaceV0_4_0Test.channelBinding(); + super.bindingTypeClass = SolaceChannelBinding.class; + super.pathToBindingJson = "/bindings/solace/unknown version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/solace/unknown version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/solace/unknown version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = SolaceV0_4_0Test.messageBinding(); + super.bindingTypeClass = SolaceMessageBinding.class; + super.pathToBindingJson = "/bindings/solace/unknown version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/solace/unknown version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/solace/unknown version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = SolaceV0_4_0Test.operationBinding(); + super.bindingTypeClass = SolaceOperationBinding.class; + super.pathToBindingJson = "/bindings/solace/unknown version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/solace/unknown version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/solace/unknown version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = SolaceV0_4_0Test.serverBinding(); + super.bindingTypeClass = SolaceServerBinding.class; + super.pathToBindingJson = "/bindings/solace/unknown version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/solace/unknown version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/solace/unknown version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/solace/SolaceV0_1_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/solace/SolaceV0_1_0Test.java new file mode 100644 index 00000000..8c64d761 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/solace/SolaceV0_1_0Test.java @@ -0,0 +1,70 @@ +package com.asyncapi.bindings.solace; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.solace.v0._1_0.channel.SolaceChannelBinding; +import com.asyncapi.bindings.solace.v0._1_0.message.SolaceMessageBinding; +import com.asyncapi.bindings.solace.v0._1_0.operation.SolaceOperationBinding; +import com.asyncapi.bindings.solace.v0._1_0.server.SolaceServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("0.1.0") +public class SolaceV0_1_0Test { + + public static SolaceChannelBinding channelBinding () { + return new SolaceChannelBinding(); + } + + public static SolaceMessageBinding messageBinding () { + return new SolaceMessageBinding(); + } + + public static SolaceOperationBinding operationBinding () { + return new SolaceOperationBinding(); + } + + public static SolaceServerBinding serverBinding () { + return new SolaceServerBinding(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = SolaceChannelBinding.class; + super.pathToBindingJson = "/bindings/default implementation/0.1.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/0.1.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/0.1.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = SolaceMessageBinding.class; + super.pathToBindingJson = "/bindings/default implementation/0.1.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/0.1.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/0.1.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = SolaceOperationBinding.class; + super.pathToBindingJson = "/bindings/default implementation/0.1.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/0.1.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/0.1.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = SolaceServerBinding.class; + super.pathToBindingJson = "/bindings/default implementation/0.1.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/0.1.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/0.1.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/solace/SolaceV0_2_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/solace/SolaceV0_2_0Test.java new file mode 100644 index 00000000..e49c4941 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/solace/SolaceV0_2_0Test.java @@ -0,0 +1,90 @@ +package com.asyncapi.bindings.solace; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.solace.v0._2_0.channel.SolaceChannelBinding; +import com.asyncapi.bindings.solace.v0._2_0.message.SolaceMessageBinding; +import com.asyncapi.bindings.solace.v0._2_0.operation.SolaceOperationBinding; +import com.asyncapi.bindings.solace.v0._2_0.operation.SolaceOperationDestination; +import com.asyncapi.bindings.solace.v0._2_0.operation.queue.SolaceOperationQueue; +import com.asyncapi.bindings.solace.v0._2_0.server.SolaceServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +import java.util.List; + +@DisplayName("0.2.0") +public class SolaceV0_2_0Test { + + public static SolaceChannelBinding channelBinding () { + return new SolaceChannelBinding(); + } + + public static SolaceMessageBinding messageBinding () { + return new SolaceMessageBinding(); + } + + public static SolaceOperationBinding operationBinding () { + return SolaceOperationBinding.builder() + .destinations(List.of( + SolaceOperationDestination.builder() + .destinationType(SolaceOperationDestination.Type.QUEUE) + .queue(SolaceOperationQueue.builder() + .name("CreatedHREvents") + .topicSubscriptions(List.of("person/*/created")) + .accessType(SolaceOperationQueue.AccessType.EXCLUSIVE) + .build() + ) + .build(), + SolaceOperationDestination.builder() + .destinationType(SolaceOperationDestination.Type.TOPIC) + .topicSubscriptions(List.of("person/*/updated")) + .build() + )) + .build(); + } + + public static SolaceServerBinding serverBinding () { + return new SolaceServerBinding("solace.private.net"); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = SolaceChannelBinding.class; + super.pathToBindingJson = "/bindings/solace/0.2.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/solace/0.2.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/solace/0.2.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = SolaceMessageBinding.class; + super.pathToBindingJson = "/bindings/solace/0.2.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/solace/0.2.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/solace/0.2.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = SolaceOperationBinding.class; + super.pathToBindingJson = "/bindings/solace/0.2.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/solace/0.2.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/solace/0.2.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = SolaceServerBinding.class; + super.pathToBindingJson = "/bindings/solace/0.2.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/solace/0.2.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/solace/0.2.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/solace/SolaceV0_3_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/solace/SolaceV0_3_0Test.java new file mode 100644 index 00000000..903709d8 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/solace/SolaceV0_3_0Test.java @@ -0,0 +1,94 @@ +package com.asyncapi.bindings.solace; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.solace.v0._3_0.channel.SolaceChannelBinding; +import com.asyncapi.bindings.solace.v0._3_0.message.SolaceMessageBinding; +import com.asyncapi.bindings.solace.v0._3_0.operation.SolaceOperationBinding; +import com.asyncapi.bindings.solace.v0._3_0.operation.SolaceOperationDestination; +import com.asyncapi.bindings.solace.v0._3_0.operation.queue.SolaceOperationQueue; +import com.asyncapi.bindings.solace.v0._3_0.server.SolaceServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +import java.util.List; + +@DisplayName("0.3.0") +public class SolaceV0_3_0Test { + + public static SolaceChannelBinding channelBinding () { + return new SolaceChannelBinding(); + } + + public static SolaceMessageBinding messageBinding () { + return new SolaceMessageBinding(); + } + + public static SolaceOperationBinding operationBinding () { + return SolaceOperationBinding.builder() + .destinations(List.of( + SolaceOperationDestination.builder() + .destinationType(SolaceOperationDestination.Type.QUEUE) + .queue(SolaceOperationQueue.builder() + .name("CreatedHREvents") + .topicSubscriptions(List.of("person/*/created")) + .accessType(SolaceOperationQueue.AccessType.EXCLUSIVE) + .maxMsgSpoolSize("1,500") + .maxTtl("60") + .build() + ) + .build(), + SolaceOperationDestination.builder() + .destinationType(SolaceOperationDestination.Type.TOPIC) + .topicSubscriptions(List.of("person/*/updated")) + .build() + )) + .build(); + } + + public static SolaceServerBinding serverBinding () { + return SolaceServerBinding.builder() + .msgVpn("solace.private.net") + .build(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = SolaceChannelBinding.class; + super.pathToBindingJson = "/bindings/solace/0.3.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/solace/0.3.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/solace/0.3.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = SolaceMessageBinding.class; + super.pathToBindingJson = "/bindings/solace/0.3.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/solace/0.3.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/solace/0.3.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = SolaceOperationBinding.class; + super.pathToBindingJson = "/bindings/solace/0.3.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/solace/0.3.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/solace/0.3.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = SolaceServerBinding.class; + super.pathToBindingJson = "/bindings/solace/0.3.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/solace/0.3.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/solace/0.3.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/solace/SolaceV0_4_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/solace/SolaceV0_4_0Test.java new file mode 100644 index 00000000..e8c9845f --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/solace/SolaceV0_4_0Test.java @@ -0,0 +1,93 @@ +package com.asyncapi.bindings.solace; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.solace.v0._4_0.channel.SolaceChannelBinding; +import com.asyncapi.bindings.solace.v0._4_0.message.SolaceMessageBinding; +import com.asyncapi.bindings.solace.v0._4_0.operation.SolaceOperationBinding; +import com.asyncapi.bindings.solace.v0._4_0.operation.SolaceOperationDestination; +import com.asyncapi.bindings.solace.v0._4_0.operation.queue.SolaceOperationQueue; +import com.asyncapi.bindings.solace.v0._4_0.server.SolaceServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +import java.util.List; + +@DisplayName("0.4.0") +public class SolaceV0_4_0Test { + + public static SolaceChannelBinding channelBinding () { + return new SolaceChannelBinding(); + } + + public static SolaceMessageBinding messageBinding () { + return new SolaceMessageBinding(); + } + + public static SolaceOperationBinding operationBinding () { + return SolaceOperationBinding.builder() + .destinations(List.of( + SolaceOperationDestination.builder() + .destinationType(SolaceOperationDestination.Type.QUEUE) + .queue(SolaceOperationQueue.builder() + .name("sampleQueue") + .topicSubscriptions(List.of("samples/*")) + .accessType(SolaceOperationQueue.AccessType.NON_EXCLUSIVE) + .build() + ) + .build(), + SolaceOperationDestination.builder() + .destinationType(SolaceOperationDestination.Type.TOPIC) + .topicSubscriptions(List.of("samples/*")) + .build() + )) + .build(); + } + + public static SolaceServerBinding serverBinding () { + return SolaceServerBinding.builder() + .msgVpn("ProdVPN") + .clientName("transactions-broker") + .build(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = SolaceChannelBinding.class; + super.pathToBindingJson = "/bindings/solace/0.4.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/solace/0.4.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/solace/0.4.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = SolaceMessageBinding.class; + super.pathToBindingJson = "/bindings/solace/0.4.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/solace/0.4.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/solace/0.4.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = SolaceOperationBinding.class; + super.pathToBindingJson = "/bindings/solace/0.4.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/solace/0.4.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/solace/0.4.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = SolaceServerBinding.class; + super.pathToBindingJson = "/bindings/solace/0.4.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/solace/0.4.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/solace/0.4.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/solace/SolaceWithoutVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/solace/SolaceWithoutVersionTest.java new file mode 100644 index 00000000..6217aab1 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/solace/SolaceWithoutVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.solace; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.solace.v0._4_0.channel.SolaceChannelBinding; +import com.asyncapi.bindings.solace.v0._4_0.message.SolaceMessageBinding; +import com.asyncapi.bindings.solace.v0._4_0.operation.SolaceOperationBinding; +import com.asyncapi.bindings.solace.v0._4_0.server.SolaceServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("without version") +public class SolaceWithoutVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = SolaceV0_4_0Test.channelBinding(); + super.bindingTypeClass = SolaceChannelBinding.class; + super.pathToBindingJson = "/bindings/solace/without version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/solace/without version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/solace/without version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = SolaceV0_4_0Test.messageBinding(); + super.bindingTypeClass = SolaceMessageBinding.class; + super.pathToBindingJson = "/bindings/solace/without version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/solace/without version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/solace/without version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = SolaceV0_4_0Test.operationBinding(); + super.bindingTypeClass = SolaceOperationBinding.class; + super.pathToBindingJson = "/bindings/solace/without version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/solace/without version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/solace/without version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = SolaceV0_4_0Test.serverBinding(); + super.bindingTypeClass = SolaceServerBinding.class; + super.pathToBindingJson = "/bindings/solace/without version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/solace/without version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/solace/without version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sqs/SQS.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sqs/SQS.java new file mode 100644 index 00000000..07765c2f --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sqs/SQS.java @@ -0,0 +1,11 @@ +package com.asyncapi.bindings.sqs; + +import org.junit.platform.suite.api.SelectPackages; +import org.junit.platform.suite.api.Suite; +import org.junit.platform.suite.api.SuiteDisplayName; + +@Suite +@SuiteDisplayName("SQS") +@SelectPackages("com.asyncapi.bindings.sqs") +public class SQS { +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sqs/SQSLatestTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sqs/SQSLatestTest.java new file mode 100644 index 00000000..da1a3b96 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sqs/SQSLatestTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.sqs; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.sqs.v0._2_0.channel.SQSChannelBinding; +import com.asyncapi.bindings.sqs.v0._2_0.message.SQSMessageBinding; +import com.asyncapi.bindings.sqs.v0._2_0.operation.SQSOperationBinding; +import com.asyncapi.bindings.sqs.v0._2_0.server.SQSServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("latest") +public class SQSLatestTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = SQSV0_2_0Test.channelBinding(); + super.bindingTypeClass = SQSChannelBinding.class; + super.pathToBindingJson = "/bindings/sqs/latest/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sqs/latest/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sqs/latest/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = SQSV0_2_0Test.messageBinding(); + super.bindingTypeClass = SQSMessageBinding.class; + super.pathToBindingJson = "/bindings/sqs/latest/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sqs/latest/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sqs/latest/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = SQSV0_2_0Test.operationBinding(); + super.bindingTypeClass = SQSOperationBinding.class; + super.pathToBindingJson = "/bindings/sqs/latest/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sqs/latest/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sqs/latest/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = SQSV0_2_0Test.serverBinding(); + super.bindingTypeClass = SQSServerBinding.class; + super.pathToBindingJson = "/bindings/sqs/latest/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sqs/latest/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sqs/latest/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sqs/SQSUnknownVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sqs/SQSUnknownVersionTest.java new file mode 100644 index 00000000..97c896d9 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sqs/SQSUnknownVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.sqs; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.sqs.v0._2_0.channel.SQSChannelBinding; +import com.asyncapi.bindings.sqs.v0._2_0.message.SQSMessageBinding; +import com.asyncapi.bindings.sqs.v0._2_0.operation.SQSOperationBinding; +import com.asyncapi.bindings.sqs.v0._2_0.server.SQSServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("unknown version") +public class SQSUnknownVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = SQSV0_2_0Test.channelBinding(); + super.bindingTypeClass = SQSChannelBinding.class; + super.pathToBindingJson = "/bindings/sqs/unknown version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sqs/unknown version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sqs/unknown version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = SQSV0_2_0Test.messageBinding(); + super.bindingTypeClass = SQSMessageBinding.class; + super.pathToBindingJson = "/bindings/sqs/unknown version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sqs/unknown version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sqs/unknown version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = SQSV0_2_0Test.operationBinding(); + super.bindingTypeClass = SQSOperationBinding.class; + super.pathToBindingJson = "/bindings/sqs/unknown version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sqs/unknown version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sqs/unknown version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = SQSV0_2_0Test.serverBinding(); + super.bindingTypeClass = SQSServerBinding.class; + super.pathToBindingJson = "/bindings/sqs/unknown version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sqs/unknown version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sqs/unknown version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sqs/SQSV0_1_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sqs/SQSV0_1_0Test.java new file mode 100644 index 00000000..33923492 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sqs/SQSV0_1_0Test.java @@ -0,0 +1,70 @@ +package com.asyncapi.bindings.sqs; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.sqs.v0._1_0.channel.SQSChannelBinding; +import com.asyncapi.bindings.sqs.v0._1_0.message.SQSMessageBinding; +import com.asyncapi.bindings.sqs.v0._1_0.operation.SQSOperationBinding; +import com.asyncapi.bindings.sqs.v0._1_0.server.SQSServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("0.1.0") +public class SQSV0_1_0Test { + + public static SQSChannelBinding channelBinding () { + return new SQSChannelBinding(); + } + + public static SQSMessageBinding messageBinding () { + return new SQSMessageBinding(); + } + + public static SQSOperationBinding operationBinding () { + return new SQSOperationBinding(); + } + + public static SQSServerBinding serverBinding () { + return new SQSServerBinding(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = SQSChannelBinding.class; + super.pathToBindingJson = "/bindings/sqs/0.1.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sqs/0.1.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sqs/0.1.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = SQSMessageBinding.class; + super.pathToBindingJson = "/bindings/sqs/0.1.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sqs/0.1.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sqs/0.1.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = SQSOperationBinding.class; + super.pathToBindingJson = "/bindings/sqs/0.1.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sqs/0.1.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sqs/0.1.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = SQSServerBinding.class; + super.pathToBindingJson = "/bindings/sqs/0.1.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sqs/0.1.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sqs/0.1.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sqs/SQSV0_2_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sqs/SQSV0_2_0Test.java new file mode 100644 index 00000000..18bf32d4 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sqs/SQSV0_2_0Test.java @@ -0,0 +1,155 @@ +package com.asyncapi.bindings.sqs; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.sqs.v0._2_0.channel.SQSChannelBinding; +import com.asyncapi.bindings.sqs.v0._2_0.channel.*; +import com.asyncapi.bindings.sqs.v0._2_0.message.SQSMessageBinding; +import com.asyncapi.bindings.sqs.v0._2_0.operation.SQSOperationBinding; +import com.asyncapi.bindings.sqs.v0._2_0.operation.*; +import com.asyncapi.bindings.sqs.v0._2_0.server.SQSServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +import java.util.LinkedHashMap; +import java.util.List; + +@DisplayName("0.2.0") +public class SQSV0_2_0Test { + + public static SQSChannelBinding channelBinding () { + var tags = new LinkedHashMap(); + tags.put("owner", "AsyncAPI.NET"); + tags.put("platform", "AsyncAPIOrg"); + + return SQSChannelBinding.builder() + .queue(SQSChannelQueue.builder() + .name("myQueue") + .fifoQueue(true) + .deduplicationScope(SQSChannelQueueDeduplicationScope.MESSAGE_GROUP) + .fifoThroughputLimit(SQSChannelQueueFifoThroughputLimit.PER_MESSAGE_GROUP_ID) + .deliveryDelay(15) + .visibilityTimeout(60) + .receiveMessageWaitTime(0) + .messageRetentionPeriod(86400) + .redrivePolicy(SQSChannelRedrivePolicy.builder() + .deadLetterQueue(new SQSChannelDeadLetterQueueIdentifier( + "arn:aws:SQS:eu-west-1:0000000:123456789", null + )) + .maxReceiveCount(15) + .build() + ) + .policy(SQSChannelQueuePolicy.builder() + .statements(List.of( + SQSChannelQueuePolicyStatement.builder() + .effect(SQSChannelQueuePolicyStatementEffect.DENY) + .principal("arn:aws:iam::123456789012:user/dec.kolakowski") + .action(List.of( + "sqs:SendMessage", + "sqs:ReceiveMessage" + )) + .build() + )) + .build() + ) + .tags(tags) + .build() + ) + .deadLetterQueue(SQSChannelQueue.builder() + .name("myQueue_error") + .deliveryDelay(0) + .visibilityTimeout(0) + .receiveMessageWaitTime(0) + .messageRetentionPeriod(604800) + .build() + ) + .build(); + } + + public static SQSMessageBinding messageBinding () { + return new SQSMessageBinding(); + } + + public static SQSOperationBinding operationBinding () { + return SQSOperationBinding.builder() + .queues(List.of( + SQSOperationQueue.builder() + .name("myQueue") + .fifoQueue(true) + .deduplicationScope(SQSOperationQueueDeduplicationScope.MESSAGE_GROUP) + .fifoThroughputLimit(SQSOperationQueueFifoThroughputLimit.PER_MESSAGE_GROUP_ID) + .deliveryDelay(10) + .redrivePolicy(SQSOperationRedrivePolicy.builder() + .deadLetterQueue(new SQSOperationDeadLetterQueueIdentifier( + null, + "myQueue_error" + )) + .maxReceiveCount(15) + .build() + ) + .policy(SQSOperationQueuePolicy.builder() + .statements(List.of( + SQSOperationQueuePolicyStatement.builder() + .effect(SQSOperationQueuePolicyStatementEffect.DENY) + .principal("arn:aws:iam::123456789012:user/dec.kolakowski") + .action(List.of( + "sqs:SendMessage", + "sqs:ReceiveMessage" + )) + .build() + )) + .build() + ) + .build(), + SQSOperationQueue.builder() + .name("myQueue_error") + .deliveryDelay(10) + .build() + )) + .build(); + } + + public static SQSServerBinding serverBinding () { + return new SQSServerBinding(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = SQSChannelBinding.class; + super.pathToBindingJson = "/bindings/sqs/0.2.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sqs/0.2.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sqs/0.2.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = SQSMessageBinding.class; + super.pathToBindingJson = "/bindings/sqs/0.2.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sqs/0.2.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sqs/0.2.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = SQSOperationBinding.class; + super.pathToBindingJson = "/bindings/sqs/0.2.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sqs/0.2.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sqs/0.2.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = SQSServerBinding.class; + super.pathToBindingJson = "/bindings/sqs/0.2.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sqs/0.2.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sqs/0.2.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sqs/SQSWithoutVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sqs/SQSWithoutVersionTest.java new file mode 100644 index 00000000..28540ecd --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/sqs/SQSWithoutVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.sqs; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.sqs.v0._2_0.channel.SQSChannelBinding; +import com.asyncapi.bindings.sqs.v0._2_0.message.SQSMessageBinding; +import com.asyncapi.bindings.sqs.v0._2_0.operation.SQSOperationBinding; +import com.asyncapi.bindings.sqs.v0._2_0.server.SQSServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("without version") +public class SQSWithoutVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = SQSV0_2_0Test.channelBinding(); + super.bindingTypeClass = SQSChannelBinding.class; + super.pathToBindingJson = "/bindings/sqs/without version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sqs/without version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sqs/without version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = SQSV0_2_0Test.messageBinding(); + super.bindingTypeClass = SQSMessageBinding.class; + super.pathToBindingJson = "/bindings/sqs/without version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sqs/without version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sqs/without version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = SQSV0_2_0Test.operationBinding(); + super.bindingTypeClass = SQSOperationBinding.class; + super.pathToBindingJson = "/bindings/sqs/without version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sqs/without version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sqs/without version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = SQSV0_2_0Test.serverBinding(); + super.bindingTypeClass = SQSServerBinding.class; + super.pathToBindingJson = "/bindings/sqs/without version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/sqs/without version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/sqs/without version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/stomp/STOMP.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/stomp/STOMP.java new file mode 100644 index 00000000..5f6ce921 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/stomp/STOMP.java @@ -0,0 +1,10 @@ +package com.asyncapi.bindings.stomp; + +import org.junit.platform.suite.api.SelectPackages; +import org.junit.platform.suite.api.Suite; +import org.junit.platform.suite.api.SuiteDisplayName; + +@Suite +@SuiteDisplayName("STOMP") +@SelectPackages("com.asyncapi.bindings.stomp") +public class STOMP {} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/stomp/STOMPLatestTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/stomp/STOMPLatestTest.java new file mode 100644 index 00000000..4469a8a1 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/stomp/STOMPLatestTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.stomp; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.stomp.v0._1_0.channel.STOMPChannelBinding; +import com.asyncapi.bindings.stomp.v0._1_0.message.STOMPMessageBinding; +import com.asyncapi.bindings.stomp.v0._1_0.operation.STOMPOperationBinding; +import com.asyncapi.bindings.stomp.v0._1_0.server.STOMPServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("latest") +public class STOMPLatestTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = new STOMPChannelBinding(); + super.bindingTypeClass = STOMPChannelBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = new STOMPMessageBinding(); + super.bindingTypeClass = STOMPMessageBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = new STOMPOperationBinding(); + super.bindingTypeClass = STOMPOperationBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = new STOMPServerBinding(); + super.bindingTypeClass = STOMPServerBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/stomp/STOMPUnknownVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/stomp/STOMPUnknownVersionTest.java new file mode 100644 index 00000000..918a82db --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/stomp/STOMPUnknownVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.stomp; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.stomp.v0._1_0.channel.STOMPChannelBinding; +import com.asyncapi.bindings.stomp.v0._1_0.message.STOMPMessageBinding; +import com.asyncapi.bindings.stomp.v0._1_0.operation.STOMPOperationBinding; +import com.asyncapi.bindings.stomp.v0._1_0.server.STOMPServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("unknown version") +public class STOMPUnknownVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = new STOMPChannelBinding(); + super.bindingTypeClass = STOMPChannelBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = new STOMPMessageBinding(); + super.bindingTypeClass = STOMPMessageBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = new STOMPOperationBinding(); + super.bindingTypeClass = STOMPOperationBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = new STOMPServerBinding(); + super.bindingTypeClass = STOMPServerBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/stomp/STOMPV0_1_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/stomp/STOMPV0_1_0Test.java new file mode 100644 index 00000000..39f90808 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/stomp/STOMPV0_1_0Test.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.stomp; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.stomp.v0._1_0.channel.STOMPChannelBinding; +import com.asyncapi.bindings.stomp.v0._1_0.message.STOMPMessageBinding; +import com.asyncapi.bindings.stomp.v0._1_0.operation.STOMPOperationBinding; +import com.asyncapi.bindings.stomp.v0._1_0.server.STOMPServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("0.1.0") +public class STOMPV0_1_0Test { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = new STOMPChannelBinding(); + super.bindingTypeClass = STOMPChannelBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = new STOMPMessageBinding(); + super.bindingTypeClass = STOMPMessageBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = new STOMPOperationBinding(); + super.bindingTypeClass = STOMPOperationBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = new STOMPServerBinding(); + super.bindingTypeClass = STOMPServerBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/stomp/STOMPWithoutVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/stomp/STOMPWithoutVersionTest.java new file mode 100644 index 00000000..094c8afa --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/stomp/STOMPWithoutVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.stomp; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.stomp.v0._1_0.channel.STOMPChannelBinding; +import com.asyncapi.bindings.stomp.v0._1_0.message.STOMPMessageBinding; +import com.asyncapi.bindings.stomp.v0._1_0.operation.STOMPOperationBinding; +import com.asyncapi.bindings.stomp.v0._1_0.server.STOMPServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("without version") +public class STOMPWithoutVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = new STOMPChannelBinding(); + super.bindingTypeClass = STOMPChannelBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = new STOMPMessageBinding(); + super.bindingTypeClass = STOMPMessageBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = new STOMPOperationBinding(); + super.bindingTypeClass = STOMPOperationBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = new STOMPServerBinding(); + super.bindingTypeClass = STOMPServerBinding.class; + super.pathToBindingJson = "/bindings/default implementation/unknown version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/default implementation/unknown version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/default implementation/unknown version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/websockets/WebSockets.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/websockets/WebSockets.java new file mode 100644 index 00000000..bfbedab6 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/websockets/WebSockets.java @@ -0,0 +1,10 @@ +package com.asyncapi.bindings.websockets; + +import org.junit.platform.suite.api.SelectPackages; +import org.junit.platform.suite.api.Suite; +import org.junit.platform.suite.api.SuiteDisplayName; + +@Suite +@SuiteDisplayName("WebSockets") +@SelectPackages("com.asyncapi.bindings.websockets") +public class WebSockets {} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/websockets/WebSocketsLatestTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/websockets/WebSocketsLatestTest.java new file mode 100644 index 00000000..fc836cf3 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/websockets/WebSocketsLatestTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.websockets; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.websockets.v0._1_0.channel.WebSocketsChannelBinding; +import com.asyncapi.bindings.websockets.v0._1_0.message.WebSocketsMessageBinding; +import com.asyncapi.bindings.websockets.v0._1_0.operation.WebSocketsOperationBinding; +import com.asyncapi.bindings.websockets.v0._1_0.server.WebSocketsServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("latest") +public class WebSocketsLatestTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = WebSocketsV0_1_0Test.channelBinding(); + super.bindingTypeClass = WebSocketsChannelBinding.class; + super.pathToBindingJson = "/bindings/websockets/latest/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/websockets/latest/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/websockets/latest/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = WebSocketsV0_1_0Test.messageBinding(); + super.bindingTypeClass = WebSocketsMessageBinding.class; + super.pathToBindingJson = "/bindings/websockets/latest/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/websockets/latest/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/websockets/latest/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = WebSocketsV0_1_0Test.operationBinding(); + super.bindingTypeClass = WebSocketsOperationBinding.class; + super.pathToBindingJson = "/bindings/websockets/latest/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/websockets/latest/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/websockets/latest/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = WebSocketsV0_1_0Test.serverBinding(); + super.bindingTypeClass = WebSocketsServerBinding.class; + super.pathToBindingJson = "/bindings/websockets/latest/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/websockets/latest/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/websockets/latest/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/websockets/WebSocketsUnknownVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/websockets/WebSocketsUnknownVersionTest.java new file mode 100644 index 00000000..0cd34df0 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/websockets/WebSocketsUnknownVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.websockets; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.websockets.v0._1_0.channel.WebSocketsChannelBinding; +import com.asyncapi.bindings.websockets.v0._1_0.message.WebSocketsMessageBinding; +import com.asyncapi.bindings.websockets.v0._1_0.operation.WebSocketsOperationBinding; +import com.asyncapi.bindings.websockets.v0._1_0.server.WebSocketsServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("unknown version") +public class WebSocketsUnknownVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = WebSocketsV0_1_0Test.channelBinding(); + super.bindingTypeClass = WebSocketsChannelBinding.class; + super.pathToBindingJson = "/bindings/websockets/unknown version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/websockets/unknown version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/websockets/unknown version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = WebSocketsV0_1_0Test.messageBinding(); + super.bindingTypeClass = WebSocketsMessageBinding.class; + super.pathToBindingJson = "/bindings/websockets/unknown version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/websockets/unknown version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/websockets/unknown version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = WebSocketsV0_1_0Test.operationBinding(); + super.bindingTypeClass = WebSocketsOperationBinding.class; + super.pathToBindingJson = "/bindings/websockets/unknown version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/websockets/unknown version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/websockets/unknown version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = WebSocketsV0_1_0Test.serverBinding(); + super.bindingTypeClass = WebSocketsServerBinding.class; + super.pathToBindingJson = "/bindings/websockets/unknown version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/websockets/unknown version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/websockets/unknown version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/websockets/WebSocketsV0_1_0Test.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/websockets/WebSocketsV0_1_0Test.java new file mode 100644 index 00000000..0462da02 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/websockets/WebSocketsV0_1_0Test.java @@ -0,0 +1,106 @@ +package com.asyncapi.bindings.websockets; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.websockets.v0._1_0.channel.WebSocketsChannelBinding; +import com.asyncapi.bindings.websockets.v0._1_0.channel.WebSocketsChannelMethod; +import com.asyncapi.bindings.websockets.v0._1_0.message.WebSocketsMessageBinding; +import com.asyncapi.bindings.websockets.v0._1_0.operation.WebSocketsOperationBinding; +import com.asyncapi.bindings.websockets.v0._1_0.server.WebSocketsServerBinding; +import com.asyncapi.schemas.asyncapi.AsyncAPISchema; +import com.asyncapi.schemas.Type; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +import java.util.HashMap; +import java.util.Map; + +@DisplayName("0.1.0") +public class WebSocketsV0_1_0Test { + + public static WebSocketsChannelBinding channelBinding () { + Map queryProperties = new HashMap<>(); + queryProperties.put( + "ref", + AsyncAPISchema.builder() + .type(Type.STRING) + .description("Referral.") + .build() + ); + + Map headersProperties = new HashMap<>(); + headersProperties.put( + "Authentication", + AsyncAPISchema.builder() + .type(Type.STRING) + .description("Authentication token") + .build() + ); + + return WebSocketsChannelBinding.builder() + .method(WebSocketsChannelMethod.GET) + .query(AsyncAPISchema.builder() + .type(Type.OBJECT) + .properties(queryProperties) + .build() + ) + .headers(AsyncAPISchema.builder() + .type(Type.OBJECT) + .properties(headersProperties) + .build() + ) + .build(); + } + + public static WebSocketsMessageBinding messageBinding () { + return new WebSocketsMessageBinding(); + } + + public static WebSocketsOperationBinding operationBinding () { + return new WebSocketsOperationBinding(); + } + + public static WebSocketsServerBinding serverBinding () { + return new WebSocketsServerBinding(); + } + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = channelBinding(); + super.bindingTypeClass = WebSocketsChannelBinding.class; + super.pathToBindingJson = "/bindings/websockets/0.1.0/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/websockets/0.1.0/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/websockets/0.1.0/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = messageBinding(); + super.bindingTypeClass = WebSocketsMessageBinding.class; + super.pathToBindingJson = "/bindings/websockets/0.1.0/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/websockets/0.1.0/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/websockets/0.1.0/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = operationBinding(); + super.bindingTypeClass = WebSocketsOperationBinding.class; + super.pathToBindingJson = "/bindings/websockets/0.1.0/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/websockets/0.1.0/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/websockets/0.1.0/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = serverBinding(); + super.bindingTypeClass = WebSocketsServerBinding.class; + super.pathToBindingJson = "/bindings/websockets/0.1.0/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/websockets/0.1.0/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/websockets/0.1.0/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/websockets/WebSocketsWithoutVersionTest.java b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/websockets/WebSocketsWithoutVersionTest.java new file mode 100644 index 00000000..734d1ada --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/bindings/websockets/WebSocketsWithoutVersionTest.java @@ -0,0 +1,54 @@ +package com.asyncapi.bindings.websockets; + +import com.asyncapi.bindings.BindingTest; +import com.asyncapi.bindings.websockets.v0._1_0.channel.WebSocketsChannelBinding; +import com.asyncapi.bindings.websockets.v0._1_0.message.WebSocketsMessageBinding; +import com.asyncapi.bindings.websockets.v0._1_0.operation.WebSocketsOperationBinding; +import com.asyncapi.bindings.websockets.v0._1_0.server.WebSocketsServerBinding; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; + +@DisplayName("without version") +public class WebSocketsWithoutVersionTest { + + @Nested + @DisplayName("channel") + class ChannelTest extends BindingTest {{ + super.binding = WebSocketsV0_1_0Test.channelBinding(); + super.bindingTypeClass = WebSocketsChannelBinding.class; + super.pathToBindingJson = "/bindings/websockets/without version/channel/binding.json"; + super.pathToExtendedBindingJson = "/bindings/websockets/without version/channel/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/websockets/without version/channel/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("message") + class Message extends BindingTest {{ + super.binding = WebSocketsV0_1_0Test.messageBinding(); + super.bindingTypeClass = WebSocketsMessageBinding.class; + super.pathToBindingJson = "/bindings/websockets/without version/message/binding.json"; + super.pathToExtendedBindingJson = "/bindings/websockets/without version/message/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/websockets/without version/message/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("operation") + class Operation extends BindingTest {{ + super.binding = WebSocketsV0_1_0Test.operationBinding(); + super.bindingTypeClass = WebSocketsOperationBinding.class; + super.pathToBindingJson = "/bindings/websockets/without version/operation/binding.json"; + super.pathToExtendedBindingJson = "/bindings/websockets/without version/operation/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/websockets/without version/operation/binding - wrongly extended.json"; + }} + + @Nested + @DisplayName("server") + class Server extends BindingTest {{ + super.binding = WebSocketsV0_1_0Test.serverBinding(); + super.bindingTypeClass = WebSocketsServerBinding.class; + super.pathToBindingJson = "/bindings/websockets/without version/server/binding.json"; + super.pathToExtendedBindingJson = "/bindings/websockets/without version/server/binding - extended.json"; + super.pathToWronglyExtendedBindingJson = "/bindings/websockets/without version/server/binding - wrongly extended.json"; + }} + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/AnyOf.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/AnyOf.kt index 4abfebc1..06aea94c 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/AnyOf.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/AnyOf.kt @@ -1,12 +1,12 @@ package com.asyncapi.examples.v2._0_0 -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2._0_0.model.channel.ChannelItem import com.asyncapi.v2._0_0.model.channel.message.Message import com.asyncapi.v2._0_0.model.channel.operation.Operation import com.asyncapi.v2._0_0.model.component.Components import com.asyncapi.v2._0_0.model.info.Info -import com.asyncapi.v2.schema.Schema +import com.asyncapi.schemas.asyncapi.AsyncAPISchema class AnyOf: AbstractExampleValidationTest() { @@ -37,10 +37,11 @@ class AnyOf: AbstractExampleValidationTest() { return Components.builder() .messages(mapOf( Pair("testMessages", Message.builder() - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .anyOf(listOf( - Schema.builder().ref("#/components/schemas/objectWithKey").build(), - Schema.builder().ref("#/components/schemas/objectWithKey2").build(), + AsyncAPISchema.builder().ref("#/components/schemas/objectWithKey").build(), + AsyncAPISchema.builder().ref("#/components/schemas/objectWithKey2").build(), )) .build() ) @@ -48,10 +49,10 @@ class AnyOf: AbstractExampleValidationTest() { ) )) .schemas(mapOf( - Pair("objectWithKey", Schema.builder() + Pair("objectWithKey", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("key", Schema.builder() + Pair("key", AsyncAPISchema.builder() .type("string") .additionalProperties(false) .build() @@ -59,10 +60,10 @@ class AnyOf: AbstractExampleValidationTest() { )) .build() ), - Pair("objectWithKey2", Schema.builder() + Pair("objectWithKey2", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("key2", Schema.builder() + Pair("key2", AsyncAPISchema.builder() .type("string") .build() ) diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/ApplicationHeaders.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/ApplicationHeaders.kt index 0655c2dc..413032db 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/ApplicationHeaders.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/ApplicationHeaders.kt @@ -1,6 +1,6 @@ package com.asyncapi.examples.v2._0_0 -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2._0_0.model.channel.ChannelItem import com.asyncapi.v2._0_0.model.channel.Parameter import com.asyncapi.v2._0_0.model.channel.message.CorrelationId @@ -11,7 +11,7 @@ import com.asyncapi.v2._0_0.model.info.Info import com.asyncapi.v2._0_0.model.info.License import com.asyncapi.v2._0_0.model.server.Server import com.asyncapi.v2._0_0.model.server.ServerVariable -import com.asyncapi.v2.schema.Schema +import com.asyncapi.schemas.asyncapi.AsyncAPISchema import java.math.BigDecimal class ApplicationHeaders: AbstractExampleValidationTest() { @@ -55,7 +55,9 @@ class ApplicationHeaders: AbstractExampleValidationTest() { return mapOf( Pair("smartylighting/streetlights/1/0/event/{streetlightId}/lighting/measured", ChannelItem.builder() .parameters(mapOf( - Pair("streetlightId", Reference("#/components/parameters/streetlightId")) + Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ) )) .publish(Operation.builder() .summary("Inform about environmental lighting conditions of a particular streetlight.") @@ -80,13 +82,14 @@ class ApplicationHeaders: AbstractExampleValidationTest() { "\$message.header#/MQMD/CorrelId" )) .contentType("application/json") - .headers(Schema.builder() + .headers( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("MQMD", Schema.builder() + Pair("MQMD", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("CorrelId", Schema.builder() + Pair("CorrelId", AsyncAPISchema.builder() .type("string") .minLength(24) .maxLength(24) @@ -96,41 +99,41 @@ class ApplicationHeaders: AbstractExampleValidationTest() { )) .build() ), - Pair("applicationInstanceId", Schema.builder() + Pair("applicationInstanceId", AsyncAPISchema.builder() .ref("#/components/schemas/applicationInstanceId") .build() ) )) .build() ) - .payload(Schema.builder().ref("#/components/schemas/lightMeasuredPayload").build()) + .payload(AsyncAPISchema.builder().ref("#/components/schemas/lightMeasuredPayload").build()) .build() ) )) .schemas(mapOf( - Pair("lightMeasuredPayload", Schema.builder() + Pair("lightMeasuredPayload", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("lumens", Schema.builder() + Pair("lumens", AsyncAPISchema.builder() .type("integer") .minimum(BigDecimal.ZERO) .description("Light intensity measured in lumens.") .build() ), - Pair("sentAt", Schema.builder() + Pair("sentAt", AsyncAPISchema.builder() .ref("#/components/schemas/sentAt") .build() ) )) .build() ), - Pair("sentAt", Schema.builder() + Pair("sentAt", AsyncAPISchema.builder() .type("string") .format("date-time") .description("Date and time when the message was sent.") .build() ), - Pair("applicationInstanceId", Schema.builder() + Pair("applicationInstanceId", AsyncAPISchema.builder() .type("string") .description("Unique identifier for a given instance of the publishing application") .build() @@ -139,7 +142,7 @@ class ApplicationHeaders: AbstractExampleValidationTest() { .parameters(mapOf( Pair("streetlightId", Parameter.builder() .description("The ID of the streetlight.") - .schema(Schema.builder().type("string").build()) + .schema(AsyncAPISchema.builder().type("string").build()) .build() ) )) diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/CorrelationId.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/CorrelationId.kt index 34b04dde..1c40d5aa 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/CorrelationId.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/CorrelationId.kt @@ -1,6 +1,6 @@ package com.asyncapi.examples.v2._0_0 -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2._0_0.model.channel.ChannelItem import com.asyncapi.v2._0_0.model.channel.Parameter import com.asyncapi.v2._0_0.model.channel.message.CorrelationId @@ -11,15 +11,15 @@ import com.asyncapi.v2._0_0.model.info.Info import com.asyncapi.v2._0_0.model.info.License import com.asyncapi.v2._0_0.model.server.Server import com.asyncapi.v2._0_0.model.server.ServerVariable -import com.asyncapi.v2.schema.Schema -import com.asyncapi.v2.security_scheme.ApiKeySecurityScheme -import com.asyncapi.v2.security_scheme.OpenIdConnectSecurityScheme -import com.asyncapi.v2.security_scheme.oauth2.OAuth2SecurityScheme -import com.asyncapi.v2.security_scheme.oauth2.OAuthFlows -import com.asyncapi.v2.security_scheme.oauth2.flow.AuthorizationCodeOAuthFlow -import com.asyncapi.v2.security_scheme.oauth2.flow.ClientCredentialsOAuthFlow -import com.asyncapi.v2.security_scheme.oauth2.flow.ImplicitOAuthFlow -import com.asyncapi.v2.security_scheme.oauth2.flow.PasswordOAuthFlow +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.security.v2.ApiKeySecurityScheme +import com.asyncapi.schemas.asyncapi.security.v2.OpenIdConnectSecurityScheme +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.OAuth2SecurityScheme +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.OAuthFlows +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow.AuthorizationCodeOAuthFlow +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow.ClientCredentialsOAuthFlow +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow.ImplicitOAuthFlow +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow.PasswordOAuthFlow import java.math.BigDecimal class CorrelationId: AbstractExampleValidationTest() { @@ -70,7 +70,9 @@ class CorrelationId: AbstractExampleValidationTest() { return mapOf( Pair("smartylighting/streetlights/1/0/event/{streetlightId}/lighting/measured", ChannelItem.builder() .parameters(mapOf( - Pair("streetlightId", Reference("#/components/parameters/streetlightId")) + Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ) )) .publish(Operation.builder() .summary("Inform about environmental lighting conditions of a particular streetlight.") @@ -82,7 +84,9 @@ class CorrelationId: AbstractExampleValidationTest() { ), Pair("smartylighting/streetlights/1/0/action/{streetlightId}/dim", ChannelItem.builder() .parameters(mapOf( - Pair("streetlightId", Reference("#/components/parameters/streetlightId")) + Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ) )) .subscribe(Operation.builder() .operationId("dimLight") @@ -106,7 +110,7 @@ class CorrelationId: AbstractExampleValidationTest() { "\$message.header#/MQMD/CorrelId" )) .contentType("application/json") - .payload(Schema.builder().ref("#/components/schemas/lightMeasuredPayload").build()) + .payload(AsyncAPISchema.builder().ref("#/components/schemas/lightMeasuredPayload").build()) .build() ), Pair("dimLight", Message.builder() @@ -114,44 +118,44 @@ class CorrelationId: AbstractExampleValidationTest() { .title("Dim light") .summary("Command a particular streetlight to dim the lights.") .correlationId(Reference("#/components/correlationIds/sentAtCorrelator")) - .payload(Schema.builder().ref("#/components/schemas/dimLightPayload").build()) + .payload(AsyncAPISchema.builder().ref("#/components/schemas/dimLightPayload").build()) .build() ) )) .schemas(mapOf( - Pair("lightMeasuredPayload", Schema.builder() + Pair("lightMeasuredPayload", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("lumens", Schema.builder() + Pair("lumens", AsyncAPISchema.builder() .type("integer") .minimum(BigDecimal.ZERO) .description("Light intensity measured in lumens.") .build() ), - Pair("sentAt", Schema.builder() + Pair("sentAt", AsyncAPISchema.builder() .ref("#/components/schemas/sentAt") .build() ) )) .build() ), - Pair("sentAt", Schema.builder() + Pair("sentAt", AsyncAPISchema.builder() .type("string") .format("date-time") .description("Date and time when the message was sent.") .build() ), - Pair("dimLightPayload", Schema.builder() + Pair("dimLightPayload", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("percentage", Schema.builder() + Pair("percentage", AsyncAPISchema.builder() .type("integer") .minimum(BigDecimal.ZERO) .maximum(BigDecimal.valueOf(100)) .description("Percentage to which the light should be dimmed to.") .build() ), - Pair("sentAt", Schema.builder() + Pair("sentAt", AsyncAPISchema.builder() .ref("#/components/schemas/sentAt") .build() ) @@ -162,7 +166,7 @@ class CorrelationId: AbstractExampleValidationTest() { .parameters(mapOf( Pair("streetlightId", Parameter.builder() .description("The ID of the streetlight.") - .schema(Schema.builder().type("string").build()) + .schema(AsyncAPISchema.builder().type("string").build()) .build() ) )) @@ -173,56 +177,74 @@ class CorrelationId: AbstractExampleValidationTest() { )) )) .securitySchemes(mapOf( - Pair("apiKey", ApiKeySecurityScheme( - "Provide your API key as the user and leave the password empty.", - ApiKeySecurityScheme.ApiKeyLocation.USER - )), - Pair("supportedOauthFlows", OAuth2SecurityScheme( - "Flows to support OAuth 2.0", - OAuthFlows( - ImplicitOAuthFlow( - "", - mapOf( - Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), - Pair("streetlights:dim", "Ability to dim the lights"), + Pair("apiKey", + ApiKeySecurityScheme( + "Provide your API key as the user and leave the password empty.", + ApiKeySecurityScheme.ApiKeyLocation.USER + ) + ), + Pair("supportedOauthFlows", + OAuth2SecurityScheme( + "Flows to support OAuth 2.0", + OAuthFlows( + ImplicitOAuthFlow( + "", + mapOf( + Pair("streetlights:on", "Ability to switch lights on"), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), + Pair("streetlights:dim", "Ability to dim the lights"), + ), + "https://authserver.example/auth", ), - "https://authserver.example/auth", - ), - PasswordOAuthFlow( - "", - mapOf( - Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), - Pair("streetlights:dim", "Ability to dim the lights"), + PasswordOAuthFlow( + "", + mapOf( + Pair("streetlights:on", "Ability to switch lights on"), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), + Pair("streetlights:dim", "Ability to dim the lights"), + ), + "https://authserver.example/token", ), - "https://authserver.example/token", - ), - ClientCredentialsOAuthFlow( - "", - mapOf( - Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), - Pair("streetlights:dim", "Ability to dim the lights"), + ClientCredentialsOAuthFlow( + "", + mapOf( + Pair("streetlights:on", "Ability to switch lights on"), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), + Pair("streetlights:dim", "Ability to dim the lights"), + ), + "https://authserver.example/token", ), - "https://authserver.example/token", - ), - AuthorizationCodeOAuthFlow( - "https://authserver.example/refresh", - mapOf( - Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), - Pair("streetlights:dim", "Ability to dim the lights"), - ), - "https://authserver.example/auth", - "https://authserver.example/token", + AuthorizationCodeOAuthFlow( + "https://authserver.example/refresh", + mapOf( + Pair("streetlights:on", "Ability to switch lights on"), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), + Pair("streetlights:dim", "Ability to dim the lights"), + ), + "https://authserver.example/auth", + "https://authserver.example/token", + ) ) ) - )), - Pair("openIdConnectWellKnown", OpenIdConnectSecurityScheme( - null, - "https://authserver.example/.well-known" - )) + ), + Pair("openIdConnectWellKnown", + OpenIdConnectSecurityScheme( + null, + "https://authserver.example/.well-known" + ) + ) )) .build() } diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/GitterStreaming.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/GitterStreaming.kt index 9a58f547..439e7589 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/GitterStreaming.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/GitterStreaming.kt @@ -1,6 +1,6 @@ package com.asyncapi.examples.v2._0_0 -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2._0_0.model.channel.ChannelItem import com.asyncapi.v2._0_0.model.channel.Parameter import com.asyncapi.v2._0_0.model.channel.message.Message @@ -8,11 +8,10 @@ import com.asyncapi.v2._0_0.model.channel.operation.Operation import com.asyncapi.v2._0_0.model.component.Components import com.asyncapi.v2._0_0.model.info.Info import com.asyncapi.v2._0_0.model.server.Server -import com.asyncapi.v2.binding.message.http.HTTPMessageBinding -import com.asyncapi.v2.binding.operation.http.HTTPOperationBinding -import com.asyncapi.v2.binding.operation.http.HTTPOperationType -import com.asyncapi.v2.schema.Schema -import com.asyncapi.v2.security_scheme.http.HttpSecurityScheme +import com.asyncapi.bindings.http.v0._3_0.message.HTTPMessageBinding +import com.asyncapi.bindings.http.v0._3_0.operation.HTTPOperationBinding +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.security.v2.http.HttpSecurityScheme class GitterStreaming: AbstractExampleValidationTest() { @@ -47,7 +46,8 @@ class GitterStreaming: AbstractExampleValidationTest() { .parameters(mapOf( Pair("roomId", Parameter.builder() .description("Id of the Gitter room.") - .schema(Schema.builder() + .schema( + AsyncAPISchema.builder() .type("string") .examples(listOf("53307860c3599d1de448e19d")) .build() @@ -56,7 +56,8 @@ class GitterStreaming: AbstractExampleValidationTest() { ), Pair("resource", Parameter.builder() .description("The resource to consume.") - .schema(Schema.builder() + .schema( + AsyncAPISchema.builder() .type("string") .enumValue(listOf("chatMessages", "events")) .build() @@ -67,7 +68,6 @@ class GitterStreaming: AbstractExampleValidationTest() { .subscribe(Operation.builder() .bindings(mapOf( Pair("http", HTTPOperationBinding.builder() - .type(HTTPOperationType.RESPONSE) .build() ) )) @@ -83,88 +83,91 @@ class GitterStreaming: AbstractExampleValidationTest() { override fun expectedComponents(): Components? { return Components.builder() .securitySchemes(mapOf( - Pair("httpBearerToken", HttpSecurityScheme( + Pair("httpBearerToken", + HttpSecurityScheme( null, "bearer", null, - )) + ) + ) )) .messages(mapOf( Pair("chatMessage", Message.builder() .schemaFormat("application/schema+yaml;version=draft-07") .summary("A message represents an individual chat message sent to a room. They are a sub-resource of a room.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder() + Pair("id", AsyncAPISchema.builder() .type("string") .description("ID of the message.") .build() ), - Pair("text", Schema.builder() + Pair("text", AsyncAPISchema.builder() .type("string") .description("Original message in plain-text/markdown.") .build() ), - Pair("html", Schema.builder() + Pair("html", AsyncAPISchema.builder() .type("string") .description("HTML formatted message.") .build() ), - Pair("sent", Schema.builder() + Pair("sent", AsyncAPISchema.builder() .type("string") .format("date-time") .description("ISO formatted date of the message.") .build() ), - Pair("fromUser", Schema.builder() + Pair("fromUser", AsyncAPISchema.builder() .type("object") .description("User that sent the message.") .properties(mapOf( - Pair("id", Schema.builder() + Pair("id", AsyncAPISchema.builder() .type("string") .description("Gitter User ID.") .build() ), - Pair("username", Schema.builder() + Pair("username", AsyncAPISchema.builder() .type("string") .description("Gitter/GitHub username.") .build() ), - Pair("displayName", Schema.builder() + Pair("displayName", AsyncAPISchema.builder() .type("string") .description("Gitter/GitHub user real name.") .build() ), - Pair("url", Schema.builder() + Pair("url", AsyncAPISchema.builder() .type("string") .description("Path to the user on Gitter.") .build() ), - Pair("avatarUrl", Schema.builder() + Pair("avatarUrl", AsyncAPISchema.builder() .type("string") .format("uri") .description("User avatar URI.") .build() ), - Pair("avatarUrlSmall", Schema.builder() + Pair("avatarUrlSmall", AsyncAPISchema.builder() .type("string") .format("uri") .description("User avatar URI (small).") .build() ), - Pair("avatarUrlMedium", Schema.builder() + Pair("avatarUrlMedium", AsyncAPISchema.builder() .type("string") .format("uri") .description("User avatar URI (medium).") .build() ), - Pair("v", Schema.builder() + Pair("v", AsyncAPISchema.builder() .type("number") .description("Version.") .build() ), - Pair("gv", Schema.builder() + Pair("gv", AsyncAPISchema.builder() .type("string") .description("Stands for \"Gravatar version\" and is used for cache busting.") .build() @@ -172,42 +175,45 @@ class GitterStreaming: AbstractExampleValidationTest() { )) .build() ), - Pair("unread", Schema.builder() + Pair("unread", AsyncAPISchema.builder() .type("boolean") .description("Boolean that indicates if the current user has read the message.") .build() ), - Pair("readBy", Schema.builder() + Pair("readBy", AsyncAPISchema.builder() .type("number") .description("Number of users that have read the message.") .build() ), - Pair("urls", Schema.builder() + Pair("urls", AsyncAPISchema.builder() .type("array") .description("List of URLs present in the message.") - .items(Schema.builder() + .items( + AsyncAPISchema.builder() .type("string") .format("uri") .build()) .build() ), - Pair("mentions", Schema.builder() + Pair("mentions", AsyncAPISchema.builder() .type("array") .description("List of @Mentions in the message.") - .items(Schema.builder() + .items( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("screenName", Schema.builder() + Pair("screenName", AsyncAPISchema.builder() .type("string") .build() ), - Pair("userId", Schema.builder() + Pair("userId", AsyncAPISchema.builder() .type("string") .build() ), - Pair("userIds", Schema.builder() + Pair("userIds", AsyncAPISchema.builder() .type("array") - .items(Schema.builder() + .items( + AsyncAPISchema.builder() .type("string") .build()) .build() @@ -216,29 +222,30 @@ class GitterStreaming: AbstractExampleValidationTest() { .build()) .build() ), - Pair("issues", Schema.builder() + Pair("issues", AsyncAPISchema.builder() .type("array") .description("List of #Issues referenced in the message.") - .items(Schema.builder() + .items( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("number", Schema.builder().type("string").build()) + Pair("number", AsyncAPISchema.builder().type("string").build()) )) .build()) .build() ), - Pair("meta", Schema.builder() + Pair("meta", AsyncAPISchema.builder() .type("array") .description("Metadata. This is currently not used for anything.") - .items(Schema.builder().build()) + .items(AsyncAPISchema.builder().build()) .build() ), - Pair("v", Schema.builder() + Pair("v", AsyncAPISchema.builder() .type("number") .description("Version.") .build() ), - Pair("gv", Schema.builder() + Pair("gv", AsyncAPISchema.builder() .type("string") .description("Stands for \"Gravatar version\" and is used for cache busting.") .build() @@ -248,15 +255,16 @@ class GitterStreaming: AbstractExampleValidationTest() { ) .bindings(mapOf( Pair("http", HTTPMessageBinding.builder() - .headers(Schema.builder() + .headers( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("Transfer-Encoding", Schema.builder() + Pair("Transfer-Encoding", AsyncAPISchema.builder() .type("string") .constValue("chunked") .build() ), - Pair("Trailer", Schema.builder() + Pair("Trailer", AsyncAPISchema.builder() .type("string") .constValue("\\r\\n") .build() @@ -271,22 +279,24 @@ class GitterStreaming: AbstractExampleValidationTest() { Pair("heartbeat", Message.builder() .schemaFormat("application/schema+yaml;version=draft-07") .summary("Its purpose is to keep the connection alive.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("string") .enumValue(listOf("\r\n")) .build() ) .bindings(mapOf( Pair("http", HTTPMessageBinding.builder() - .headers(Schema.builder() + .headers( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("Transfer-Encoding", Schema.builder() + Pair("Transfer-Encoding", AsyncAPISchema.builder() .type("string") .constValue("chunked") .build() ), - Pair("Trailer", Schema.builder() + Pair("Trailer", AsyncAPISchema.builder() .type("string") .constValue("\\r\\n") .build() diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/Mercure.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/Mercure.kt index 20b03054..37528d3b 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/Mercure.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/Mercure.kt @@ -1,6 +1,6 @@ package com.asyncapi.examples.v2._0_0 -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2._0_0.model.ExternalDocumentation import com.asyncapi.v2._0_0.model.channel.ChannelItem import com.asyncapi.v2._0_0.model.channel.Parameter @@ -9,7 +9,7 @@ import com.asyncapi.v2._0_0.model.channel.operation.Operation import com.asyncapi.v2._0_0.model.component.Components import com.asyncapi.v2._0_0.model.info.Info import com.asyncapi.v2._0_0.model.server.Server -import com.asyncapi.v2.schema.Schema +import com.asyncapi.schemas.asyncapi.AsyncAPISchema class Mercure: AbstractExampleValidationTest() { @@ -41,7 +41,8 @@ class Mercure: AbstractExampleValidationTest() { .description("Every time a resource of type `http://schema.org/Book` is created or modified, a JSON-LD representation of the new version of this resource must be pushed in this Mercure topic.") .parameters(mapOf( Pair("id", Parameter.builder() - .schema(Schema.builder() + .schema( + AsyncAPISchema.builder() .type("integer") .build() ) @@ -70,28 +71,29 @@ class Mercure: AbstractExampleValidationTest() { null, "https://schema.org/Book" )) - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("@id", Schema.builder() + Pair("@id", AsyncAPISchema.builder() .type("string") .format("iri-reference") .build() ), - Pair("@type", Schema.builder() + Pair("@type", AsyncAPISchema.builder() .type("string") .format("iri-reference") .build() ), - Pair("name", Schema.builder() + Pair("name", AsyncAPISchema.builder() .type("string") .build() ), - Pair("isbn", Schema.builder() + Pair("isbn", AsyncAPISchema.builder() .type("string") .build() ), - Pair("abstract", Schema.builder() + Pair("abstract", AsyncAPISchema.builder() .type("string") .build() ), diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/Not.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/Not.kt index bc74b729..cd1fdc16 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/Not.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/Not.kt @@ -1,12 +1,12 @@ package com.asyncapi.examples.v2._0_0 -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2._0_0.model.channel.ChannelItem import com.asyncapi.v2._0_0.model.channel.message.Message import com.asyncapi.v2._0_0.model.channel.operation.Operation import com.asyncapi.v2._0_0.model.component.Components import com.asyncapi.v2._0_0.model.info.Info -import com.asyncapi.v2.schema.Schema +import com.asyncapi.schemas.asyncapi.AsyncAPISchema class Not: AbstractExampleValidationTest() { @@ -37,16 +37,16 @@ class Not: AbstractExampleValidationTest() { return Components.builder() .messages(mapOf( Pair("testMessages", Message.builder() - .payload(Schema.builder().ref("#/components/schemas/testSchema").build()) + .payload(AsyncAPISchema.builder().ref("#/components/schemas/testSchema").build()) .build() ) )) .schemas(mapOf( - Pair("testSchema", Schema.builder() + Pair("testSchema", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("key", Schema.builder() - .not(Schema.builder().type("integer").build()) + Pair("key", AsyncAPISchema.builder() + .not(AsyncAPISchema.builder().type("integer").build()) .build() ) )) diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/OneOf.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/OneOf.kt index d37188e7..95f7f41e 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/OneOf.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/OneOf.kt @@ -1,12 +1,12 @@ package com.asyncapi.examples.v2._0_0 -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2._0_0.model.channel.ChannelItem import com.asyncapi.v2._0_0.model.channel.message.Message import com.asyncapi.v2._0_0.model.channel.operation.Operation import com.asyncapi.v2._0_0.model.component.Components import com.asyncapi.v2._0_0.model.info.Info -import com.asyncapi.v2.schema.Schema +import com.asyncapi.schemas.asyncapi.AsyncAPISchema class OneOf: AbstractExampleValidationTest() { @@ -34,7 +34,7 @@ class OneOf: AbstractExampleValidationTest() { .subscribe(Operation.builder() // TODO: add OneOfMessage to 2.0.0 .message(Message.builder() - .payload(Schema.builder().ref("#/components/schemas/objectWithKey").build()) + .payload(AsyncAPISchema.builder().ref("#/components/schemas/objectWithKey").build()) .build()) .build() ) @@ -47,39 +47,40 @@ class OneOf: AbstractExampleValidationTest() { return Components.builder() .messages(mapOf( Pair("testMessages", Message.builder() - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .oneOf(listOf( - Schema.builder().ref("#/components/schemas/objectWithKey").build(), - Schema.builder().ref("#/components/schemas/objectWithKey2").build() + AsyncAPISchema.builder().ref("#/components/schemas/objectWithKey").build(), + AsyncAPISchema.builder().ref("#/components/schemas/objectWithKey2").build() )) .build() ) .build() ), Pair("testMessage1", Message.builder() - .payload(Schema.builder().ref("#/components/schemas/objectWithKey").build()) + .payload(AsyncAPISchema.builder().ref("#/components/schemas/objectWithKey").build()) .build() ), Pair("testMessage2", Message.builder() - .payload(Schema.builder().ref("#/components/schemas/objectWithKey2").build()) + .payload(AsyncAPISchema.builder().ref("#/components/schemas/objectWithKey2").build()) .build() ) )) .schemas(mapOf( - Pair("objectWithKey", Schema.builder() + Pair("objectWithKey", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("key", Schema.builder() + Pair("key", AsyncAPISchema.builder() .type("string") .build() ) )) .build() ), - Pair("objectWithKey2", Schema.builder() + Pair("objectWithKey2", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("key2", Schema.builder() + Pair("key2", AsyncAPISchema.builder() .type("string") .build() ) diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/OperationSecurity.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/OperationSecurity.kt index 61a0dc3c..d8954f5f 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/OperationSecurity.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/OperationSecurity.kt @@ -1,18 +1,17 @@ package com.asyncapi.examples.v2._0_0 -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference +import com.asyncapi.bindings.http.v0._3_0.operation.HTTPOperationBinding +import com.asyncapi.bindings.http.v0._3_0.operation.HTTPOperationMethod import com.asyncapi.v2._0_0.model.channel.ChannelItem import com.asyncapi.v2._0_0.model.channel.message.Message import com.asyncapi.v2._0_0.model.channel.operation.Operation import com.asyncapi.v2._0_0.model.component.Components import com.asyncapi.v2._0_0.model.info.Info -import com.asyncapi.v2.binding.operation.http.HTTPOperationBinding -import com.asyncapi.v2.binding.operation.http.HTTPOperationMethod -import com.asyncapi.v2.binding.operation.http.HTTPOperationType -import com.asyncapi.v2.schema.Schema -import com.asyncapi.v2.security_scheme.oauth2.OAuthFlows -import com.asyncapi.v2.security_scheme.oauth2.OAuth2SecurityScheme -import com.asyncapi.v2.security_scheme.oauth2.flow.ClientCredentialsOAuthFlow +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.OAuth2SecurityScheme +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.OAuthFlows +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow.ClientCredentialsOAuthFlow class OperationSecurity: AbstractExampleValidationTest() { @@ -36,7 +35,6 @@ class OperationSecurity: AbstractExampleValidationTest() { .message(Reference("#/components/messages/message")) .bindings(mapOf( Pair("http", HTTPOperationBinding.builder() - .type(HTTPOperationType.REQUEST) .method(HTTPOperationMethod.POST) .build()) )) @@ -51,10 +49,11 @@ class OperationSecurity: AbstractExampleValidationTest() { return Components.builder() .messages(mapOf( Pair("message", Message.builder() - .headers(Schema.builder() + .headers( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("X-SIGNATURE", Schema.builder() + Pair("X-SIGNATURE", AsyncAPISchema.builder() .type("string") .description("ECC message signature") .build() @@ -62,14 +61,15 @@ class OperationSecurity: AbstractExampleValidationTest() { )) .build() ) - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("metadata", Schema.builder() + Pair("metadata", AsyncAPISchema.builder() .ref("#/components/schemas/MetaData") .build() ), - Pair("notification", Schema.builder() + Pair("notification", AsyncAPISchema.builder() .ref("#/components/schemas/Notification") .build() ) @@ -80,20 +80,20 @@ class OperationSecurity: AbstractExampleValidationTest() { ) )) .schemas(mapOf( - Pair("MetaData", Schema.builder() + Pair("MetaData", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("topic", Schema.builder() + Pair("topic", AsyncAPISchema.builder() .type("string") .description("Topic subscribed to.") .build() ), - Pair("schemaVersion", Schema.builder() + Pair("schemaVersion", AsyncAPISchema.builder() .type("string") .description("The schema for this topic.") .build() ), - Pair("deprecated", Schema.builder() + Pair("deprecated", AsyncAPISchema.builder() .type("boolean") .description("If this is a deprecated schema or topic.") .defaultValue("false") @@ -102,61 +102,61 @@ class OperationSecurity: AbstractExampleValidationTest() { )) .build() ), - Pair("Notification", Schema.builder() + Pair("Notification", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("notificationId", Schema.builder() + Pair("notificationId", AsyncAPISchema.builder() .type("string") .description("The notification Id.") .build() ), - Pair("eventDate", Schema.builder() + Pair("eventDate", AsyncAPISchema.builder() .type("string") .description("The event date associated with this notification in UTC.") .build() ), - Pair("publishDate", Schema.builder() + Pair("publishDate", AsyncAPISchema.builder() .type("string") .description("The message publish date in UTC.") .build() ), - Pair("publishAttemptCount", Schema.builder() + Pair("publishAttemptCount", AsyncAPISchema.builder() .type("integer") .description("The number of attempts made to publish this message.") .build() ), - Pair("publishAttemptCount", Schema.builder() + Pair("publishAttemptCount", AsyncAPISchema.builder() .type("integer") .description("The number of attempts made to publish this message.") .build() ), - Pair("data", Schema.builder() + Pair("data", AsyncAPISchema.builder() .ref("#/components/schemas/AuthorizationRevocationData") .build() ) )) .build() ), - Pair("AuthorizationRevocationData", Schema.builder() + Pair("AuthorizationRevocationData", AsyncAPISchema.builder() .type("object") .description("The Authorization Revocation payload.") .properties(mapOf( - Pair("username", Schema.builder() + Pair("username", AsyncAPISchema.builder() .type("string") .description("The username for the user.") .build() ), - Pair("userId", Schema.builder() + Pair("userId", AsyncAPISchema.builder() .type("string") .description("The immutable public userId for the user") .build() ), - Pair("eiasToken", Schema.builder() + Pair("eiasToken", AsyncAPISchema.builder() .type("string") .description("The legacy eiasToken specific to the user") .build() ), - Pair("revokeReason", Schema.builder() + Pair("revokeReason", AsyncAPISchema.builder() .type("string") .enumValue(listOf( "REVOKED_BY_APP", @@ -167,7 +167,7 @@ class OperationSecurity: AbstractExampleValidationTest() { .description("The reason for authorization revocation") .build() ), - Pair("revocationDate", Schema.builder() + Pair("revocationDate", AsyncAPISchema.builder() .type("string") .description("Date and time when the authorization was revoked") .build() @@ -177,19 +177,26 @@ class OperationSecurity: AbstractExampleValidationTest() { ), )) .securitySchemes(mapOf( - Pair("petstore_auth", OAuth2SecurityScheme( + Pair("petstore_auth", + OAuth2SecurityScheme( "The oauth security descriptions", OAuthFlows( - null, - null, - ClientCredentialsOAuthFlow( - "", - mapOf(Pair("subscribe:auth_revocations", "Scope required for authorization revocation topic")), - "https://example.com/api/oauth/dialog" + null, + null, + ClientCredentialsOAuthFlow( + "", + mapOf( + Pair( + "subscribe:auth_revocations", + "Scope required for authorization revocation topic" + ) ), - null + "https://example.com/api/oauth/dialog" + ), + null ), - )) + ) + ) )) .build() } diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/RpcClient.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/RpcClient.kt index d9f43432..9dcab8e6 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/RpcClient.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/RpcClient.kt @@ -8,11 +8,11 @@ import com.asyncapi.v2._0_0.model.channel.operation.Operation import com.asyncapi.v2._0_0.model.component.Components import com.asyncapi.v2._0_0.model.info.Info import com.asyncapi.v2._0_0.model.server.Server -import com.asyncapi.v2.binding.channel.amqp.AMQPChannelBinding -import com.asyncapi.v2.binding.channel.amqp.AMQPChannelType -import com.asyncapi.v2.binding.channel.amqp.queue.AMQPChannelQueueProperties -import com.asyncapi.v2.binding.operation.amqp.AMQPOperationBinding -import com.asyncapi.v2.schema.Schema +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelBinding +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelType +import com.asyncapi.bindings.amqp.v0._3_0.channel.queue.AMQPChannelQueueProperties +import com.asyncapi.bindings.amqp.v0._3_0.operation.AMQPOperationBinding +import com.asyncapi.schemas.asyncapi.AsyncAPISchema class RpcClient: AbstractExampleValidationTest() { @@ -46,7 +46,8 @@ class RpcClient: AbstractExampleValidationTest() { Pair("{queue}", ChannelItem.builder() .parameters(mapOf( Pair("queue", Parameter.builder() - .schema(Schema.builder() + .schema( + AsyncAPISchema.builder() .type("string") .pattern("^amq\\\\.gen\\\\-.+\$") .build()) @@ -73,10 +74,11 @@ class RpcClient: AbstractExampleValidationTest() { )) .message(Message.builder() .correlationId(CorrelationId(null, "\$message.header#/correlation_id")) - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("result", Schema.builder() + Pair("result", AsyncAPISchema.builder() .type("number") .examples(listOf(7)) .build()) @@ -110,12 +112,13 @@ class RpcClient: AbstractExampleValidationTest() { )) .message(Message.builder() .correlationId(CorrelationId(null, "\$message.header#/correlation_id")) - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("numbers", Schema.builder() + Pair("numbers", AsyncAPISchema.builder() .type("array") - .items(Schema.builder().type("number").build()) + .items(AsyncAPISchema.builder().type("number").build()) .examples(listOf(listOf(4, 3))) .build()) )) diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/RpcServer.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/RpcServer.kt index 01f305a7..a987b133 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/RpcServer.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/RpcServer.kt @@ -8,11 +8,11 @@ import com.asyncapi.v2._0_0.model.channel.operation.Operation import com.asyncapi.v2._0_0.model.component.Components import com.asyncapi.v2._0_0.model.info.Info import com.asyncapi.v2._0_0.model.server.Server -import com.asyncapi.v2.binding.channel.amqp.AMQPChannelBinding -import com.asyncapi.v2.binding.channel.amqp.AMQPChannelType -import com.asyncapi.v2.binding.channel.amqp.queue.AMQPChannelQueueProperties -import com.asyncapi.v2.binding.operation.amqp.AMQPOperationBinding -import com.asyncapi.v2.schema.Schema +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelBinding +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelType +import com.asyncapi.bindings.amqp.v0._3_0.channel.queue.AMQPChannelQueueProperties +import com.asyncapi.bindings.amqp.v0._3_0.operation.AMQPOperationBinding +import com.asyncapi.schemas.asyncapi.AsyncAPISchema class RpcServer: AbstractExampleValidationTest() { @@ -46,7 +46,8 @@ class RpcServer: AbstractExampleValidationTest() { Pair("{queue}", ChannelItem.builder() .parameters(mapOf( Pair("queue", Parameter.builder() - .schema(Schema.builder() + .schema( + AsyncAPISchema.builder() .type("string") .pattern("^amq\\\\.gen\\\\-.+\$") .build()) @@ -73,10 +74,11 @@ class RpcServer: AbstractExampleValidationTest() { )) .message(Message.builder() .correlationId(CorrelationId(null, "\$message.header#/correlation_id")) - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("result", Schema.builder() + Pair("result", AsyncAPISchema.builder() .type("number") .examples(listOf(7)) .build()) @@ -104,12 +106,13 @@ class RpcServer: AbstractExampleValidationTest() { .operationId("sum") .message(Message.builder() .correlationId(CorrelationId(null, "\$message.header#/correlation_id")) - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("numbers", Schema.builder() + Pair("numbers", AsyncAPISchema.builder() .type("array") - .items(Schema.builder().type("number").build()) + .items(AsyncAPISchema.builder().type("number").build()) .examples(listOf(listOf(4, 3))) .build()) )) diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/Simple.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/Simple.kt index 26eb0567..f49e60f1 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/Simple.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/Simple.kt @@ -1,12 +1,12 @@ package com.asyncapi.examples.v2._0_0 -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2._0_0.model.channel.ChannelItem import com.asyncapi.v2._0_0.model.channel.message.Message import com.asyncapi.v2._0_0.model.channel.operation.Operation import com.asyncapi.v2._0_0.model.component.Components import com.asyncapi.v2._0_0.model.info.Info -import com.asyncapi.v2.schema.Schema +import com.asyncapi.schemas.asyncapi.AsyncAPISchema class Simple: AbstractExampleValidationTest() { @@ -38,15 +38,16 @@ class Simple: AbstractExampleValidationTest() { return Components.builder() .messages(mapOf( Pair("UserSignedUp", Message.builder() - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("displayName", Schema.builder() + Pair("displayName", AsyncAPISchema.builder() .type("string") .description("Name of the user") .build() ), - Pair("email", Schema.builder() + Pair("email", AsyncAPISchema.builder() .type("string") .format("email") .description("Email of the user") diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/SlackRtm.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/SlackRtm.kt index fa086a3e..e9c38b85 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/SlackRtm.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/SlackRtm.kt @@ -1,14 +1,14 @@ package com.asyncapi.examples.v2._0_0 -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2._0_0.model.channel.ChannelItem import com.asyncapi.v2._0_0.model.channel.message.Message import com.asyncapi.v2._0_0.model.channel.operation.Operation import com.asyncapi.v2._0_0.model.component.Components import com.asyncapi.v2._0_0.model.info.Info import com.asyncapi.v2._0_0.model.server.Server -import com.asyncapi.v2.schema.Schema -import com.asyncapi.v2.security_scheme.http.HttpApiKeySecurityScheme +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.security.v2.http.HttpApiKeySecurityScheme class SlackRtm: AbstractExampleValidationTest() { @@ -59,70 +59,73 @@ class SlackRtm: AbstractExampleValidationTest() { override fun expectedComponents(): Components? { return Components.builder() .securitySchemes(mapOf( - Pair("token", HttpApiKeySecurityScheme( - null, - "token", - HttpApiKeySecurityScheme.ApiKeyLocation.QUERY - )) + Pair("token", + HttpApiKeySecurityScheme( + null, + "token", + HttpApiKeySecurityScheme.ApiKeyLocation.QUERY + ) + ) )) .schemas(mapOf( Pair("attachment", - Schema.builder() + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("fallback", Schema.builder() + Pair("fallback", AsyncAPISchema.builder() .type("string") .build() ), - Pair("color", Schema.builder() + Pair("color", AsyncAPISchema.builder() .type("string") .build() ), - Pair("pretext", Schema.builder() + Pair("pretext", AsyncAPISchema.builder() .type("string") .build() ), - Pair("author_name", Schema.builder() + Pair("author_name", AsyncAPISchema.builder() .type("string") .build() ), - Pair("author_link", Schema.builder() + Pair("author_link", AsyncAPISchema.builder() .type("string") .format("uri") .build() ), - Pair("author_icon", Schema.builder() + Pair("author_icon", AsyncAPISchema.builder() .type("string") .format("uri") .build() ), - Pair("title", Schema.builder() + Pair("title", AsyncAPISchema.builder() .type("string") .build() ), - Pair("title_link", Schema.builder() + Pair("title_link", AsyncAPISchema.builder() .type("string") .format("uri") .build() ), - Pair("text", Schema.builder() + Pair("text", AsyncAPISchema.builder() .type("string") .build() ), - Pair("fields", Schema.builder() + Pair("fields", AsyncAPISchema.builder() .type("array") - .items(Schema.builder() + .items( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("title", Schema.builder() + Pair("title", AsyncAPISchema.builder() .type("string") .build() ), - Pair("value", Schema.builder() + Pair("value", AsyncAPISchema.builder() .type("string") .build() ), - Pair("short", Schema.builder() + Pair("short", AsyncAPISchema.builder() .type("boolean") .build() ), @@ -131,26 +134,26 @@ class SlackRtm: AbstractExampleValidationTest() { ) .build() ), - Pair("image_url", Schema.builder() + Pair("image_url", AsyncAPISchema.builder() .type("string") .format("uri") .build() ), - Pair("thumb_url", Schema.builder() + Pair("thumb_url", AsyncAPISchema.builder() .type("string") .format("uri") .build() ), - Pair("footer", Schema.builder() + Pair("footer", AsyncAPISchema.builder() .type("string") .build() ), - Pair("footer_icon", Schema.builder() + Pair("footer_icon", AsyncAPISchema.builder() .type("string") .format("uri") .build() ), - Pair("ts", Schema.builder() + Pair("ts", AsyncAPISchema.builder() .type("number") .build() ), @@ -162,10 +165,11 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("hello", Message.builder() .summary("First event received upon connection.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("hello")) .build() @@ -178,19 +182,20 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("connectionError", Message.builder() .summary("Event received when a connection error happens.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("error")) .build() ), - Pair("error", Schema.builder() + Pair("error", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("code", Schema.builder().type("number").build()), - Pair("msg", Schema.builder().type("string").build()), + Pair("code", AsyncAPISchema.builder().type("number").build()), + Pair("msg", AsyncAPISchema.builder().type("string").build()), )) .build() ) @@ -202,10 +207,11 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("accountsChanged", Message.builder() .summary("The list of accounts a user is signed into has changed.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("accounts_changed")) .build() @@ -218,32 +224,33 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("botAdded", Message.builder() .summary("A bot user was added.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("bot_added")) .build() ), - Pair("bot", Schema.builder() + Pair("bot", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder() + Pair("id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("app_id", Schema.builder() + Pair("app_id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("name", Schema.builder() + Pair("name", AsyncAPISchema.builder() .type("string") .build() ), - Pair("icons", Schema.builder() + Pair("icons", AsyncAPISchema.builder() .type("object") - .additionalProperties(Schema.builder().type("string").build()) + .additionalProperties(AsyncAPISchema.builder().type("string").build()) .build() ) )) @@ -257,32 +264,33 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("botChanged", Message.builder() .summary("A bot user was changed.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("bot_added")) .build() ), - Pair("bot", Schema.builder() + Pair("bot", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder() + Pair("id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("app_id", Schema.builder() + Pair("app_id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("name", Schema.builder() + Pair("name", AsyncAPISchema.builder() .type("string") .build() ), - Pair("icons", Schema.builder() + Pair("icons", AsyncAPISchema.builder() .type("object") - .additionalProperties(Schema.builder().type("string").build()) + .additionalProperties(AsyncAPISchema.builder().type("string").build()) .build() ) )) @@ -296,19 +304,20 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("channelArchive", Message.builder() .summary("A channel was archived.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("channel_archive")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), - Pair("user", Schema.builder() + Pair("user", AsyncAPISchema.builder() .type("string") .build() ), @@ -320,30 +329,31 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("channelCreated", Message.builder() .summary("A channel was created.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("channel_created")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder() + Pair("id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("name", Schema.builder() + Pair("name", AsyncAPISchema.builder() .type("string") .build() ), - Pair("created", Schema.builder() + Pair("created", AsyncAPISchema.builder() .type("number") .build() ), - Pair("creator", Schema.builder() + Pair("creator", AsyncAPISchema.builder() .type("string") .build() ) @@ -358,15 +368,16 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("channelDeleted", Message.builder() .summary("A channel was deleted.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("channel_deleted")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ) @@ -378,23 +389,24 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("channelHistoryChanged", Message.builder() .summary("Bulk updates were made to a channel's history.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("channel_history_changed")) .build() ), - Pair("latest", Schema.builder() + Pair("latest", AsyncAPISchema.builder() .type("string") .build() ), - Pair("ts", Schema.builder() + Pair("ts", AsyncAPISchema.builder() .type("string") .build() ), - Pair("event_ts", Schema.builder() + Pair("event_ts", AsyncAPISchema.builder() .type("string") .build() ) @@ -406,30 +418,31 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("channelJoined", Message.builder() .summary("You joined a channel.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("channel_joined")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder() + Pair("id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("name", Schema.builder() + Pair("name", AsyncAPISchema.builder() .type("string") .build() ), - Pair("created", Schema.builder() + Pair("created", AsyncAPISchema.builder() .type("number") .build() ), - Pair("creator", Schema.builder() + Pair("creator", AsyncAPISchema.builder() .type("string") .build() ) @@ -444,15 +457,16 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("channelLeft", Message.builder() .summary("You left a channel.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("channel_left")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ) @@ -464,19 +478,20 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("channelMarked", Message.builder() .summary("Your channel read marker was updated.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("channel_marked")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), - Pair("ts", Schema.builder() + Pair("ts", AsyncAPISchema.builder() .type("string") .build() ) @@ -488,26 +503,27 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("channelRename", Message.builder() .summary("A channel was renamed.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("channel_rename")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder() + Pair("id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("name", Schema.builder() + Pair("name", AsyncAPISchema.builder() .type("string") .build() ), - Pair("created", Schema.builder() + Pair("created", AsyncAPISchema.builder() .type("number") .build() ) @@ -522,19 +538,20 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("channelUnarchive", Message.builder() .summary("A channel was unarchived.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("channel_unarchive")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), - Pair("user", Schema.builder() + Pair("user", AsyncAPISchema.builder() .type("string") .build() ), @@ -546,15 +563,16 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("commandsChanged", Message.builder() .summary("A slash command has been added or changed.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("commands_changed")) .build() ), - Pair("event_ts", Schema.builder() + Pair("event_ts", AsyncAPISchema.builder() .type("string") .build() ) @@ -566,38 +584,39 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("dndUpdated", Message.builder() .summary("Do not Disturb settings changed for the current user.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("dnd_updated")) .build() ), - Pair("user", Schema.builder() + Pair("user", AsyncAPISchema.builder() .type("string") .build() ), - Pair("dnd_status", Schema.builder() + Pair("dnd_status", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("dnd_enabled", Schema.builder() + Pair("dnd_enabled", AsyncAPISchema.builder() .type("boolean") .build() ), - Pair("next_dnd_start_ts", Schema.builder() + Pair("next_dnd_start_ts", AsyncAPISchema.builder() .type("number") .build() ), - Pair("next_dnd_end_ts", Schema.builder() + Pair("next_dnd_end_ts", AsyncAPISchema.builder() .type("number") .build() ), - Pair("snooze_enabled", Schema.builder() + Pair("snooze_enabled", AsyncAPISchema.builder() .type("boolean") .build() ), - Pair("snooze_endtime", Schema.builder() + Pair("snooze_endtime", AsyncAPISchema.builder() .type("number") .build() ) @@ -612,30 +631,31 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("dndUpdatedUser", Message.builder() .summary("Do not Disturb settings changed for a member.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("dnd_updated_user")) .build() ), - Pair("user", Schema.builder() + Pair("user", AsyncAPISchema.builder() .type("string") .build() ), - Pair("dnd_status", Schema.builder() + Pair("dnd_status", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("dnd_enabled", Schema.builder() + Pair("dnd_enabled", AsyncAPISchema.builder() .type("boolean") .build() ), - Pair("next_dnd_start_ts", Schema.builder() + Pair("next_dnd_start_ts", AsyncAPISchema.builder() .type("number") .build() ), - Pair("next_dnd_end_ts", Schema.builder() + Pair("next_dnd_end_ts", AsyncAPISchema.builder() .type("number") .build() ) @@ -650,19 +670,20 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("emailDomainChanged", Message.builder() .summary("The workspace email domain has changed.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("email_domain_changed")) .build() ), - Pair("email_domain", Schema.builder() + Pair("email_domain", AsyncAPISchema.builder() .type("string") .build() ), - Pair("event_ts", Schema.builder() + Pair("event_ts", AsyncAPISchema.builder() .type("string") .build() ), @@ -674,25 +695,26 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("emojiRemoved", Message.builder() .summary("A custom emoji has been removed.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("emoji_changed")) .build() ), - Pair("subtype", Schema.builder() + Pair("subtype", AsyncAPISchema.builder() .type("string") .enumValue(listOf("remove")) .build() ), - Pair("names", Schema.builder() + Pair("names", AsyncAPISchema.builder() .type("array") - .items(Schema.builder().type("string").build()) + .items(AsyncAPISchema.builder().type("string").build()) .build() ), - Pair("event_ts", Schema.builder() + Pair("event_ts", AsyncAPISchema.builder() .type("string") .build() ), @@ -704,29 +726,30 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("emojiAdded", Message.builder() .summary("A custom emoji has been added.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("emoji_changed")) .build() ), - Pair("subtype", Schema.builder() + Pair("subtype", AsyncAPISchema.builder() .type("string") .enumValue(listOf("add")) .build() ), - Pair("name", Schema.builder() + Pair("name", AsyncAPISchema.builder() .type("string") .build() ), - Pair("value", Schema.builder() + Pair("value", AsyncAPISchema.builder() .type("string") .format("uri") .build() ), - Pair("event_ts", Schema.builder() + Pair("event_ts", AsyncAPISchema.builder() .type("string") .build() ), @@ -738,22 +761,23 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("fileChange", Message.builder() .summary("A file was changed.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("file_change")) .build() ), - Pair("file_id", Schema.builder() + Pair("file_id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("file", Schema.builder() + Pair("file", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder().type("string").build()), + Pair("id", AsyncAPISchema.builder().type("string").build()), )) .build() ), @@ -765,23 +789,26 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("fileCommentAdded", Message.builder() .summary("A file comment was added.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("file_comment_added")) .build() ), - Pair("comment", Schema()), - Pair("file_id", Schema.builder() + Pair("comment", + AsyncAPISchema() + ), + Pair("file_id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("file", Schema.builder() + Pair("file", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder().type("string").build()), + Pair("id", AsyncAPISchema.builder().type("string").build()), )) .build() ), @@ -793,26 +820,27 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("fileCommentDeleted", Message.builder() .summary("A file comment was deleted.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("file_comment_deleted")) .build() ), - Pair("comment", Schema.builder() + Pair("comment", AsyncAPISchema.builder() .type("string") .build() ), - Pair("file_id", Schema.builder() + Pair("file_id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("file", Schema.builder() + Pair("file", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder().type("string").build()), + Pair("id", AsyncAPISchema.builder().type("string").build()), )) .build() ), @@ -824,23 +852,26 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("fileCommentEdited", Message.builder() .summary("A file comment was edited.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("file_comment_edited")) .build() ), - Pair("comment", Schema()), - Pair("file_id", Schema.builder() + Pair("comment", + AsyncAPISchema() + ), + Pair("file_id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("file", Schema.builder() + Pair("file", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder().type("string").build()), + Pair("id", AsyncAPISchema.builder().type("string").build()), )) .build() ), @@ -852,22 +883,23 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("fileCreated", Message.builder() .summary("A file was created.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("file_created")) .build() ), - Pair("file_id", Schema.builder() + Pair("file_id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("file", Schema.builder() + Pair("file", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder().type("string").build()), + Pair("id", AsyncAPISchema.builder().type("string").build()), )) .build() ), @@ -879,19 +911,20 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("fileDeleted", Message.builder() .summary("A file was deleted.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("file_deleted")) .build() ), - Pair("file_id", Schema.builder() + Pair("file_id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("event_ts", Schema.builder() + Pair("event_ts", AsyncAPISchema.builder() .type("string") .build() ), @@ -903,22 +936,23 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("filePublic", Message.builder() .summary("A file was made public.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("file_public")) .build() ), - Pair("file_id", Schema.builder() + Pair("file_id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("file", Schema.builder() + Pair("file", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder().type("string").build()), + Pair("id", AsyncAPISchema.builder().type("string").build()), )) .build() ), @@ -930,22 +964,23 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("fileShared", Message.builder() .summary("A file was shared.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("file_shared")) .build() ), - Pair("file_id", Schema.builder() + Pair("file_id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("file", Schema.builder() + Pair("file", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder().type("string").build()), + Pair("id", AsyncAPISchema.builder().type("string").build()), )) .build() ), @@ -957,22 +992,23 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("fileUnshared", Message.builder() .summary("A file was unshared.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("file_unshared")) .build() ), - Pair("file_id", Schema.builder() + Pair("file_id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("file", Schema.builder() + Pair("file", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder().type("string").build()), + Pair("id", AsyncAPISchema.builder().type("string").build()), )) .build() ), @@ -984,10 +1020,11 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("goodbye", Message.builder() .summary("The server intends to close the connection soon.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("goodbye")) .build() @@ -1000,15 +1037,16 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("groupArchive", Message.builder() .summary("A private channel was archived.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("group_archive")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), @@ -1020,19 +1058,20 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("groupClose", Message.builder() .summary("You closed a private channel.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("group_close")) .build() ), - Pair("user", Schema.builder() + Pair("user", AsyncAPISchema.builder() .type("string") .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), @@ -1044,23 +1083,24 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("groupHistoryChanged", Message.builder() .summary("Bulk updates were made to a private channel's history.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("group_history_changed")) .build() ), - Pair("latest", Schema.builder() + Pair("latest", AsyncAPISchema.builder() .type("string") .build() ), - Pair("ts", Schema.builder() + Pair("ts", AsyncAPISchema.builder() .type("string") .build() ), - Pair("event_ts", Schema.builder() + Pair("event_ts", AsyncAPISchema.builder() .type("string") .build() ), @@ -1072,30 +1112,31 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("groupJoined", Message.builder() .summary("You joined a private channel.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("group_joined")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder() + Pair("id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("name", Schema.builder() + Pair("name", AsyncAPISchema.builder() .type("string") .build() ), - Pair("created", Schema.builder() + Pair("created", AsyncAPISchema.builder() .type("number") .build() ), - Pair("creator", Schema.builder() + Pair("creator", AsyncAPISchema.builder() .type("string") .build() ), @@ -1110,15 +1151,16 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("groupLeft", Message.builder() .summary("You left a private channel.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("group_left")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), @@ -1130,19 +1172,20 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("groupMarked", Message.builder() .summary("A private channel read marker was updated.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("group_marked")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), - Pair("ts", Schema.builder() + Pair("ts", AsyncAPISchema.builder() .type("string") .build() ), @@ -1154,19 +1197,20 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("groupOpen", Message.builder() .summary("You opened a private channel.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("group_open")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), - Pair("user", Schema.builder() + Pair("user", AsyncAPISchema.builder() .type("string") .build() ), @@ -1178,26 +1222,27 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("groupRename", Message.builder() .summary("A private channel was renamed.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("group_rename")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder() + Pair("id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("name", Schema.builder() + Pair("name", AsyncAPISchema.builder() .type("string") .build() ), - Pair("created", Schema.builder() + Pair("created", AsyncAPISchema.builder() .type("number") .build() ), @@ -1212,19 +1257,20 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("groupUnarchive", Message.builder() .summary("A private channel was unarchived.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("group_unarchive")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), - Pair("user", Schema.builder() + Pair("user", AsyncAPISchema.builder() .type("string") .build() ), @@ -1236,19 +1282,20 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("imClose", Message.builder() .summary("You closed a DM.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("im_close")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), - Pair("user", Schema.builder() + Pair("user", AsyncAPISchema.builder() .type("string") .build() ), @@ -1260,37 +1307,38 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("imCreated", Message.builder() .summary("A DM was created.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("im_created")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder() + Pair("id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("name", Schema.builder() + Pair("name", AsyncAPISchema.builder() .type("string") .build() ), - Pair("created", Schema.builder() + Pair("created", AsyncAPISchema.builder() .type("number") .build() ), - Pair("creator", Schema.builder() + Pair("creator", AsyncAPISchema.builder() .type("string") .build() ), )) .build() ), - Pair("user", Schema.builder() + Pair("user", AsyncAPISchema.builder() .type("string") .build() ), @@ -1302,19 +1350,20 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("imMarked", Message.builder() .summary("A direct message read marker was updated.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("im_marked")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), - Pair("ts", Schema.builder() + Pair("ts", AsyncAPISchema.builder() .type("string") .build() ), @@ -1326,19 +1375,20 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("imOpen", Message.builder() .summary("You opened a DM.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("im_open")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), - Pair("user", Schema.builder() + Pair("user", AsyncAPISchema.builder() .type("string") .build() ), @@ -1350,15 +1400,16 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("manualPresenceChange", Message.builder() .summary("You manually updated your presence.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("manual_presence_change")) .build() ), - Pair("presence", Schema.builder() + Pair("presence", AsyncAPISchema.builder() .type("string") .build() ), @@ -1370,32 +1421,33 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("memberJoinedChannel", Message.builder() .summary("A user joined a public or private channel.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("member_joined_channel")) .build() ), - Pair("user", Schema.builder() + Pair("user", AsyncAPISchema.builder() .type("string") .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), - Pair("channel_type", Schema.builder() + Pair("channel_type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("C", "G")) .build() ), - Pair("team", Schema.builder() + Pair("team", AsyncAPISchema.builder() .type("string") .build() ), - Pair("inviter", Schema.builder() + Pair("inviter", AsyncAPISchema.builder() .type("string") .build() ), @@ -1407,28 +1459,29 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("memberLeftChannel", Message.builder() .summary("A user left a public or private channel.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("member_left_channel")) .build() ), - Pair("user", Schema.builder() + Pair("user", AsyncAPISchema.builder() .type("string") .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), - Pair("channel_type", Schema.builder() + Pair("channel_type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("C", "G")) .build() ), - Pair("team", Schema.builder() + Pair("team", AsyncAPISchema.builder() .type("string") .build() ), @@ -1440,43 +1493,44 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("message", Message.builder() .summary("A message was sent to a channel.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("message")) .build() ), - Pair("user", Schema.builder() + Pair("user", AsyncAPISchema.builder() .type("string") .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), - Pair("text", Schema.builder() + Pair("text", AsyncAPISchema.builder() .type("string") .build() ), - Pair("ts", Schema.builder() + Pair("ts", AsyncAPISchema.builder() .type("string") .build() ), - Pair("attachments", Schema.builder() + Pair("attachments", AsyncAPISchema.builder() .type("array") - .items(Schema.builder().ref("#/components/schemas/attachment").build()) + .items(AsyncAPISchema.builder().ref("#/components/schemas/attachment").build()) .build() ), - Pair("edited", Schema.builder() + Pair("edited", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("user", Schema.builder() + Pair("user", AsyncAPISchema.builder() .type("string") .build() ), - Pair("ts", Schema.builder() + Pair("ts", AsyncAPISchema.builder() .type("string") .build() ) @@ -1491,23 +1545,24 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("outgoingMessage", Message.builder() .summary("A message was sent to a channel.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("message")) .build() ), - Pair("id", Schema.builder() + Pair("id", AsyncAPISchema.builder() .type("number") .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), - Pair("text", Schema.builder() + Pair("text", AsyncAPISchema.builder() .type("string") .build() ), diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/StreetlightsKafka.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/StreetlightsKafka.kt index 3d4e273d..e76fa945 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/StreetlightsKafka.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/StreetlightsKafka.kt @@ -1,7 +1,6 @@ package com.asyncapi.examples.v2._0_0 -import com.asyncapi.v2.Reference -import com.asyncapi.v2._0_0.model.Tag +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2._0_0.model.channel.ChannelItem import com.asyncapi.v2._0_0.model.channel.Parameter import com.asyncapi.v2._0_0.model.channel.message.Message @@ -12,9 +11,9 @@ import com.asyncapi.v2._0_0.model.component.Components import com.asyncapi.v2._0_0.model.info.Info import com.asyncapi.v2._0_0.model.info.License import com.asyncapi.v2._0_0.model.server.Server -import com.asyncapi.v2.binding.operation.kafka.KafkaOperationBinding -import com.asyncapi.v2.schema.Schema -import com.asyncapi.v2.security_scheme.SecurityScheme +import com.asyncapi.bindings.kafka.v0._5_0.operation.KafkaOperationBinding +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.security.v2.SecurityScheme import java.math.BigDecimal class StreetlightsKafka: AbstractExampleValidationTest() { @@ -66,7 +65,9 @@ class StreetlightsKafka: AbstractExampleValidationTest() { Pair("smartylighting.streetlights.1.0.event.{streetlightId}.lighting.measured", ChannelItem.builder() .description("The topic on which measured values may be produced and consumed.") - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .publish(Operation.builder() .operationId("receiveLightMeasurement") .summary("Inform about environmental lighting conditions of a particular streetlight.") @@ -77,7 +78,9 @@ class StreetlightsKafka: AbstractExampleValidationTest() { ), Pair("smartylighting.streetlights.1.0.action.{streetlightId}.turn.on", ChannelItem.builder() - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .subscribe(Operation.builder() .operationId("turnOn") .traits(listOf(Reference("#/components/operationTraits/kafka"))) @@ -87,7 +90,9 @@ class StreetlightsKafka: AbstractExampleValidationTest() { ), Pair("smartylighting.streetlights.1.0.action.{streetlightId}.turn.off", ChannelItem.builder() - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .subscribe(Operation.builder() .operationId("turnOff") .traits(listOf(Reference("#/components/operationTraits/kafka"))) @@ -97,7 +102,9 @@ class StreetlightsKafka: AbstractExampleValidationTest() { ), Pair("smartylighting.streetlights.1.0.action.{streetlightId}.dim", ChannelItem.builder() - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .subscribe(Operation.builder() .operationId("dimLight") .traits(listOf(Reference("#/components/operationTraits/kafka"))) @@ -118,7 +125,7 @@ class StreetlightsKafka: AbstractExampleValidationTest() { .summary("Inform about environmental lighting conditions of a particular streetlight.") .contentType("application/json") .traits(listOf(Reference("#/components/messageTraits/commonHeaders"))) - .payload(Schema.builder().ref("#/components/schemas/lightMeasuredPayload").build()) + .payload(AsyncAPISchema.builder().ref("#/components/schemas/lightMeasuredPayload").build()) .build() ), Pair("turnOnOff", @@ -127,7 +134,7 @@ class StreetlightsKafka: AbstractExampleValidationTest() { .title("Turn on/off") .summary("Command a particular streetlight to turn the lights on or off.") .traits(listOf(Reference("#/components/messageTraits/commonHeaders"))) - .payload(Schema.builder().ref("#/components/schemas/turnOnOffPayload").build()) + .payload(AsyncAPISchema.builder().ref("#/components/schemas/turnOnOffPayload").build()) .build() ), Pair("dimLight", @@ -136,51 +143,51 @@ class StreetlightsKafka: AbstractExampleValidationTest() { .title("Dim light") .summary("Command a particular streetlight to dim the lights.") .traits(listOf(Reference("#/components/messageTraits/commonHeaders"))) - .payload(Schema.builder().ref("#/components/schemas/dimLightPayload").build()) + .payload(AsyncAPISchema.builder().ref("#/components/schemas/dimLightPayload").build()) .build() ) )) .schemas(mapOf( Pair("lightMeasuredPayload", - Schema.builder() + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("lumens", - Schema.builder() + AsyncAPISchema.builder() .type("integer") .minimum(BigDecimal.ZERO) .description("Light intensity measured in lumens.") .build() ), Pair("sentAt", - Schema.builder().ref("#/components/schemas/sentAt").build() + AsyncAPISchema.builder().ref("#/components/schemas/sentAt").build() ) )) .build() ), Pair("turnOnOffPayload", - Schema.builder() + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("command", - Schema.builder() + AsyncAPISchema.builder() .type("string") .enumValue(listOf("on", "off")) .description("Whether to turn on or off the light.") .build() ), Pair("sentAt", - Schema.builder().ref("#/components/schemas/sentAt").build() + AsyncAPISchema.builder().ref("#/components/schemas/sentAt").build() ) )) .build() ), Pair("dimLightPayload", - Schema.builder() + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("percentage", - Schema.builder() + AsyncAPISchema.builder() .type("integer") .minimum(BigDecimal.ZERO) .maximum(BigDecimal.valueOf(100)) @@ -188,13 +195,13 @@ class StreetlightsKafka: AbstractExampleValidationTest() { .build() ), Pair("sentAt", - Schema.builder().ref("#/components/schemas/sentAt").build() + AsyncAPISchema.builder().ref("#/components/schemas/sentAt").build() ) )) .build() ), Pair("sentAt", - Schema.builder() + AsyncAPISchema.builder() .type("string") .format("date-time") .description("Date and time when the message was sent.") @@ -218,17 +225,18 @@ class StreetlightsKafka: AbstractExampleValidationTest() { .parameters(mapOf( Pair("streetlightId", Parameter.builder() .description("The ID of the streetlight.") - .schema(Schema.builder().type("string").build()) + .schema(AsyncAPISchema.builder().type("string").build()) .build() ) )) .messageTraits(mapOf( Pair("commonHeaders", MessageTrait.builder() - .headers(Schema.builder() + .headers( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("my-app-header", Schema.builder() + Pair("my-app-header", AsyncAPISchema.builder() .type("integer") .minimum(BigDecimal.ZERO) .maximum(BigDecimal.valueOf(100)) @@ -245,7 +253,8 @@ class StreetlightsKafka: AbstractExampleValidationTest() { OperationTrait.builder() .bindings(mapOf( Pair("kafka", KafkaOperationBinding.builder() - .clientId(Schema.builder() + .clientId( + AsyncAPISchema.builder() .type("string") .enumValue(listOf("my-app-id")) .build() diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/StreetlightsMQTT.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/StreetlightsMQTT.kt index 0ceb940d..38131cf1 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/StreetlightsMQTT.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/StreetlightsMQTT.kt @@ -1,7 +1,6 @@ package com.asyncapi.examples.v2._0_0 -import com.asyncapi.v2.Reference -import com.asyncapi.v2._0_0.model.Tag +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2._0_0.model.channel.ChannelItem import com.asyncapi.v2._0_0.model.channel.Parameter import com.asyncapi.v2._0_0.model.channel.message.Message @@ -13,16 +12,16 @@ import com.asyncapi.v2._0_0.model.info.Info import com.asyncapi.v2._0_0.model.info.License import com.asyncapi.v2._0_0.model.server.Server import com.asyncapi.v2._0_0.model.server.ServerVariable -import com.asyncapi.v2.binding.operation.mqtt.MQTTOperationBinding -import com.asyncapi.v2.schema.Schema -import com.asyncapi.v2.security_scheme.ApiKeySecurityScheme -import com.asyncapi.v2.security_scheme.OpenIdConnectSecurityScheme -import com.asyncapi.v2.security_scheme.oauth2.OAuth2SecurityScheme -import com.asyncapi.v2.security_scheme.oauth2.OAuthFlows -import com.asyncapi.v2.security_scheme.oauth2.flow.AuthorizationCodeOAuthFlow -import com.asyncapi.v2.security_scheme.oauth2.flow.ClientCredentialsOAuthFlow -import com.asyncapi.v2.security_scheme.oauth2.flow.ImplicitOAuthFlow -import com.asyncapi.v2.security_scheme.oauth2.flow.PasswordOAuthFlow +import com.asyncapi.bindings.mqtt.v0._2_0.operation.MQTTOperationBinding +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.security.v2.ApiKeySecurityScheme +import com.asyncapi.schemas.asyncapi.security.v2.OpenIdConnectSecurityScheme +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.OAuth2SecurityScheme +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.OAuthFlows +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow.AuthorizationCodeOAuthFlow +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow.ClientCredentialsOAuthFlow +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow.ImplicitOAuthFlow +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow.PasswordOAuthFlow import java.math.BigDecimal class StreetlightsMQTT: AbstractExampleValidationTest() { @@ -81,7 +80,9 @@ class StreetlightsMQTT: AbstractExampleValidationTest() { Pair("smartylighting/streetlights/1/0/event/{streetlightId}/lighting/measured", ChannelItem.builder() .description("The topic on which measured values may be produced and consumed.") - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .publish(Operation.builder() .operationId("receiveLightMeasurement") .summary("Inform about environmental lighting conditions of a particular streetlight.") @@ -92,7 +93,9 @@ class StreetlightsMQTT: AbstractExampleValidationTest() { ), Pair("smartylighting/streetlights/1/0/action/{streetlightId}/turn/on", ChannelItem.builder() - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .subscribe(Operation.builder() .operationId("turnOn") .traits(listOf(Reference("#/components/operationTraits/mqtt"))) @@ -102,7 +105,9 @@ class StreetlightsMQTT: AbstractExampleValidationTest() { ), Pair("smartylighting/streetlights/1/0/action/{streetlightId}/turn/off", ChannelItem.builder() - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .subscribe(Operation.builder() .operationId("turnOff") .traits(listOf(Reference("#/components/operationTraits/mqtt"))) @@ -112,7 +117,9 @@ class StreetlightsMQTT: AbstractExampleValidationTest() { ), Pair("smartylighting/streetlights/1/0/action/{streetlightId}/dim", ChannelItem.builder() - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .subscribe(Operation.builder() .operationId("dimLight") .traits(listOf(Reference("#/components/operationTraits/mqtt"))) @@ -133,7 +140,7 @@ class StreetlightsMQTT: AbstractExampleValidationTest() { .summary("Inform about environmental lighting conditions of a particular streetlight.") .contentType("application/json") .traits(listOf(Reference("#/components/messageTraits/commonHeaders"))) - .payload(Schema.builder().ref("#/components/schemas/lightMeasuredPayload").build()) + .payload(AsyncAPISchema.builder().ref("#/components/schemas/lightMeasuredPayload").build()) .build() ), Pair("turnOnOff", @@ -142,7 +149,7 @@ class StreetlightsMQTT: AbstractExampleValidationTest() { .title("Turn on/off") .summary("Command a particular streetlight to turn the lights on or off.") .traits(listOf(Reference("#/components/messageTraits/commonHeaders"))) - .payload(Schema.builder().ref("#/components/schemas/turnOnOffPayload").build()) + .payload(AsyncAPISchema.builder().ref("#/components/schemas/turnOnOffPayload").build()) .build() ), Pair("dimLight", @@ -151,51 +158,51 @@ class StreetlightsMQTT: AbstractExampleValidationTest() { .title("Dim light") .summary("Command a particular streetlight to dim the lights.") .traits(listOf(Reference("#/components/messageTraits/commonHeaders"))) - .payload(Schema.builder().ref("#/components/schemas/dimLightPayload").build()) + .payload(AsyncAPISchema.builder().ref("#/components/schemas/dimLightPayload").build()) .build() ) )) .schemas(mapOf( Pair("lightMeasuredPayload", - Schema.builder() + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("lumens", - Schema.builder() + AsyncAPISchema.builder() .type("integer") .minimum(BigDecimal.ZERO) .description("Light intensity measured in lumens.") .build() ), Pair("sentAt", - Schema.builder().ref("#/components/schemas/sentAt").build() + AsyncAPISchema.builder().ref("#/components/schemas/sentAt").build() ) )) .build() ), Pair("turnOnOffPayload", - Schema.builder() + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("command", - Schema.builder() + AsyncAPISchema.builder() .type("string") .enumValue(listOf("on", "off")) .description("Whether to turn on or off the light.") .build() ), Pair("sentAt", - Schema.builder().ref("#/components/schemas/sentAt").build() + AsyncAPISchema.builder().ref("#/components/schemas/sentAt").build() ) )) .build() ), Pair("dimLightPayload", - Schema.builder() + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("percentage", - Schema.builder() + AsyncAPISchema.builder() .type("integer") .minimum(BigDecimal.ZERO) .maximum(BigDecimal.valueOf(100)) @@ -203,13 +210,13 @@ class StreetlightsMQTT: AbstractExampleValidationTest() { .build() ), Pair("sentAt", - Schema.builder().ref("#/components/schemas/sentAt").build() + AsyncAPISchema.builder().ref("#/components/schemas/sentAt").build() ) )) .build() ), Pair("sentAt", - Schema.builder() + AsyncAPISchema.builder() .type("string") .format("date-time") .description("Date and time when the message was sent.") @@ -218,7 +225,10 @@ class StreetlightsMQTT: AbstractExampleValidationTest() { )) .securitySchemes(mapOf( Pair("apiKey", - ApiKeySecurityScheme("Provide your API key as the user and leave the password empty.", ApiKeySecurityScheme.ApiKeyLocation.USER) + ApiKeySecurityScheme( + "Provide your API key as the user and leave the password empty.", + ApiKeySecurityScheme.ApiKeyLocation.USER + ) ), Pair("supportedOauthFlows", OAuth2SecurityScheme( @@ -228,7 +238,10 @@ class StreetlightsMQTT: AbstractExampleValidationTest() { "", mapOf( Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), Pair("streetlights:dim", "Ability to dim the lights") ), "https://authserver.example/auth" @@ -237,7 +250,10 @@ class StreetlightsMQTT: AbstractExampleValidationTest() { "", mapOf( Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), Pair("streetlights:dim", "Ability to dim the lights") ), "https://authserver.example/token" @@ -246,7 +262,10 @@ class StreetlightsMQTT: AbstractExampleValidationTest() { "", mapOf( Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), Pair("streetlights:dim", "Ability to dim the lights") ), "https://authserver.example/token" @@ -255,7 +274,10 @@ class StreetlightsMQTT: AbstractExampleValidationTest() { "https://authserver.example/refresh", mapOf( Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), Pair("streetlights:dim", "Ability to dim the lights") ), "https://authserver.example/auth", @@ -264,22 +286,28 @@ class StreetlightsMQTT: AbstractExampleValidationTest() { ) ) ), - Pair("openIdConnectWellKnown", OpenIdConnectSecurityScheme(null, "https://authserver.example/.well-known")) + Pair("openIdConnectWellKnown", + OpenIdConnectSecurityScheme( + null, + "https://authserver.example/.well-known" + ) + ) )) .parameters(mapOf( Pair("streetlightId", Parameter.builder() .description("The ID of the streetlight.") - .schema(Schema.builder().type("string").build()) + .schema(AsyncAPISchema.builder().type("string").build()) .build() ) )) .messageTraits(mapOf( Pair("commonHeaders", MessageTrait.builder() - .headers(Schema.builder() + .headers( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("my-app-header", Schema.builder() + Pair("my-app-header", AsyncAPISchema.builder() .type("integer") .minimum(BigDecimal.ZERO) .maximum(BigDecimal.valueOf(100)) diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/StreetlightsOperationSecurity.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/StreetlightsOperationSecurity.kt index bac1cb5c..cb2b5624 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/StreetlightsOperationSecurity.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/StreetlightsOperationSecurity.kt @@ -1,7 +1,6 @@ package com.asyncapi.examples.v2._0_0 -import com.asyncapi.v2.Reference -import com.asyncapi.v2._0_0.model.Tag +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2._0_0.model.channel.ChannelItem import com.asyncapi.v2._0_0.model.channel.Parameter import com.asyncapi.v2._0_0.model.channel.message.Message @@ -12,12 +11,12 @@ import com.asyncapi.v2._0_0.model.component.Components import com.asyncapi.v2._0_0.model.info.Info import com.asyncapi.v2._0_0.model.info.License import com.asyncapi.v2._0_0.model.server.Server -import com.asyncapi.v2.binding.operation.kafka.KafkaOperationBinding -import com.asyncapi.v2.schema.Schema -import com.asyncapi.v2.security_scheme.SecurityScheme -import com.asyncapi.v2.security_scheme.oauth2.OAuth2SecurityScheme -import com.asyncapi.v2.security_scheme.oauth2.OAuthFlows -import com.asyncapi.v2.security_scheme.oauth2.flow.ClientCredentialsOAuthFlow +import com.asyncapi.bindings.kafka.v0._5_0.operation.KafkaOperationBinding +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.security.v2.SecurityScheme +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.OAuth2SecurityScheme +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.OAuthFlows +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow.ClientCredentialsOAuthFlow import java.math.BigDecimal class StreetlightsOperationSecurity: AbstractExampleValidationTest() { @@ -72,7 +71,9 @@ class StreetlightsOperationSecurity: AbstractExampleValidationTest() { Pair("smartylighting.streetlights.1.0.event.{streetlightId}.lighting.measured", ChannelItem.builder() .description("The topic on which measured values may be produced and consumed.") - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .publish(Operation.builder() .operationId("receiveLightMeasurement") .summary("Inform about environmental lighting conditions of a particular streetlight.") @@ -83,7 +84,9 @@ class StreetlightsOperationSecurity: AbstractExampleValidationTest() { ), Pair("smartylighting.streetlights.1.0.action.{streetlightId}.turn.on", ChannelItem.builder() - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .subscribe(Operation.builder() .operationId("turnOn") .traits(listOf(Reference("#/components/operationTraits/kafka"))) @@ -93,7 +96,9 @@ class StreetlightsOperationSecurity: AbstractExampleValidationTest() { ), Pair("smartylighting.streetlights.1.0.action.{streetlightId}.turn.off", ChannelItem.builder() - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .subscribe(Operation.builder() .operationId("turnOff") .traits(listOf(Reference("#/components/operationTraits/kafka"))) @@ -104,7 +109,9 @@ class StreetlightsOperationSecurity: AbstractExampleValidationTest() { ), Pair("smartylighting.streetlights.1.0.action.{streetlightId}.dim", ChannelItem.builder() - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .subscribe(Operation.builder() .operationId("dimLight") .traits(listOf(Reference("#/components/operationTraits/kafka"))) @@ -126,7 +133,7 @@ class StreetlightsOperationSecurity: AbstractExampleValidationTest() { .summary("Inform about environmental lighting conditions of a particular streetlight.") .contentType("application/json") .traits(listOf(Reference("#/components/messageTraits/commonHeaders"))) - .payload(Schema.builder().ref("#/components/schemas/lightMeasuredPayload").build()) + .payload(AsyncAPISchema.builder().ref("#/components/schemas/lightMeasuredPayload").build()) .build() ), Pair("turnOnOff", @@ -135,7 +142,7 @@ class StreetlightsOperationSecurity: AbstractExampleValidationTest() { .title("Turn on/off") .summary("Command a particular streetlight to turn the lights on or off.") .traits(listOf(Reference("#/components/messageTraits/commonHeaders"))) - .payload(Schema.builder().ref("#/components/schemas/turnOnOffPayload").build()) + .payload(AsyncAPISchema.builder().ref("#/components/schemas/turnOnOffPayload").build()) .build() ), Pair("dimLight", @@ -144,51 +151,51 @@ class StreetlightsOperationSecurity: AbstractExampleValidationTest() { .title("Dim light") .summary("Command a particular streetlight to dim the lights.") .traits(listOf(Reference("#/components/messageTraits/commonHeaders"))) - .payload(Schema.builder().ref("#/components/schemas/dimLightPayload").build()) + .payload(AsyncAPISchema.builder().ref("#/components/schemas/dimLightPayload").build()) .build() ) )) .schemas(mapOf( Pair("lightMeasuredPayload", - Schema.builder() + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("lumens", - Schema.builder() + AsyncAPISchema.builder() .type("integer") .minimum(BigDecimal.ZERO) .description("Light intensity measured in lumens.") .build() ), Pair("sentAt", - Schema.builder().ref("#/components/schemas/sentAt").build() + AsyncAPISchema.builder().ref("#/components/schemas/sentAt").build() ) )) .build() ), Pair("turnOnOffPayload", - Schema.builder() + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("command", - Schema.builder() + AsyncAPISchema.builder() .type("string") .enumValue(listOf("on", "off")) .description("Whether to turn on or off the light.") .build() ), Pair("sentAt", - Schema.builder().ref("#/components/schemas/sentAt").build() + AsyncAPISchema.builder().ref("#/components/schemas/sentAt").build() ) )) .build() ), Pair("dimLightPayload", - Schema.builder() + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("percentage", - Schema.builder() + AsyncAPISchema.builder() .type("integer") .minimum(BigDecimal.ZERO) .maximum(BigDecimal.valueOf(100)) @@ -196,13 +203,13 @@ class StreetlightsOperationSecurity: AbstractExampleValidationTest() { .build() ), Pair("sentAt", - Schema.builder().ref("#/components/schemas/sentAt").build() + AsyncAPISchema.builder().ref("#/components/schemas/sentAt").build() ) )) .build() ), Pair("sentAt", - Schema.builder() + AsyncAPISchema.builder() .type("string") .format("date-time") .description("Date and time when the message was sent.") @@ -225,8 +232,14 @@ class StreetlightsOperationSecurity: AbstractExampleValidationTest() { ClientCredentialsOAuthFlow( "", mapOf( - Pair("streetlights:read", "Scope required for subscribing to channel"), - Pair("streetlights:write", "Scope required for publishing to channel"), + Pair( + "streetlights:read", + "Scope required for subscribing to channel" + ), + Pair( + "streetlights:write", + "Scope required for publishing to channel" + ), ), "https://example.com/api/oauth/dialog", ), @@ -238,17 +251,18 @@ class StreetlightsOperationSecurity: AbstractExampleValidationTest() { .parameters(mapOf( Pair("streetlightId", Parameter.builder() .description("The ID of the streetlight.") - .schema(Schema.builder().type("string").build()) + .schema(AsyncAPISchema.builder().type("string").build()) .build() ) )) .messageTraits(mapOf( Pair("commonHeaders", MessageTrait.builder() - .headers(Schema.builder() + .headers( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("my-app-header", Schema.builder() + Pair("my-app-header", AsyncAPISchema.builder() .type("integer") .minimum(BigDecimal.ZERO) .maximum(BigDecimal.valueOf(100)) @@ -265,7 +279,8 @@ class StreetlightsOperationSecurity: AbstractExampleValidationTest() { OperationTrait.builder() .bindings(mapOf( Pair("kafka", KafkaOperationBinding.builder() - .clientId(Schema.builder() + .clientId( + AsyncAPISchema.builder() .type("string") .enumValue(listOf("my-app-id")) .build() diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/WebsocketGemini.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/WebsocketGemini.kt index e72c9331..fb58138f 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/WebsocketGemini.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_0_0/WebsocketGemini.kt @@ -1,6 +1,6 @@ package com.asyncapi.examples.v2._0_0 -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2._0_0.model.channel.ChannelItem import com.asyncapi.v2._0_0.model.channel.Parameter import com.asyncapi.v2._0_0.model.channel.message.Message @@ -9,8 +9,8 @@ import com.asyncapi.v2._0_0.model.component.Components import com.asyncapi.v2._0_0.model.info.Contact import com.asyncapi.v2._0_0.model.info.Info import com.asyncapi.v2._0_0.model.server.Server -import com.asyncapi.v2.binding.channel.ws.WebSocketsChannelBinding -import com.asyncapi.v2.schema.Schema +import com.asyncapi.bindings.websockets.v0._1_0.channel.WebSocketsChannelBinding +import com.asyncapi.schemas.asyncapi.AsyncAPISchema class WebsocketGemini: AbstractExampleValidationTest() { @@ -51,7 +51,8 @@ class WebsocketGemini: AbstractExampleValidationTest() { mapOf( Pair("symbol", Parameter.builder() - .schema(Schema.builder() + .schema( + AsyncAPISchema.builder() .type("string") .enumValue(listOf( "btcusd", @@ -133,7 +134,7 @@ class WebsocketGemini: AbstractExampleValidationTest() { "ws", WebSocketsChannelBinding.builder() .query( - Schema.builder() + AsyncAPISchema.builder() .type("object") .description( "The semantics of entry type filtering is:\n" + @@ -146,7 +147,7 @@ class WebsocketGemini: AbstractExampleValidationTest() { .properties(mapOf( Pair( "heartbeat", - Schema.builder() + AsyncAPISchema.builder() .type("boolean") .defaultValue(false) .description( @@ -157,7 +158,7 @@ class WebsocketGemini: AbstractExampleValidationTest() { ), Pair( "top_of_book", - Schema.builder() + AsyncAPISchema.builder() .type("boolean") .defaultValue(false) .description( @@ -169,7 +170,7 @@ class WebsocketGemini: AbstractExampleValidationTest() { ), Pair( "bids", - Schema.builder() + AsyncAPISchema.builder() .type("boolean") .defaultValue(true) .description("Include bids in change events") @@ -177,7 +178,7 @@ class WebsocketGemini: AbstractExampleValidationTest() { ), Pair( "offers", - Schema.builder() + AsyncAPISchema.builder() .type("boolean") .defaultValue(true) .description("Include asks in change events") @@ -185,7 +186,7 @@ class WebsocketGemini: AbstractExampleValidationTest() { ), Pair( "trades", - Schema.builder() + AsyncAPISchema.builder() .type("boolean") .defaultValue(true) .description("Include trade events") @@ -193,7 +194,7 @@ class WebsocketGemini: AbstractExampleValidationTest() { ), Pair( "auctions", - Schema.builder() + AsyncAPISchema.builder() .type("boolean") .defaultValue(true) .description("Include auction events") @@ -221,7 +222,7 @@ class WebsocketGemini: AbstractExampleValidationTest() { .description( "The initial response message will show the existing state of the order book. Subsequent messages will show all executed trades, as well as all other changes to the order book from orders placed or canceled.\n" ) - .payload(Schema.builder().ref("#/components/schemas/market").build()) + .payload(AsyncAPISchema.builder().ref("#/components/schemas/market").build()) .examples(listOf( mapOf( Pair("name", "updateMessage"), @@ -255,34 +256,34 @@ class WebsocketGemini: AbstractExampleValidationTest() { ) )) .schemas(mapOf( - Pair("market", Schema.builder() + Pair("market", AsyncAPISchema.builder() .type("object") .oneOf(listOf( - Schema.builder().ref("#/components/schemas/heartbeat").build(), - Schema.builder().ref("#/components/schemas/update").build(), + AsyncAPISchema.builder().ref("#/components/schemas/heartbeat").build(), + AsyncAPISchema.builder().ref("#/components/schemas/update").build(), )) .build() ), - Pair("heartbeat", Schema.builder() + Pair("heartbeat", AsyncAPISchema.builder() .allOf(listOf( - Schema.builder() + AsyncAPISchema.builder() .properties(mapOf( - Pair("type", Schema.builder().type("string").constValue("heartbeat").build()) + Pair("type", AsyncAPISchema.builder().type("string").constValue("heartbeat").build()) )) .required(listOf("type")) .build(), - Schema.builder() + AsyncAPISchema.builder() .ref("#/components/schemas/default") .build(), )) .build() ), - Pair("update", Schema.builder() + Pair("update", AsyncAPISchema.builder() .allOf(listOf( - Schema.builder() + AsyncAPISchema.builder() .properties(mapOf( - Pair("type", Schema.builder().type("string").constValue("update").build()), - Pair("eventId", Schema.builder() + Pair("type", AsyncAPISchema.builder().type("string").constValue("update").build()), + Pair("eventId", AsyncAPISchema.builder() .type("integer") .description( "A monotonically increasing sequence number indicating when this " + @@ -291,8 +292,8 @@ class WebsocketGemini: AbstractExampleValidationTest() { ) .build() ), - Pair("events", Schema.builder().ref("#/components/schemas/events").build()), - Pair("timestamp", Schema.builder() + Pair("events", AsyncAPISchema.builder().ref("#/components/schemas/events").build()), + Pair("timestamp", AsyncAPISchema.builder() .type("number") .description( "The timestamp in seconds for this group of events (included for " + @@ -301,7 +302,7 @@ class WebsocketGemini: AbstractExampleValidationTest() { ) .build() ), - Pair("timestampms", Schema.builder() + Pair("timestampms", AsyncAPISchema.builder() .type("number") .description("The timestamp in milliseconds for this group of events.") .build() @@ -309,18 +310,18 @@ class WebsocketGemini: AbstractExampleValidationTest() { )) .required(listOf("type", "eventId", "events", "timestamp", "timestampms")) .build(), - Schema.builder().ref("#/components/schemas/default").build(), + AsyncAPISchema.builder().ref("#/components/schemas/default").build(), )) .build() ), - Pair("default", Schema.builder() + Pair("default", AsyncAPISchema.builder() .type("object") .description( "This object is always part of the payload. In case of type=heartbeat, " + "these are the only fields.") .required(listOf("type", "socket_sequence")) .properties(mapOf( - Pair("socket_sequence", Schema.builder() + Pair("socket_sequence", AsyncAPISchema.builder() .type("integer") .description( "zero-indexed monotonic increasing sequence number attached to each " + @@ -335,30 +336,31 @@ class WebsocketGemini: AbstractExampleValidationTest() { )) .build() ), - Pair("events", Schema.builder() + Pair("events", AsyncAPISchema.builder() .type("array") .description("Either a change to the order book, or the indication that a trade has occurred.") - .items(Schema.builder() + .items( + AsyncAPISchema.builder() .type("object") .additionalProperties(false) .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("trade", "change", "auction, block_trade")) .build() ), - Pair("price", Schema.builder() + Pair("price", AsyncAPISchema.builder() .type("number") .multipleOf(0.01) .description("The price of this order book entry.") .build() ), - Pair("side", Schema.builder() + Pair("side", AsyncAPISchema.builder() .type("string") .enumValue(listOf("bid", "side")) .build() ), - Pair("reason", Schema.builder() + Pair("reason", AsyncAPISchema.builder() .type("string") .enumValue(listOf("place", "trade", "cancel", "initial")) .description( @@ -368,14 +370,14 @@ class WebsocketGemini: AbstractExampleValidationTest() { ) .build() ), - Pair("remaining", Schema.builder() + Pair("remaining", AsyncAPISchema.builder() .type("number") .description( "The quantity remaining at that price level after this change occurred. May be zero if all orders at this price level have been filled or canceled." ) .build() ), - Pair("delta", Schema.builder() + Pair("delta", AsyncAPISchema.builder() .type("number") .description( "The quantity changed. May be negative, if an order is filled or canceled. For initial messages, delta will equal remaining." diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/AnyOf.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/AnyOf.kt index e134ce1f..8e7f9652 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/AnyOf.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/AnyOf.kt @@ -1,12 +1,12 @@ package com.asyncapi.examples.v2._6_0 -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2._6_0.model.channel.ChannelItem import com.asyncapi.v2._6_0.model.channel.message.Message import com.asyncapi.v2._6_0.model.channel.operation.Operation import com.asyncapi.v2._6_0.model.component.Components import com.asyncapi.v2._6_0.model.info.Info -import com.asyncapi.v2.schema.Schema +import com.asyncapi.schemas.asyncapi.AsyncAPISchema class AnyOf: AbstractExampleValidationTest() { @@ -37,10 +37,11 @@ class AnyOf: AbstractExampleValidationTest() { return Components.builder() .messages(mapOf( Pair("testMessages", Message.builder() - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .anyOf(listOf( - Schema.builder().ref("#/components/schemas/objectWithKey").build(), - Schema.builder().ref("#/components/schemas/objectWithKey2").build(), + AsyncAPISchema.builder().ref("#/components/schemas/objectWithKey").build(), + AsyncAPISchema.builder().ref("#/components/schemas/objectWithKey2").build(), )) .build() ) @@ -48,10 +49,10 @@ class AnyOf: AbstractExampleValidationTest() { ) )) .schemas(mapOf( - Pair("objectWithKey", Schema.builder() + Pair("objectWithKey", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("key", Schema.builder() + Pair("key", AsyncAPISchema.builder() .type("string") .additionalProperties(false) .build() @@ -59,10 +60,10 @@ class AnyOf: AbstractExampleValidationTest() { )) .build() ), - Pair("objectWithKey2", Schema.builder() + Pair("objectWithKey2", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("key2", Schema.builder() + Pair("key2", AsyncAPISchema.builder() .type("string") .build() ) diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/ApplicationHeaders.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/ApplicationHeaders.kt index 84d93287..2d6c13f6 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/ApplicationHeaders.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/ApplicationHeaders.kt @@ -1,6 +1,6 @@ package com.asyncapi.examples.v2._6_0 -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2._6_0.model.channel.ChannelItem import com.asyncapi.v2._6_0.model.channel.Parameter import com.asyncapi.v2._6_0.model.channel.message.CorrelationId @@ -11,7 +11,7 @@ import com.asyncapi.v2._6_0.model.info.Info import com.asyncapi.v2._6_0.model.info.License import com.asyncapi.v2._6_0.model.server.Server import com.asyncapi.v2._6_0.model.server.ServerVariable -import com.asyncapi.v2.schema.Schema +import com.asyncapi.schemas.asyncapi.AsyncAPISchema import java.math.BigDecimal class ApplicationHeaders: AbstractExampleValidationTest() { @@ -55,7 +55,9 @@ class ApplicationHeaders: AbstractExampleValidationTest() { return mapOf( Pair("smartylighting/streetlights/1/0/event/{streetlightId}/lighting/measured", ChannelItem.builder() .parameters(mapOf( - Pair("streetlightId", Reference("#/components/parameters/streetlightId")) + Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ) )) .publish(Operation.builder() .summary("Inform about environmental lighting conditions of a particular streetlight.") @@ -80,13 +82,14 @@ class ApplicationHeaders: AbstractExampleValidationTest() { "\$message.header#/MQMD/CorrelId" )) .contentType("application/json") - .headers(Schema.builder() + .headers( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("MQMD", Schema.builder() + Pair("MQMD", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("CorrelId", Schema.builder() + Pair("CorrelId", AsyncAPISchema.builder() .type("string") .minLength(24) .maxLength(24) @@ -96,41 +99,41 @@ class ApplicationHeaders: AbstractExampleValidationTest() { )) .build() ), - Pair("applicationInstanceId", Schema.builder() + Pair("applicationInstanceId", AsyncAPISchema.builder() .ref("#/components/schemas/applicationInstanceId") .build() ) )) .build() ) - .payload(Schema.builder().ref("#/components/schemas/lightMeasuredPayload").build()) + .payload(Reference("#/components/schemas/lightMeasuredPayload")) .build() ) )) .schemas(mapOf( - Pair("lightMeasuredPayload", Schema.builder() + Pair("lightMeasuredPayload", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("lumens", Schema.builder() + Pair("lumens", AsyncAPISchema.builder() .type("integer") .minimum(BigDecimal.ZERO) .description("Light intensity measured in lumens.") .build() ), - Pair("sentAt", Schema.builder() + Pair("sentAt", AsyncAPISchema.builder() .ref("#/components/schemas/sentAt") .build() ) )) .build() ), - Pair("sentAt", Schema.builder() + Pair("sentAt", AsyncAPISchema.builder() .type("string") .format("date-time") .description("Date and time when the message was sent.") .build() ), - Pair("applicationInstanceId", Schema.builder() + Pair("applicationInstanceId", AsyncAPISchema.builder() .type("string") .description("Unique identifier for a given instance of the publishing application") .build() @@ -139,7 +142,7 @@ class ApplicationHeaders: AbstractExampleValidationTest() { .parameters(mapOf( Pair("streetlightId", Parameter.builder() .description("The ID of the streetlight.") - .schema(Schema.builder().type("string").build()) + .schema(AsyncAPISchema.builder().type("string").build()) .build() ) )) diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/CorrelationId.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/CorrelationId.kt index d5e8c827..2ef91d97 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/CorrelationId.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/CorrelationId.kt @@ -1,6 +1,6 @@ package com.asyncapi.examples.v2._6_0 -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2._6_0.model.channel.ChannelItem import com.asyncapi.v2._6_0.model.channel.Parameter import com.asyncapi.v2._6_0.model.channel.message.CorrelationId @@ -11,15 +11,15 @@ import com.asyncapi.v2._6_0.model.info.Info import com.asyncapi.v2._6_0.model.info.License import com.asyncapi.v2._6_0.model.server.Server import com.asyncapi.v2._6_0.model.server.ServerVariable -import com.asyncapi.v2.schema.Schema -import com.asyncapi.v2.security_scheme.ApiKeySecurityScheme -import com.asyncapi.v2.security_scheme.OpenIdConnectSecurityScheme -import com.asyncapi.v2.security_scheme.oauth2.OAuth2SecurityScheme -import com.asyncapi.v2.security_scheme.oauth2.OAuthFlows -import com.asyncapi.v2.security_scheme.oauth2.flow.AuthorizationCodeOAuthFlow -import com.asyncapi.v2.security_scheme.oauth2.flow.ClientCredentialsOAuthFlow -import com.asyncapi.v2.security_scheme.oauth2.flow.ImplicitOAuthFlow -import com.asyncapi.v2.security_scheme.oauth2.flow.PasswordOAuthFlow +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.security.v2.ApiKeySecurityScheme +import com.asyncapi.schemas.asyncapi.security.v2.OpenIdConnectSecurityScheme +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.OAuth2SecurityScheme +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.OAuthFlows +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow.AuthorizationCodeOAuthFlow +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow.ClientCredentialsOAuthFlow +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow.ImplicitOAuthFlow +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow.PasswordOAuthFlow import java.math.BigDecimal class CorrelationId: AbstractExampleValidationTest() { @@ -70,7 +70,9 @@ class CorrelationId: AbstractExampleValidationTest() { return mapOf( Pair("smartylighting/streetlights/1/0/event/{streetlightId}/lighting/measured", ChannelItem.builder() .parameters(mapOf( - Pair("streetlightId", Reference("#/components/parameters/streetlightId")) + Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ) )) .publish(Operation.builder() .summary("Inform about environmental lighting conditions of a particular streetlight.") @@ -82,7 +84,9 @@ class CorrelationId: AbstractExampleValidationTest() { ), Pair("smartylighting/streetlights/1/0/action/{streetlightId}/dim", ChannelItem.builder() .parameters(mapOf( - Pair("streetlightId", Reference("#/components/parameters/streetlightId")) + Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ) )) .subscribe(Operation.builder() .operationId("dimLight") @@ -106,7 +110,7 @@ class CorrelationId: AbstractExampleValidationTest() { "\$message.header#/MQMD/CorrelId" )) .contentType("application/json") - .payload(Schema.builder().ref("#/components/schemas/lightMeasuredPayload").build()) + .payload(Reference("#/components/schemas/lightMeasuredPayload")) .build() ), Pair("dimLight", Message.builder() @@ -114,44 +118,44 @@ class CorrelationId: AbstractExampleValidationTest() { .title("Dim light") .summary("Command a particular streetlight to dim the lights.") .correlationId(Reference("#/components/correlationIds/sentAtCorrelator")) - .payload(Schema.builder().ref("#/components/schemas/dimLightPayload").build()) + .payload(Reference("#/components/schemas/dimLightPayload")) .build() ) )) .schemas(mapOf( - Pair("lightMeasuredPayload", Schema.builder() + Pair("lightMeasuredPayload", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("lumens", Schema.builder() + Pair("lumens", AsyncAPISchema.builder() .type("integer") .minimum(BigDecimal.ZERO) .description("Light intensity measured in lumens.") .build() ), - Pair("sentAt", Schema.builder() + Pair("sentAt", AsyncAPISchema.builder() .ref("#/components/schemas/sentAt") .build() ) )) .build() ), - Pair("sentAt", Schema.builder() + Pair("sentAt", AsyncAPISchema.builder() .type("string") .format("date-time") .description("Date and time when the message was sent.") .build() ), - Pair("dimLightPayload", Schema.builder() + Pair("dimLightPayload", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("percentage", Schema.builder() + Pair("percentage", AsyncAPISchema.builder() .type("integer") .minimum(BigDecimal.ZERO) .maximum(BigDecimal.valueOf(100)) .description("Percentage to which the light should be dimmed to.") .build() ), - Pair("sentAt", Schema.builder() + Pair("sentAt", AsyncAPISchema.builder() .ref("#/components/schemas/sentAt") .build() ) @@ -162,7 +166,7 @@ class CorrelationId: AbstractExampleValidationTest() { .parameters(mapOf( Pair("streetlightId", Parameter.builder() .description("The ID of the streetlight.") - .schema(Schema.builder().type("string").build()) + .schema(AsyncAPISchema.builder().type("string").build()) .build() ) )) @@ -173,56 +177,74 @@ class CorrelationId: AbstractExampleValidationTest() { )) )) .securitySchemes(mapOf( - Pair("apiKey", ApiKeySecurityScheme( - "Provide your API key as the user and leave the password empty.", - ApiKeySecurityScheme.ApiKeyLocation.USER - )), - Pair("supportedOauthFlows", OAuth2SecurityScheme( - "Flows to support OAuth 2.0", - OAuthFlows( - ImplicitOAuthFlow( - "", - mapOf( - Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), - Pair("streetlights:dim", "Ability to dim the lights"), + Pair("apiKey", + ApiKeySecurityScheme( + "Provide your API key as the user and leave the password empty.", + ApiKeySecurityScheme.ApiKeyLocation.USER + ) + ), + Pair("supportedOauthFlows", + OAuth2SecurityScheme( + "Flows to support OAuth 2.0", + OAuthFlows( + ImplicitOAuthFlow( + "", + mapOf( + Pair("streetlights:on", "Ability to switch lights on"), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), + Pair("streetlights:dim", "Ability to dim the lights"), + ), + "https://authserver.example/auth", ), - "https://authserver.example/auth", - ), - PasswordOAuthFlow( - "", - mapOf( - Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), - Pair("streetlights:dim", "Ability to dim the lights"), + PasswordOAuthFlow( + "", + mapOf( + Pair("streetlights:on", "Ability to switch lights on"), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), + Pair("streetlights:dim", "Ability to dim the lights"), + ), + "https://authserver.example/token", ), - "https://authserver.example/token", - ), - ClientCredentialsOAuthFlow( - "", - mapOf( - Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), - Pair("streetlights:dim", "Ability to dim the lights"), + ClientCredentialsOAuthFlow( + "", + mapOf( + Pair("streetlights:on", "Ability to switch lights on"), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), + Pair("streetlights:dim", "Ability to dim the lights"), + ), + "https://authserver.example/token", ), - "https://authserver.example/token", - ), - AuthorizationCodeOAuthFlow( - "https://authserver.example/refresh", - mapOf( - Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), - Pair("streetlights:dim", "Ability to dim the lights"), - ), - "https://authserver.example/auth", - "https://authserver.example/token", + AuthorizationCodeOAuthFlow( + "https://authserver.example/refresh", + mapOf( + Pair("streetlights:on", "Ability to switch lights on"), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), + Pair("streetlights:dim", "Ability to dim the lights"), + ), + "https://authserver.example/auth", + "https://authserver.example/token", + ) ) ) - )), - Pair("openIdConnectWellKnown", OpenIdConnectSecurityScheme( - null, - "https://authserver.example/.well-known" - )) + ), + Pair("openIdConnectWellKnown", + OpenIdConnectSecurityScheme( + null, + "https://authserver.example/.well-known" + ) + ) )) .build() } diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/GitterStreaming.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/GitterStreaming.kt index 97849dce..42709d1e 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/GitterStreaming.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/GitterStreaming.kt @@ -1,6 +1,6 @@ package com.asyncapi.examples.v2._6_0 -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2._6_0.model.channel.ChannelItem import com.asyncapi.v2._6_0.model.channel.Parameter import com.asyncapi.v2._6_0.model.channel.message.Message @@ -9,11 +9,10 @@ import com.asyncapi.v2._6_0.model.channel.operation.Operation import com.asyncapi.v2._6_0.model.component.Components import com.asyncapi.v2._6_0.model.info.Info import com.asyncapi.v2._6_0.model.server.Server -import com.asyncapi.v2.binding.message.http.HTTPMessageBinding -import com.asyncapi.v2.binding.operation.http.HTTPOperationBinding -import com.asyncapi.v2.binding.operation.http.HTTPOperationType -import com.asyncapi.v2.schema.Schema -import com.asyncapi.v2.security_scheme.http.HttpSecurityScheme +import com.asyncapi.bindings.http.v0._3_0.message.HTTPMessageBinding +import com.asyncapi.bindings.http.v0._3_0.operation.HTTPOperationBinding +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.security.v2.http.HttpSecurityScheme class GitterStreaming: AbstractExampleValidationTest() { @@ -48,7 +47,8 @@ class GitterStreaming: AbstractExampleValidationTest() { .parameters(mapOf( Pair("roomId", Parameter.builder() .description("Id of the Gitter room.") - .schema(Schema.builder() + .schema( + AsyncAPISchema.builder() .type("string") .examples(listOf("53307860c3599d1de448e19d")) .build() @@ -57,7 +57,8 @@ class GitterStreaming: AbstractExampleValidationTest() { ), Pair("resource", Parameter.builder() .description("The resource to consume.") - .schema(Schema.builder() + .schema( + AsyncAPISchema.builder() .type("string") .enumValue(listOf("chatMessages", "events")) .build() @@ -68,13 +69,12 @@ class GitterStreaming: AbstractExampleValidationTest() { .subscribe(Operation.builder() .bindings(mapOf( Pair("http", HTTPOperationBinding.builder() - .type(HTTPOperationType.RESPONSE) .build() ) )) .message(OneOfMessages(listOf( - Reference("#/components/messages/chatMessage"), - Reference("#/components/messages/heartbeat") + Reference("#/components/messages/chatMessage"), + Reference("#/components/messages/heartbeat") ))) .build() ) @@ -86,88 +86,91 @@ class GitterStreaming: AbstractExampleValidationTest() { override fun expectedComponents(): Components? { return Components.builder() .securitySchemes(mapOf( - Pair("httpBearerToken", HttpSecurityScheme( + Pair("httpBearerToken", + HttpSecurityScheme( null, "bearer", null, - )) + ) + ) )) .messages(mapOf( Pair("chatMessage", Message.builder() - .schemaFormat("application/schema+yaml;version=draft-07") + .schemaFormat("application/vnd.aai.asyncapi+yaml;version=2.6.0") .summary("A message represents an individual chat message sent to a room. They are a sub-resource of a room.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder() + Pair("id", AsyncAPISchema.builder() .type("string") .description("ID of the message.") .build() ), - Pair("text", Schema.builder() + Pair("text", AsyncAPISchema.builder() .type("string") .description("Original message in plain-text/markdown.") .build() ), - Pair("html", Schema.builder() + Pair("html", AsyncAPISchema.builder() .type("string") .description("HTML formatted message.") .build() ), - Pair("sent", Schema.builder() + Pair("sent", AsyncAPISchema.builder() .type("string") .format("date-time") .description("ISO formatted date of the message.") .build() ), - Pair("fromUser", Schema.builder() + Pair("fromUser", AsyncAPISchema.builder() .type("object") .description("User that sent the message.") .properties(mapOf( - Pair("id", Schema.builder() + Pair("id", AsyncAPISchema.builder() .type("string") .description("Gitter User ID.") .build() ), - Pair("username", Schema.builder() + Pair("username", AsyncAPISchema.builder() .type("string") .description("Gitter/GitHub username.") .build() ), - Pair("displayName", Schema.builder() + Pair("displayName", AsyncAPISchema.builder() .type("string") .description("Gitter/GitHub user real name.") .build() ), - Pair("url", Schema.builder() + Pair("url", AsyncAPISchema.builder() .type("string") .description("Path to the user on Gitter.") .build() ), - Pair("avatarUrl", Schema.builder() + Pair("avatarUrl", AsyncAPISchema.builder() .type("string") .format("uri") .description("User avatar URI.") .build() ), - Pair("avatarUrlSmall", Schema.builder() + Pair("avatarUrlSmall", AsyncAPISchema.builder() .type("string") .format("uri") .description("User avatar URI (small).") .build() ), - Pair("avatarUrlMedium", Schema.builder() + Pair("avatarUrlMedium", AsyncAPISchema.builder() .type("string") .format("uri") .description("User avatar URI (medium).") .build() ), - Pair("v", Schema.builder() + Pair("v", AsyncAPISchema.builder() .type("number") .description("Version.") .build() ), - Pair("gv", Schema.builder() + Pair("gv", AsyncAPISchema.builder() .type("string") .description("Stands for \"Gravatar version\" and is used for cache busting.") .build() @@ -175,42 +178,45 @@ class GitterStreaming: AbstractExampleValidationTest() { )) .build() ), - Pair("unread", Schema.builder() + Pair("unread", AsyncAPISchema.builder() .type("boolean") .description("Boolean that indicates if the current user has read the message.") .build() ), - Pair("readBy", Schema.builder() + Pair("readBy", AsyncAPISchema.builder() .type("number") .description("Number of users that have read the message.") .build() ), - Pair("urls", Schema.builder() + Pair("urls", AsyncAPISchema.builder() .type("array") .description("List of URLs present in the message.") - .items(Schema.builder() + .items( + AsyncAPISchema.builder() .type("string") .format("uri") .build()) .build() ), - Pair("mentions", Schema.builder() + Pair("mentions", AsyncAPISchema.builder() .type("array") .description("List of @Mentions in the message.") - .items(Schema.builder() + .items( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("screenName", Schema.builder() + Pair("screenName", AsyncAPISchema.builder() .type("string") .build() ), - Pair("userId", Schema.builder() + Pair("userId", AsyncAPISchema.builder() .type("string") .build() ), - Pair("userIds", Schema.builder() + Pair("userIds", AsyncAPISchema.builder() .type("array") - .items(Schema.builder() + .items( + AsyncAPISchema.builder() .type("string") .build()) .build() @@ -219,29 +225,30 @@ class GitterStreaming: AbstractExampleValidationTest() { .build()) .build() ), - Pair("issues", Schema.builder() + Pair("issues", AsyncAPISchema.builder() .type("array") .description("List of #Issues referenced in the message.") - .items(Schema.builder() + .items( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("number", Schema.builder().type("string").build()) + Pair("number", AsyncAPISchema.builder().type("string").build()) )) .build()) .build() ), - Pair("meta", Schema.builder() + Pair("meta", AsyncAPISchema.builder() .type("array") .description("Metadata. This is currently not used for anything.") - .items(Schema.builder().build()) + .items(AsyncAPISchema.builder().build()) .build() ), - Pair("v", Schema.builder() + Pair("v", AsyncAPISchema.builder() .type("number") .description("Version.") .build() ), - Pair("gv", Schema.builder() + Pair("gv", AsyncAPISchema.builder() .type("string") .description("Stands for \"Gravatar version\" and is used for cache busting.") .build() @@ -250,35 +257,41 @@ class GitterStreaming: AbstractExampleValidationTest() { .build() ) .bindings(mapOf( - Pair("http", Reference("#/components/messageBindings/streamingHeaders")) + Pair("http", + Reference("#/components/messageBindings/streamingHeaders") + ) )) .build() ), Pair("heartbeat", Message.builder() - .schemaFormat("application/schema+yaml;version=draft-07") + .schemaFormat("application/vnd.aai.asyncapi+yaml;version=2.6.0") .summary("Its purpose is to keep the connection alive.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("string") .enumValue(listOf("\r\n")) .build() ) .bindings(mapOf( - Pair("http", Reference("#/components/messageBindings/streamingHeaders")) + Pair("http", + Reference("#/components/messageBindings/streamingHeaders") + ) )) .build() ), )) .messageBindings(mapOf( Pair("http", HTTPMessageBinding.builder() - .headers(Schema.builder() + .headers( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("Transfer-Encoding", Schema.builder() + Pair("Transfer-Encoding", AsyncAPISchema.builder() .type("string") .constValue("chunked") .build() ), - Pair("Trailer", Schema.builder() + Pair("Trailer", AsyncAPISchema.builder() .type("string") .constValue("\\r\\n") .build() diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/Mercure.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/Mercure.kt index 9bd85324..7a2772f4 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/Mercure.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/Mercure.kt @@ -1,20 +1,15 @@ package com.asyncapi.examples.v2._6_0 -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2._6_0.model.ExternalDocumentation import com.asyncapi.v2._6_0.model.channel.ChannelItem import com.asyncapi.v2._6_0.model.channel.Parameter import com.asyncapi.v2._6_0.model.channel.message.Message -import com.asyncapi.v2._6_0.model.channel.message.OneOfMessages import com.asyncapi.v2._6_0.model.channel.operation.Operation import com.asyncapi.v2._6_0.model.component.Components import com.asyncapi.v2._6_0.model.info.Info import com.asyncapi.v2._6_0.model.server.Server -import com.asyncapi.v2.binding.message.http.HTTPMessageBinding -import com.asyncapi.v2.binding.operation.http.HTTPOperationBinding -import com.asyncapi.v2.binding.operation.http.HTTPOperationType -import com.asyncapi.v2.schema.Schema -import com.asyncapi.v2.security_scheme.http.HttpSecurityScheme +import com.asyncapi.schemas.asyncapi.AsyncAPISchema class Mercure: AbstractExampleValidationTest() { @@ -46,7 +41,8 @@ class Mercure: AbstractExampleValidationTest() { .description("Every time a resource of type `http://schema.org/Book` is created or modified, a JSON-LD representation of the new version of this resource must be pushed in this Mercure topic.") .parameters(mapOf( Pair("id", Parameter.builder() - .schema(Schema.builder() + .schema( + AsyncAPISchema.builder() .type("integer") .build() ) @@ -75,28 +71,29 @@ class Mercure: AbstractExampleValidationTest() { null, "https://schema.org/Book" )) - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("@id", Schema.builder() + Pair("@id", AsyncAPISchema.builder() .type("string") .format("iri-reference") .build() ), - Pair("@type", Schema.builder() + Pair("@type", AsyncAPISchema.builder() .type("string") .format("iri-reference") .build() ), - Pair("name", Schema.builder() + Pair("name", AsyncAPISchema.builder() .type("string") .build() ), - Pair("isbn", Schema.builder() + Pair("isbn", AsyncAPISchema.builder() .type("string") .build() ), - Pair("abstract", Schema.builder() + Pair("abstract", AsyncAPISchema.builder() .type("string") .build() ), diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/Not.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/Not.kt index 3a108e11..0ffe615e 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/Not.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/Not.kt @@ -1,12 +1,12 @@ package com.asyncapi.examples.v2._6_0 -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2._6_0.model.channel.ChannelItem import com.asyncapi.v2._6_0.model.channel.message.Message import com.asyncapi.v2._6_0.model.channel.operation.Operation import com.asyncapi.v2._6_0.model.component.Components import com.asyncapi.v2._6_0.model.info.Info -import com.asyncapi.v2.schema.Schema +import com.asyncapi.schemas.asyncapi.AsyncAPISchema class Not: AbstractExampleValidationTest() { @@ -37,16 +37,16 @@ class Not: AbstractExampleValidationTest() { return Components.builder() .messages(mapOf( Pair("testMessages", Message.builder() - .payload(Schema.builder().ref("#/components/schemas/testSchema").build()) + .payload(Reference("#/components/schemas/testSchema")) .build() ) )) .schemas(mapOf( - Pair("testSchema", Schema.builder() + Pair("testSchema", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("key", Schema.builder() - .not(Schema.builder().type("integer").build()) + Pair("key", AsyncAPISchema.builder() + .not(AsyncAPISchema.builder().type("integer").build()) .build() ) )) diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/OneOf.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/OneOf.kt index 36d33248..95fe8434 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/OneOf.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/OneOf.kt @@ -1,13 +1,13 @@ package com.asyncapi.examples.v2._6_0 -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2._6_0.model.channel.ChannelItem import com.asyncapi.v2._6_0.model.channel.message.Message import com.asyncapi.v2._6_0.model.channel.message.OneOfMessages import com.asyncapi.v2._6_0.model.channel.operation.Operation import com.asyncapi.v2._6_0.model.component.Components import com.asyncapi.v2._6_0.model.info.Info -import com.asyncapi.v2.schema.Schema +import com.asyncapi.schemas.asyncapi.AsyncAPISchema class OneOf: AbstractExampleValidationTest() { @@ -35,10 +35,10 @@ class OneOf: AbstractExampleValidationTest() { .subscribe(Operation.builder() .message(OneOfMessages(listOf( Message.builder() - .payload(Schema.builder().ref("#/components/schemas/objectWithKey").build()) + .payload(Reference("#/components/schemas/objectWithKey")) .build(), Message.builder() - .payload(Schema.builder().ref("#/components/schemas/objectWithKey2").build()) + .payload(Reference("#/components/schemas/objectWithKey2")) .build(), ))) .build() @@ -52,39 +52,40 @@ class OneOf: AbstractExampleValidationTest() { return Components.builder() .messages(mapOf( Pair("testMessages", Message.builder() - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .oneOf(listOf( - Schema.builder().ref("#/components/schemas/objectWithKey").build(), - Schema.builder().ref("#/components/schemas/objectWithKey2").build() + AsyncAPISchema.builder().ref("#/components/schemas/objectWithKey").build(), + AsyncAPISchema.builder().ref("#/components/schemas/objectWithKey2").build() )) .build() ) .build() ), Pair("testMessage1", Message.builder() - .payload(Schema.builder().ref("#/components/schemas/objectWithKey").build()) + .payload(Reference("#/components/schemas/objectWithKey")) .build() ), Pair("testMessage2", Message.builder() - .payload(Schema.builder().ref("#/components/schemas/objectWithKey2").build()) + .payload(Reference("#/components/schemas/objectWithKey2")) .build() ) )) .schemas(mapOf( - Pair("objectWithKey", Schema.builder() + Pair("objectWithKey", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("key", Schema.builder() + Pair("key", AsyncAPISchema.builder() .type("string") .build() ) )) .build() ), - Pair("objectWithKey2", Schema.builder() + Pair("objectWithKey2", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("key2", Schema.builder() + Pair("key2", AsyncAPISchema.builder() .type("string") .build() ) diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/OperationSecurity.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/OperationSecurity.kt index 0b893a60..1c384e0a 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/OperationSecurity.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/OperationSecurity.kt @@ -1,18 +1,17 @@ package com.asyncapi.examples.v2._6_0 -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2._6_0.model.channel.ChannelItem import com.asyncapi.v2._6_0.model.channel.message.Message import com.asyncapi.v2._6_0.model.channel.operation.Operation import com.asyncapi.v2._6_0.model.component.Components import com.asyncapi.v2._6_0.model.info.Info -import com.asyncapi.v2.binding.operation.http.HTTPOperationBinding -import com.asyncapi.v2.binding.operation.http.HTTPOperationMethod -import com.asyncapi.v2.binding.operation.http.HTTPOperationType -import com.asyncapi.v2.schema.Schema -import com.asyncapi.v2.security_scheme.oauth2.OAuthFlows -import com.asyncapi.v2.security_scheme.oauth2.OAuth2SecurityScheme -import com.asyncapi.v2.security_scheme.oauth2.flow.ClientCredentialsOAuthFlow +import com.asyncapi.bindings.http.v0._3_0.operation.HTTPOperationBinding +import com.asyncapi.bindings.http.v0._3_0.operation.HTTPOperationMethod +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.OAuthFlows +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.OAuth2SecurityScheme +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow.ClientCredentialsOAuthFlow class OperationSecurity: AbstractExampleValidationTest() { @@ -36,7 +35,6 @@ class OperationSecurity: AbstractExampleValidationTest() { .message(Reference("#/components/messages/message")) .bindings(mapOf( Pair("http", HTTPOperationBinding.builder() - .type(HTTPOperationType.REQUEST) .method(HTTPOperationMethod.POST) .build()) )) @@ -56,10 +54,11 @@ class OperationSecurity: AbstractExampleValidationTest() { return Components.builder() .messages(mapOf( Pair("message", Message.builder() - .headers(Schema.builder() + .headers( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("X-SIGNATURE", Schema.builder() + Pair("X-SIGNATURE", AsyncAPISchema.builder() .type("string") .description("ECC message signature") .build() @@ -67,14 +66,15 @@ class OperationSecurity: AbstractExampleValidationTest() { )) .build() ) - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("metadata", Schema.builder() + Pair("metadata", AsyncAPISchema.builder() .ref("#/components/schemas/MetaData") .build() ), - Pair("notification", Schema.builder() + Pair("notification", AsyncAPISchema.builder() .ref("#/components/schemas/Notification") .build() ) @@ -85,20 +85,20 @@ class OperationSecurity: AbstractExampleValidationTest() { ) )) .schemas(mapOf( - Pair("MetaData", Schema.builder() + Pair("MetaData", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("topic", Schema.builder() + Pair("topic", AsyncAPISchema.builder() .type("string") .description("Topic subscribed to.") .build() ), - Pair("schemaVersion", Schema.builder() + Pair("schemaVersion", AsyncAPISchema.builder() .type("string") .description("The schema for this topic.") .build() ), - Pair("deprecated", Schema.builder() + Pair("deprecated", AsyncAPISchema.builder() .type("boolean") .description("If this is a deprecated schema or topic.") .defaultValue("false") @@ -107,61 +107,61 @@ class OperationSecurity: AbstractExampleValidationTest() { )) .build() ), - Pair("Notification", Schema.builder() + Pair("Notification", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("notificationId", Schema.builder() + Pair("notificationId", AsyncAPISchema.builder() .type("string") .description("The notification Id.") .build() ), - Pair("eventDate", Schema.builder() + Pair("eventDate", AsyncAPISchema.builder() .type("string") .description("The event date associated with this notification in UTC.") .build() ), - Pair("publishDate", Schema.builder() + Pair("publishDate", AsyncAPISchema.builder() .type("string") .description("The message publish date in UTC.") .build() ), - Pair("publishAttemptCount", Schema.builder() + Pair("publishAttemptCount", AsyncAPISchema.builder() .type("integer") .description("The number of attempts made to publish this message.") .build() ), - Pair("publishAttemptCount", Schema.builder() + Pair("publishAttemptCount", AsyncAPISchema.builder() .type("integer") .description("The number of attempts made to publish this message.") .build() ), - Pair("data", Schema.builder() + Pair("data", AsyncAPISchema.builder() .ref("#/components/schemas/AuthorizationRevocationData") .build() ) )) .build() ), - Pair("AuthorizationRevocationData", Schema.builder() + Pair("AuthorizationRevocationData", AsyncAPISchema.builder() .type("object") .description("The Authorization Revocation payload.") .properties(mapOf( - Pair("username", Schema.builder() + Pair("username", AsyncAPISchema.builder() .type("string") .description("The username for the user.") .build() ), - Pair("userId", Schema.builder() + Pair("userId", AsyncAPISchema.builder() .type("string") .description("The immutable public userId for the user") .build() ), - Pair("eiasToken", Schema.builder() + Pair("eiasToken", AsyncAPISchema.builder() .type("string") .description("The legacy eiasToken specific to the user") .build() ), - Pair("revokeReason", Schema.builder() + Pair("revokeReason", AsyncAPISchema.builder() .type("string") .enumValue(listOf( "REVOKED_BY_APP", @@ -172,7 +172,7 @@ class OperationSecurity: AbstractExampleValidationTest() { .description("The reason for authorization revocation") .build() ), - Pair("revocationDate", Schema.builder() + Pair("revocationDate", AsyncAPISchema.builder() .type("string") .description("Date and time when the authorization was revoked") .build() @@ -182,19 +182,26 @@ class OperationSecurity: AbstractExampleValidationTest() { ), )) .securitySchemes(mapOf( - Pair("petstore_auth", OAuth2SecurityScheme( + Pair("petstore_auth", + OAuth2SecurityScheme( "The oauth security descriptions", OAuthFlows( - null, - null, - ClientCredentialsOAuthFlow( - "", - mapOf(Pair("subscribe:auth_revocations", "Scope required for authorization revocation topic")), - "https://example.com/api/oauth/dialog" + null, + null, + ClientCredentialsOAuthFlow( + "", + mapOf( + Pair( + "subscribe:auth_revocations", + "Scope required for authorization revocation topic" + ) ), - null + "https://example.com/api/oauth/dialog" + ), + null ), - )) + ) + ) )) .build() } diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/RpcClient.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/RpcClient.kt index 07c4586f..15c85326 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/RpcClient.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/RpcClient.kt @@ -8,11 +8,11 @@ import com.asyncapi.v2._6_0.model.channel.operation.Operation import com.asyncapi.v2._6_0.model.component.Components import com.asyncapi.v2._6_0.model.info.Info import com.asyncapi.v2._6_0.model.server.Server -import com.asyncapi.v2.binding.channel.amqp.AMQPChannelBinding -import com.asyncapi.v2.binding.channel.amqp.AMQPChannelType -import com.asyncapi.v2.binding.channel.amqp.queue.AMQPChannelQueueProperties -import com.asyncapi.v2.binding.operation.amqp.AMQPOperationBinding -import com.asyncapi.v2.schema.Schema +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelBinding +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelType +import com.asyncapi.bindings.amqp.v0._3_0.channel.queue.AMQPChannelQueueProperties +import com.asyncapi.bindings.amqp.v0._3_0.operation.AMQPOperationBinding +import com.asyncapi.schemas.asyncapi.AsyncAPISchema class RpcClient: AbstractExampleValidationTest() { @@ -46,7 +46,8 @@ class RpcClient: AbstractExampleValidationTest() { Pair("{queue}", ChannelItem.builder() .parameters(mapOf( Pair("queue", Parameter.builder() - .schema(Schema.builder() + .schema( + AsyncAPISchema.builder() .type("string") .pattern("^amq\\\\.gen\\\\-.+\$") .build()) @@ -73,10 +74,11 @@ class RpcClient: AbstractExampleValidationTest() { )) .message(Message.builder() .correlationId(CorrelationId(null, "\$message.header#/correlation_id")) - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("result", Schema.builder() + Pair("result", AsyncAPISchema.builder() .type("number") .examples(listOf(7)) .build()) @@ -110,12 +112,13 @@ class RpcClient: AbstractExampleValidationTest() { )) .message(Message.builder() .correlationId(CorrelationId(null, "\$message.header#/correlation_id")) - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("numbers", Schema.builder() + Pair("numbers", AsyncAPISchema.builder() .type("array") - .items(Schema.builder().type("number").build()) + .items(AsyncAPISchema.builder().type("number").build()) .examples(listOf(listOf(4, 3))) .build()) )) diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/RpcServer.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/RpcServer.kt index 95fa19f1..14e767d2 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/RpcServer.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/RpcServer.kt @@ -8,11 +8,11 @@ import com.asyncapi.v2._6_0.model.channel.operation.Operation import com.asyncapi.v2._6_0.model.component.Components import com.asyncapi.v2._6_0.model.info.Info import com.asyncapi.v2._6_0.model.server.Server -import com.asyncapi.v2.binding.channel.amqp.AMQPChannelBinding -import com.asyncapi.v2.binding.channel.amqp.AMQPChannelType -import com.asyncapi.v2.binding.channel.amqp.queue.AMQPChannelQueueProperties -import com.asyncapi.v2.binding.operation.amqp.AMQPOperationBinding -import com.asyncapi.v2.schema.Schema +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelBinding +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelType +import com.asyncapi.bindings.amqp.v0._3_0.channel.queue.AMQPChannelQueueProperties +import com.asyncapi.bindings.amqp.v0._3_0.operation.AMQPOperationBinding +import com.asyncapi.schemas.asyncapi.AsyncAPISchema class RpcServer: AbstractExampleValidationTest() { @@ -46,7 +46,8 @@ class RpcServer: AbstractExampleValidationTest() { Pair("{queue}", ChannelItem.builder() .parameters(mapOf( Pair("queue", Parameter.builder() - .schema(Schema.builder() + .schema( + AsyncAPISchema.builder() .type("string") .pattern("^amq\\\\.gen\\\\-.+\$") .build()) @@ -73,10 +74,11 @@ class RpcServer: AbstractExampleValidationTest() { )) .message(Message.builder() .correlationId(CorrelationId(null, "\$message.header#/correlation_id")) - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("result", Schema.builder() + Pair("result", AsyncAPISchema.builder() .type("number") .examples(listOf(7)) .build()) @@ -104,12 +106,13 @@ class RpcServer: AbstractExampleValidationTest() { .operationId("sum") .message(Message.builder() .correlationId(CorrelationId(null, "\$message.header#/correlation_id")) - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("numbers", Schema.builder() + Pair("numbers", AsyncAPISchema.builder() .type("array") - .items(Schema.builder().type("number").build()) + .items(AsyncAPISchema.builder().type("number").build()) .examples(listOf(listOf(4, 3))) .build()) )) diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/SchemaFormatAsyncAPIPayload.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/SchemaFormatAsyncAPIPayload.kt new file mode 100644 index 00000000..e5026761 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/SchemaFormatAsyncAPIPayload.kt @@ -0,0 +1,88 @@ +package com.asyncapi.examples.v2._6_0 + +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.Reference +import com.asyncapi.v2._6_0.model.channel.ChannelItem +import com.asyncapi.v2._6_0.model.channel.message.Message +import com.asyncapi.v2._6_0.model.channel.operation.Operation +import com.asyncapi.v2._6_0.model.component.Components +import com.asyncapi.v2._6_0.model.info.Info +import com.asyncapi.v2._6_0.model.server.Server +import java.math.BigDecimal + +class SchemaFormatAsyncAPIPayload: AbstractExampleValidationTest() { + + override fun specificationLocation(): String = "/examples/v2.6.0/schemaFormat - asyncapi payload.yml" + + override fun expectedInfo(): Info { + return Info.builder() + .title("Kafka Queue Example") + .version("1.0.0") + .build() + } + + override fun expectedServers(): Map { + return mapOf( + Pair("activemq", Server.builder() + .url("tcp://localhost:61616") + .protocol("kafka") + .build() + ) + ) + } + + override fun expectedChannels(): Map { + return mapOf( + Pair("products", ChannelItem.builder() + .publish(Operation.builder() + .operationId("publishObjectMessage") + .message(Reference("#/components/messages/product")) + .build() + ) + .build() + ) + ) + } + + override fun expectedComponents(): Components { + return Components.builder() + .messages(mapOf( + Pair("product", Message.builder() + .name("product") + .title("An inventory product") + .summary("Product representing items in inventory") + .contentType("application/json") + .schemaFormat("application/vnd.aai.asyncapi+json;version=2.6.0") + .payload( + AsyncAPISchema.builder() + .id("https://example.com/person.schema.json") + .schema("http://json-schema.org/draft-07/schema#") + .title("Person") + .type("object") + .properties(mapOf( + Pair("firstName", AsyncAPISchema.builder() + .type("string") + .description("The person's first name.") + .build() + ), + Pair("lastName", AsyncAPISchema.builder() + .type("string") + .description("The person's last name.") + .build() + ), + Pair("age", AsyncAPISchema.builder() + .type("integer") + .description("Age in years which must be equal to or greater than zero.") + .minimum(BigDecimal.ZERO) + .build() + ) + )) + .build() + ) + .build() + ) + )) + .build() + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/SchemaFormatAvroPayload.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/SchemaFormatAvroPayload.kt new file mode 100644 index 00000000..78d7d4c9 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/SchemaFormatAvroPayload.kt @@ -0,0 +1,90 @@ +package com.asyncapi.examples.v2._6_0 + +import com.asyncapi.schemas.asyncapi.Reference +import com.asyncapi.schemas.avro.v1._9_0.* +import com.asyncapi.v2._6_0.model.channel.ChannelItem +import com.asyncapi.v2._6_0.model.channel.message.Message +import com.asyncapi.v2._6_0.model.channel.operation.Operation +import com.asyncapi.v2._6_0.model.component.Components +import com.asyncapi.v2._6_0.model.info.Info +import com.asyncapi.v2._6_0.model.server.Server + +class SchemaFormatAvroPayload: AbstractExampleValidationTest() { + + override fun specificationLocation(): String = "/examples/v2.6.0/schemaFormat - avro payload.yml" + + override fun expectedInfo(): Info { + return Info.builder() + .title("Kafka Queue Example") + .version("1.0.0") + .build() + } + + override fun expectedServers(): Map { + return mapOf( + Pair("activemq", Server.builder() + .url("tcp://localhost:61616") + .protocol("kafka") + .build() + ) + ) + } + + override fun expectedChannels(): Map { + return mapOf( + Pair("products", ChannelItem.builder() + .publish(Operation.builder() + .operationId("publishObjectMessage") + .message(Reference("#/components/messages/product")) + .build() + ) + .build() + ) + ) + } + + override fun expectedComponents(): Components { + return Components.builder() + .messages(mapOf( + Pair("product", Message.builder() + .name("product") + .title("An inventory product") + .summary("Product representing items in inventory") + .contentType("application/json") + .schemaFormat("application/vnd.apache.avro;version=1.11.1") + .payload(AvroSchemaRecord.builder() + .name("ApplicationEvent") + .namespace("model") + .doc("") + .fields(listOf( + AvroSchemaRecordField.builder() + .name("applicationId") + .type(AvroSchemaType.STRING) + .doc("Application ID") + .build(), + AvroSchemaRecordField.builder() + .name("status") + .type(AvroSchemaType.STRING) + .doc("Application Status") + .build(), + AvroSchemaRecordField.builder() + .name("documents") + .type( + AvroSchemaUnion( + AvroSchemaType.NULL, + AvroSchemaArray("model.DocumentInfo") + ) + ) + .doc("") + .defaultValue(null) + .build() + )) + .build() + ) + .build() + ) + )) + .build() + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/SchemaFormatJsonSchemaPayload.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/SchemaFormatJsonSchemaPayload.kt new file mode 100644 index 00000000..67a7d025 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/SchemaFormatJsonSchemaPayload.kt @@ -0,0 +1,88 @@ +package com.asyncapi.examples.v2._6_0 + +import com.asyncapi.schemas.json.JsonSchema +import com.asyncapi.schemas.asyncapi.Reference +import com.asyncapi.v2._6_0.model.channel.ChannelItem +import com.asyncapi.v2._6_0.model.channel.message.Message +import com.asyncapi.v2._6_0.model.channel.operation.Operation +import com.asyncapi.v2._6_0.model.component.Components +import com.asyncapi.v2._6_0.model.info.Info +import com.asyncapi.v2._6_0.model.server.Server +import java.math.BigDecimal + +class SchemaFormatJsonSchemaPayload: AbstractExampleValidationTest() { + + override fun specificationLocation(): String = "/examples/v2.6.0/schemaFormat - json schema payload.yml" + + override fun expectedInfo(): Info { + return Info.builder() + .title("Kafka Queue Example") + .version("1.0.0") + .build() + } + + override fun expectedServers(): Map { + return mapOf( + Pair("activemq", Server.builder() + .url("tcp://localhost:61616") + .protocol("kafka") + .build() + ) + ) + } + + override fun expectedChannels(): Map { + return mapOf( + Pair("products", ChannelItem.builder() + .publish(Operation.builder() + .operationId("publishObjectMessage") + .message(Reference("#/components/messages/product")) + .build() + ) + .build() + ) + ) + } + + override fun expectedComponents(): Components { + return Components.builder() + .messages(mapOf( + Pair("product", Message.builder() + .name("product") + .title("An inventory product") + .summary("Product representing items in inventory") + .contentType("application/json") + .schemaFormat("application/schema+json;version=draft-07") + .payload( + JsonSchema.builder() + .id("https://example.com/person.schema.json") + .schema("http://json-schema.org/draft-07/schema#") + .title("Person") + .type("object") + .properties(mapOf( + Pair("firstName", JsonSchema.builder() + .type("string") + .description("The person's first name.") + .build() + ), + Pair("lastName", JsonSchema.builder() + .type("string") + .description("The person's last name.") + .build() + ), + Pair("age", JsonSchema.builder() + .type("integer") + .description("Age in years which must be equal to or greater than zero.") + .minimum(BigDecimal.ZERO) + .build() + ) + )) + .build() + ) + .build() + ) + )) + .build() + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/SchemaFormatOpenAPIPayload.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/SchemaFormatOpenAPIPayload.kt new file mode 100644 index 00000000..3d3518ed --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/SchemaFormatOpenAPIPayload.kt @@ -0,0 +1,84 @@ +package com.asyncapi.examples.v2._6_0 + +import com.asyncapi.schemas.asyncapi.Reference +import com.asyncapi.schemas.openapi.v3._0_0.OpenAPISchema +import com.asyncapi.v2._6_0.model.channel.ChannelItem +import com.asyncapi.v2._6_0.model.channel.message.Message +import com.asyncapi.v2._6_0.model.channel.operation.Operation +import com.asyncapi.v2._6_0.model.component.Components +import com.asyncapi.v2._6_0.model.info.Info +import com.asyncapi.v2._6_0.model.server.Server + +class SchemaFormatOpenAPIPayload: AbstractExampleValidationTest() { + + override fun specificationLocation(): String = "/examples/v2.6.0/schemaFormat - openapi payload.yml" + + override fun expectedInfo(): Info { + return Info.builder() + .title("Kafka Queue Example") + .version("1.0.0") + .build() + } + + override fun expectedServers(): Map { + return mapOf( + Pair("activemq", Server.builder() + .url("tcp://localhost:61616") + .protocol("kafka") + .build() + ) + ) + } + + override fun expectedChannels(): Map { + return mapOf( + Pair("products", ChannelItem.builder() + .publish(Operation.builder() + .operationId("publishObjectMessage") + .message(Reference("#/components/messages/product")) + .build() + ) + .build() + ) + ) + } + + override fun expectedComponents(): Components { + return Components.builder() + .messages(mapOf( + Pair("product", Message.builder() + .name("product") + .title("An inventory product") + .summary("Product representing items in inventory") + .contentType("application/json") + .schemaFormat("application/vnd.oai.openapi;version=3.0.0") + .payload(OpenAPISchema.builder() + .type("object") + .properties(mapOf( + Pair("name", OpenAPISchema.builder() + .description("Every product has a name") + .type("string") + .example("Iphone") + .build() + ), + Pair("inventory", OpenAPISchema.builder() + .description("Count of items in inventory") + .type("number") + .nullable(true) + .build() + ), + Pair("id", OpenAPISchema.builder() + .description("Unique identifier of the product") + .type("number") + .build() + ) + )) + .build() + ) + .build() + ) + )) + .build() + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/SchemaFormatReferenceToAsyncAPIPayload.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/SchemaFormatReferenceToAsyncAPIPayload.kt new file mode 100644 index 00000000..88585553 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/SchemaFormatReferenceToAsyncAPIPayload.kt @@ -0,0 +1,61 @@ +package com.asyncapi.examples.v2._6_0 + +import com.asyncapi.schemas.asyncapi.Reference +import com.asyncapi.v2._6_0.model.channel.ChannelItem +import com.asyncapi.v2._6_0.model.channel.message.Message +import com.asyncapi.v2._6_0.model.channel.operation.Operation +import com.asyncapi.v2._6_0.model.component.Components +import com.asyncapi.v2._6_0.model.info.Info +import com.asyncapi.v2._6_0.model.server.Server + +class SchemaFormatReferenceToAsyncAPIPayload: AbstractExampleValidationTest() { + + override fun specificationLocation(): String = "/examples/v2.6.0/schemaFormat - reference to asyncapi payload.yml" + + override fun expectedInfo(): Info { + return Info.builder() + .title("Kafka Queue Example") + .version("1.0.0") + .build() + } + + override fun expectedServers(): Map { + return mapOf( + Pair("activemq", Server.builder() + .url("tcp://localhost:61616") + .protocol("kafka") + .build() + ) + ) + } + + override fun expectedChannels(): Map { + return mapOf( + Pair("products", ChannelItem.builder() + .publish(Operation.builder() + .operationId("publishObjectMessage") + .message(Reference("#/components/messages/product")) + .build() + ) + .build() + ) + ) + } + + override fun expectedComponents(): Components { + return Components.builder() + .messages(mapOf( + Pair("product", Message.builder() + .name("product") + .title("An inventory product") + .summary("Product representing items in inventory") + .contentType("application/json") + .schemaFormat("application/vnd.aai.asyncapi+json;version=2.6.0") + .payload(Reference("https://registry.local/persoon.json")) + .build() + ) + )) + .build() + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/SchemaFormatReferenceToAvroPayload.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/SchemaFormatReferenceToAvroPayload.kt new file mode 100644 index 00000000..450c6032 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/SchemaFormatReferenceToAvroPayload.kt @@ -0,0 +1,61 @@ +package com.asyncapi.examples.v2._6_0 + +import com.asyncapi.schemas.asyncapi.Reference +import com.asyncapi.v2._6_0.model.channel.ChannelItem +import com.asyncapi.v2._6_0.model.channel.message.Message +import com.asyncapi.v2._6_0.model.channel.operation.Operation +import com.asyncapi.v2._6_0.model.component.Components +import com.asyncapi.v2._6_0.model.info.Info +import com.asyncapi.v2._6_0.model.server.Server + +class SchemaFormatReferenceToAvroPayload: AbstractExampleValidationTest() { + + override fun specificationLocation(): String = "/examples/v2.6.0/schemaFormat - reference to avro payload.yml" + + override fun expectedInfo(): Info { + return Info.builder() + .title("Kafka Queue Example") + .version("1.0.0") + .build() + } + + override fun expectedServers(): Map { + return mapOf( + Pair("activemq", Server.builder() + .url("tcp://localhost:61616") + .protocol("kafka") + .build() + ) + ) + } + + override fun expectedChannels(): Map { + return mapOf( + Pair("products", ChannelItem.builder() + .publish(Operation.builder() + .operationId("publishObjectMessage") + .message(Reference("#/components/messages/product")) + .build() + ) + .build() + ) + ) + } + + override fun expectedComponents(): Components { + return Components.builder() + .messages(mapOf( + Pair("product", Message.builder() + .name("product") + .title("An inventory product") + .summary("Product representing items in inventory") + .contentType("application/json") + .schemaFormat("application/vnd.apache.avro;version=1.11.1") + .payload(Reference("https://registry.local/product.avsc")) + .build() + ) + )) + .build() + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/SchemaFormatReferenceToJsonSchemaPayload.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/SchemaFormatReferenceToJsonSchemaPayload.kt new file mode 100644 index 00000000..0ac8084c --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/SchemaFormatReferenceToJsonSchemaPayload.kt @@ -0,0 +1,61 @@ +package com.asyncapi.examples.v2._6_0 + +import com.asyncapi.schemas.asyncapi.Reference +import com.asyncapi.v2._6_0.model.channel.ChannelItem +import com.asyncapi.v2._6_0.model.channel.message.Message +import com.asyncapi.v2._6_0.model.channel.operation.Operation +import com.asyncapi.v2._6_0.model.component.Components +import com.asyncapi.v2._6_0.model.info.Info +import com.asyncapi.v2._6_0.model.server.Server + +class SchemaFormatReferenceToJsonSchemaPayload: AbstractExampleValidationTest() { + + override fun specificationLocation(): String = "/examples/v2.6.0/schemaFormat - reference to json schema payload.yml" + + override fun expectedInfo(): Info { + return Info.builder() + .title("Kafka Queue Example") + .version("1.0.0") + .build() + } + + override fun expectedServers(): Map { + return mapOf( + Pair("activemq", Server.builder() + .url("tcp://localhost:61616") + .protocol("kafka") + .build() + ) + ) + } + + override fun expectedChannels(): Map { + return mapOf( + Pair("products", ChannelItem.builder() + .publish(Operation.builder() + .operationId("publishObjectMessage") + .message(Reference("#/components/messages/product")) + .build() + ) + .build() + ) + ) + } + + override fun expectedComponents(): Components { + return Components.builder() + .messages(mapOf( + Pair("product", Message.builder() + .name("product") + .title("An inventory product") + .summary("Product representing items in inventory") + .contentType("application/json") + .schemaFormat("application/schema+json;version=draft-07") + .payload(Reference("https://registry.local/persoon.json")) + .build() + ) + )) + .build() + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/SchemaFormatReferenceToOpenAPIPayload.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/SchemaFormatReferenceToOpenAPIPayload.kt new file mode 100644 index 00000000..cf123d64 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/SchemaFormatReferenceToOpenAPIPayload.kt @@ -0,0 +1,63 @@ +package com.asyncapi.examples.v2._6_0 + +import com.asyncapi.schemas.asyncapi.Reference +import com.asyncapi.v2._6_0.model.channel.ChannelItem +import com.asyncapi.v2._6_0.model.channel.message.CorrelationId +import com.asyncapi.v2._6_0.model.channel.message.Message +import com.asyncapi.v2._6_0.model.channel.operation.Operation +import com.asyncapi.v2._6_0.model.component.Components +import com.asyncapi.v2._6_0.model.info.Info +import com.asyncapi.v2._6_0.model.server.Server + +class SchemaFormatReferenceToOpenAPIPayload: AbstractExampleValidationTest() { + + override fun specificationLocation(): String = "/examples/v2.6.0/schemaFormat - reference to openapi payload.yml" + + override fun expectedInfo(): Info { + return Info.builder() + .title("Kafka Queue Example") + .version("1.0.0") + .build() + } + + override fun expectedServers(): Map { + return mapOf( + Pair("activemq", Server.builder() + .url("tcp://localhost:61616") + .protocol("kafka") + .build() + ) + ) + } + + override fun expectedChannels(): Map { + return mapOf( + Pair("products", ChannelItem.builder() + .publish(Operation.builder() + .operationId("publishObjectMessage") + .message(Reference("#/components/messages/product")) + .build() + ) + .build() + ) + ) + } + + override fun expectedComponents(): Components { + return Components.builder() + .messages(mapOf( + Pair("product", Message.builder() + .name("product") + .title("An inventory product") + .summary("Product representing items in inventory") + .contentType("application/json") + .schemaFormat("application/vnd.oai.openapi;version=3.0.0") + .payload(Reference("https://registry.local/product.json")) + .correlationId(CorrelationId("abcd", "in headers")) + .build() + ) + )) + .build() + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/Simple.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/Simple.kt index c5254350..70277cd4 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/Simple.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/Simple.kt @@ -1,12 +1,12 @@ package com.asyncapi.examples.v2._6_0 -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2._6_0.model.channel.ChannelItem import com.asyncapi.v2._6_0.model.channel.message.Message import com.asyncapi.v2._6_0.model.channel.operation.Operation import com.asyncapi.v2._6_0.model.component.Components import com.asyncapi.v2._6_0.model.info.Info -import com.asyncapi.v2.schema.Schema +import com.asyncapi.schemas.asyncapi.AsyncAPISchema class Simple: AbstractExampleValidationTest() { @@ -38,15 +38,16 @@ class Simple: AbstractExampleValidationTest() { return Components.builder() .messages(mapOf( Pair("UserSignedUp", Message.builder() - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("displayName", Schema.builder() + Pair("displayName", AsyncAPISchema.builder() .type("string") .description("Name of the user") .build() ), - Pair("email", Schema.builder() + Pair("email", AsyncAPISchema.builder() .type("string") .format("email") .description("Email of the user") diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/SlackRtm.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/SlackRtm.kt index f1fc2791..27ad7be8 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/SlackRtm.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/SlackRtm.kt @@ -1,6 +1,6 @@ package com.asyncapi.examples.v2._6_0 -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2._6_0.model.channel.ChannelItem import com.asyncapi.v2._6_0.model.channel.message.Message import com.asyncapi.v2._6_0.model.channel.message.OneOfMessages @@ -8,8 +8,8 @@ import com.asyncapi.v2._6_0.model.channel.operation.Operation import com.asyncapi.v2._6_0.model.component.Components import com.asyncapi.v2._6_0.model.info.Info import com.asyncapi.v2._6_0.model.server.Server -import com.asyncapi.v2.schema.Schema -import com.asyncapi.v2.security_scheme.http.HttpApiKeySecurityScheme +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.security.v2.http.HttpApiKeySecurityScheme class SlackRtm: AbstractExampleValidationTest() { @@ -49,52 +49,52 @@ class SlackRtm: AbstractExampleValidationTest() { ) .subscribe(Operation.builder() .message(OneOfMessages(listOf( - Reference("#/components/messages/hello"), - Reference("#/components/messages/connectionError"), - Reference("#/components/messages/accountsChanged"), - Reference("#/components/messages/botAdded"), - Reference("#/components/messages/botChanged"), - Reference("#/components/messages/channelArchive"), - Reference("#/components/messages/channelCreated"), - Reference("#/components/messages/channelDeleted"), - Reference("#/components/messages/channelHistoryChanged"), - Reference("#/components/messages/channelJoined"), - Reference("#/components/messages/channelLeft"), - Reference("#/components/messages/channelMarked"), - Reference("#/components/messages/channelRename"), - Reference("#/components/messages/channelUnarchive"), - Reference("#/components/messages/commandsChanged"), - Reference("#/components/messages/dndUpdated"), - Reference("#/components/messages/dndUpdatedUser"), - Reference("#/components/messages/emailDomainChanged"), - Reference("#/components/messages/emojiRemoved"), - Reference("#/components/messages/emojiAdded"), - Reference("#/components/messages/fileChange"), - Reference("#/components/messages/fileCommentAdded"), - Reference("#/components/messages/fileCommentDeleted"), - Reference("#/components/messages/fileCommentEdited"), - Reference("#/components/messages/fileCreated"), - Reference("#/components/messages/fileDeleted"), - Reference("#/components/messages/filePublic"), - Reference("#/components/messages/fileShared"), - Reference("#/components/messages/fileUnshared"), - Reference("#/components/messages/goodbye"), - Reference("#/components/messages/groupArchive"), - Reference("#/components/messages/groupClose"), - Reference("#/components/messages/groupHistoryChanged"), - Reference("#/components/messages/groupJoined"), - Reference("#/components/messages/groupLeft"), - Reference("#/components/messages/groupMarked"), - Reference("#/components/messages/groupOpen"), - Reference("#/components/messages/groupRename"), - Reference("#/components/messages/groupUnarchive"), - Reference("#/components/messages/imClose"), - Reference("#/components/messages/imCreated"), - Reference("#/components/messages/imMarked"), - Reference("#/components/messages/imOpen"), - Reference("#/components/messages/manualPresenceChange"), - Reference("#/components/messages/memberJoinedChannel"), - Reference("#/components/messages/message") + Reference("#/components/messages/hello"), + Reference("#/components/messages/connectionError"), + Reference("#/components/messages/accountsChanged"), + Reference("#/components/messages/botAdded"), + Reference("#/components/messages/botChanged"), + Reference("#/components/messages/channelArchive"), + Reference("#/components/messages/channelCreated"), + Reference("#/components/messages/channelDeleted"), + Reference("#/components/messages/channelHistoryChanged"), + Reference("#/components/messages/channelJoined"), + Reference("#/components/messages/channelLeft"), + Reference("#/components/messages/channelMarked"), + Reference("#/components/messages/channelRename"), + Reference("#/components/messages/channelUnarchive"), + Reference("#/components/messages/commandsChanged"), + Reference("#/components/messages/dndUpdated"), + Reference("#/components/messages/dndUpdatedUser"), + Reference("#/components/messages/emailDomainChanged"), + Reference("#/components/messages/emojiRemoved"), + Reference("#/components/messages/emojiAdded"), + Reference("#/components/messages/fileChange"), + Reference("#/components/messages/fileCommentAdded"), + Reference("#/components/messages/fileCommentDeleted"), + Reference("#/components/messages/fileCommentEdited"), + Reference("#/components/messages/fileCreated"), + Reference("#/components/messages/fileDeleted"), + Reference("#/components/messages/filePublic"), + Reference("#/components/messages/fileShared"), + Reference("#/components/messages/fileUnshared"), + Reference("#/components/messages/goodbye"), + Reference("#/components/messages/groupArchive"), + Reference("#/components/messages/groupClose"), + Reference("#/components/messages/groupHistoryChanged"), + Reference("#/components/messages/groupJoined"), + Reference("#/components/messages/groupLeft"), + Reference("#/components/messages/groupMarked"), + Reference("#/components/messages/groupOpen"), + Reference("#/components/messages/groupRename"), + Reference("#/components/messages/groupUnarchive"), + Reference("#/components/messages/imClose"), + Reference("#/components/messages/imCreated"), + Reference("#/components/messages/imMarked"), + Reference("#/components/messages/imOpen"), + Reference("#/components/messages/manualPresenceChange"), + Reference("#/components/messages/memberJoinedChannel"), + Reference("#/components/messages/message") ))) .build() ) @@ -106,70 +106,73 @@ class SlackRtm: AbstractExampleValidationTest() { override fun expectedComponents(): Components? { return Components.builder() .securitySchemes(mapOf( - Pair("token", HttpApiKeySecurityScheme( + Pair("token", + HttpApiKeySecurityScheme( null, "token", HttpApiKeySecurityScheme.ApiKeyLocation.QUERY - )) + ) + ) )) .schemas(mapOf( Pair("attachment", - Schema.builder() + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("fallback", Schema.builder() + Pair("fallback", AsyncAPISchema.builder() .type("string") .build() ), - Pair("color", Schema.builder() + Pair("color", AsyncAPISchema.builder() .type("string") .build() ), - Pair("pretext", Schema.builder() + Pair("pretext", AsyncAPISchema.builder() .type("string") .build() ), - Pair("author_name", Schema.builder() + Pair("author_name", AsyncAPISchema.builder() .type("string") .build() ), - Pair("author_link", Schema.builder() + Pair("author_link", AsyncAPISchema.builder() .type("string") .format("uri") .build() ), - Pair("author_icon", Schema.builder() + Pair("author_icon", AsyncAPISchema.builder() .type("string") .format("uri") .build() ), - Pair("title", Schema.builder() + Pair("title", AsyncAPISchema.builder() .type("string") .build() ), - Pair("title_link", Schema.builder() + Pair("title_link", AsyncAPISchema.builder() .type("string") .format("uri") .build() ), - Pair("text", Schema.builder() + Pair("text", AsyncAPISchema.builder() .type("string") .build() ), - Pair("fields", Schema.builder() + Pair("fields", AsyncAPISchema.builder() .type("array") - .items(Schema.builder() + .items( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("title", Schema.builder() + Pair("title", AsyncAPISchema.builder() .type("string") .build() ), - Pair("value", Schema.builder() + Pair("value", AsyncAPISchema.builder() .type("string") .build() ), - Pair("short", Schema.builder() + Pair("short", AsyncAPISchema.builder() .type("boolean") .build() ), @@ -178,26 +181,26 @@ class SlackRtm: AbstractExampleValidationTest() { ) .build() ), - Pair("image_url", Schema.builder() + Pair("image_url", AsyncAPISchema.builder() .type("string") .format("uri") .build() ), - Pair("thumb_url", Schema.builder() + Pair("thumb_url", AsyncAPISchema.builder() .type("string") .format("uri") .build() ), - Pair("footer", Schema.builder() + Pair("footer", AsyncAPISchema.builder() .type("string") .build() ), - Pair("footer_icon", Schema.builder() + Pair("footer_icon", AsyncAPISchema.builder() .type("string") .format("uri") .build() ), - Pair("ts", Schema.builder() + Pair("ts", AsyncAPISchema.builder() .type("number") .build() ), @@ -209,10 +212,11 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("hello", Message.builder() .summary("First event received upon connection.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("hello")) .build() @@ -225,19 +229,20 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("connectionError", Message.builder() .summary("Event received when a connection error happens.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("error")) .build() ), - Pair("error", Schema.builder() + Pair("error", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("code", Schema.builder().type("number").build()), - Pair("msg", Schema.builder().type("string").build()), + Pair("code", AsyncAPISchema.builder().type("number").build()), + Pair("msg", AsyncAPISchema.builder().type("string").build()), )) .build() ) @@ -249,10 +254,11 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("accountsChanged", Message.builder() .summary("The list of accounts a user is signed into has changed.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("accounts_changed")) .build() @@ -265,32 +271,33 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("botAdded", Message.builder() .summary("A bot user was added.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("bot_added")) .build() ), - Pair("bot", Schema.builder() + Pair("bot", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder() + Pair("id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("app_id", Schema.builder() + Pair("app_id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("name", Schema.builder() + Pair("name", AsyncAPISchema.builder() .type("string") .build() ), - Pair("icons", Schema.builder() + Pair("icons", AsyncAPISchema.builder() .type("object") - .additionalProperties(Schema.builder().type("string").build()) + .additionalProperties(AsyncAPISchema.builder().type("string").build()) .build() ) )) @@ -304,32 +311,33 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("botChanged", Message.builder() .summary("A bot user was changed.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("bot_added")) .build() ), - Pair("bot", Schema.builder() + Pair("bot", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder() + Pair("id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("app_id", Schema.builder() + Pair("app_id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("name", Schema.builder() + Pair("name", AsyncAPISchema.builder() .type("string") .build() ), - Pair("icons", Schema.builder() + Pair("icons", AsyncAPISchema.builder() .type("object") - .additionalProperties(Schema.builder().type("string").build()) + .additionalProperties(AsyncAPISchema.builder().type("string").build()) .build() ) )) @@ -343,19 +351,20 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("channelArchive", Message.builder() .summary("A channel was archived.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("channel_archive")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), - Pair("user", Schema.builder() + Pair("user", AsyncAPISchema.builder() .type("string") .build() ), @@ -367,30 +376,31 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("channelCreated", Message.builder() .summary("A channel was created.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("channel_created")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder() + Pair("id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("name", Schema.builder() + Pair("name", AsyncAPISchema.builder() .type("string") .build() ), - Pair("created", Schema.builder() + Pair("created", AsyncAPISchema.builder() .type("number") .build() ), - Pair("creator", Schema.builder() + Pair("creator", AsyncAPISchema.builder() .type("string") .build() ) @@ -405,15 +415,16 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("channelDeleted", Message.builder() .summary("A channel was deleted.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("channel_deleted")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ) @@ -425,23 +436,24 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("channelHistoryChanged", Message.builder() .summary("Bulk updates were made to a channel's history.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("channel_history_changed")) .build() ), - Pair("latest", Schema.builder() + Pair("latest", AsyncAPISchema.builder() .type("string") .build() ), - Pair("ts", Schema.builder() + Pair("ts", AsyncAPISchema.builder() .type("string") .build() ), - Pair("event_ts", Schema.builder() + Pair("event_ts", AsyncAPISchema.builder() .type("string") .build() ) @@ -453,30 +465,31 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("channelJoined", Message.builder() .summary("You joined a channel.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("channel_joined")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder() + Pair("id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("name", Schema.builder() + Pair("name", AsyncAPISchema.builder() .type("string") .build() ), - Pair("created", Schema.builder() + Pair("created", AsyncAPISchema.builder() .type("number") .build() ), - Pair("creator", Schema.builder() + Pair("creator", AsyncAPISchema.builder() .type("string") .build() ) @@ -491,15 +504,16 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("channelLeft", Message.builder() .summary("You left a channel.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("channel_left")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ) @@ -511,19 +525,20 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("channelMarked", Message.builder() .summary("Your channel read marker was updated.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("channel_marked")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), - Pair("ts", Schema.builder() + Pair("ts", AsyncAPISchema.builder() .type("string") .build() ) @@ -535,26 +550,27 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("channelRename", Message.builder() .summary("A channel was renamed.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("channel_rename")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder() + Pair("id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("name", Schema.builder() + Pair("name", AsyncAPISchema.builder() .type("string") .build() ), - Pair("created", Schema.builder() + Pair("created", AsyncAPISchema.builder() .type("number") .build() ) @@ -569,19 +585,20 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("channelUnarchive", Message.builder() .summary("A channel was unarchived.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("channel_unarchive")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), - Pair("user", Schema.builder() + Pair("user", AsyncAPISchema.builder() .type("string") .build() ), @@ -593,15 +610,16 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("commandsChanged", Message.builder() .summary("A slash command has been added or changed.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("commands_changed")) .build() ), - Pair("event_ts", Schema.builder() + Pair("event_ts", AsyncAPISchema.builder() .type("string") .build() ) @@ -613,38 +631,39 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("dndUpdated", Message.builder() .summary("Do not Disturb settings changed for the current user.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("dnd_updated")) .build() ), - Pair("user", Schema.builder() + Pair("user", AsyncAPISchema.builder() .type("string") .build() ), - Pair("dnd_status", Schema.builder() + Pair("dnd_status", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("dnd_enabled", Schema.builder() + Pair("dnd_enabled", AsyncAPISchema.builder() .type("boolean") .build() ), - Pair("next_dnd_start_ts", Schema.builder() + Pair("next_dnd_start_ts", AsyncAPISchema.builder() .type("number") .build() ), - Pair("next_dnd_end_ts", Schema.builder() + Pair("next_dnd_end_ts", AsyncAPISchema.builder() .type("number") .build() ), - Pair("snooze_enabled", Schema.builder() + Pair("snooze_enabled", AsyncAPISchema.builder() .type("boolean") .build() ), - Pair("snooze_endtime", Schema.builder() + Pair("snooze_endtime", AsyncAPISchema.builder() .type("number") .build() ) @@ -659,30 +678,31 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("dndUpdatedUser", Message.builder() .summary("Do not Disturb settings changed for a member.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("dnd_updated_user")) .build() ), - Pair("user", Schema.builder() + Pair("user", AsyncAPISchema.builder() .type("string") .build() ), - Pair("dnd_status", Schema.builder() + Pair("dnd_status", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("dnd_enabled", Schema.builder() + Pair("dnd_enabled", AsyncAPISchema.builder() .type("boolean") .build() ), - Pair("next_dnd_start_ts", Schema.builder() + Pair("next_dnd_start_ts", AsyncAPISchema.builder() .type("number") .build() ), - Pair("next_dnd_end_ts", Schema.builder() + Pair("next_dnd_end_ts", AsyncAPISchema.builder() .type("number") .build() ) @@ -697,19 +717,20 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("emailDomainChanged", Message.builder() .summary("The workspace email domain has changed.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("email_domain_changed")) .build() ), - Pair("email_domain", Schema.builder() + Pair("email_domain", AsyncAPISchema.builder() .type("string") .build() ), - Pair("event_ts", Schema.builder() + Pair("event_ts", AsyncAPISchema.builder() .type("string") .build() ), @@ -721,25 +742,26 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("emojiRemoved", Message.builder() .summary("A custom emoji has been removed.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("emoji_changed")) .build() ), - Pair("subtype", Schema.builder() + Pair("subtype", AsyncAPISchema.builder() .type("string") .enumValue(listOf("remove")) .build() ), - Pair("names", Schema.builder() + Pair("names", AsyncAPISchema.builder() .type("array") - .items(Schema.builder().type("string").build()) + .items(AsyncAPISchema.builder().type("string").build()) .build() ), - Pair("event_ts", Schema.builder() + Pair("event_ts", AsyncAPISchema.builder() .type("string") .build() ), @@ -751,29 +773,30 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("emojiAdded", Message.builder() .summary("A custom emoji has been added.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("emoji_changed")) .build() ), - Pair("subtype", Schema.builder() + Pair("subtype", AsyncAPISchema.builder() .type("string") .enumValue(listOf("add")) .build() ), - Pair("name", Schema.builder() + Pair("name", AsyncAPISchema.builder() .type("string") .build() ), - Pair("value", Schema.builder() + Pair("value", AsyncAPISchema.builder() .type("string") .format("uri") .build() ), - Pair("event_ts", Schema.builder() + Pair("event_ts", AsyncAPISchema.builder() .type("string") .build() ), @@ -785,22 +808,23 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("fileChange", Message.builder() .summary("A file was changed.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("file_change")) .build() ), - Pair("file_id", Schema.builder() + Pair("file_id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("file", Schema.builder() + Pair("file", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder().type("string").build()), + Pair("id", AsyncAPISchema.builder().type("string").build()), )) .build() ), @@ -812,23 +836,26 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("fileCommentAdded", Message.builder() .summary("A file comment was added.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("file_comment_added")) .build() ), - Pair("comment", Schema()), - Pair("file_id", Schema.builder() + Pair("comment", + AsyncAPISchema() + ), + Pair("file_id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("file", Schema.builder() + Pair("file", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder().type("string").build()), + Pair("id", AsyncAPISchema.builder().type("string").build()), )) .build() ), @@ -840,26 +867,27 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("fileCommentDeleted", Message.builder() .summary("A file comment was deleted.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("file_comment_deleted")) .build() ), - Pair("comment", Schema.builder() + Pair("comment", AsyncAPISchema.builder() .type("string") .build() ), - Pair("file_id", Schema.builder() + Pair("file_id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("file", Schema.builder() + Pair("file", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder().type("string").build()), + Pair("id", AsyncAPISchema.builder().type("string").build()), )) .build() ), @@ -871,23 +899,26 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("fileCommentEdited", Message.builder() .summary("A file comment was edited.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("file_comment_edited")) .build() ), - Pair("comment", Schema()), - Pair("file_id", Schema.builder() + Pair("comment", + AsyncAPISchema() + ), + Pair("file_id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("file", Schema.builder() + Pair("file", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder().type("string").build()), + Pair("id", AsyncAPISchema.builder().type("string").build()), )) .build() ), @@ -899,22 +930,23 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("fileCreated", Message.builder() .summary("A file was created.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("file_created")) .build() ), - Pair("file_id", Schema.builder() + Pair("file_id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("file", Schema.builder() + Pair("file", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder().type("string").build()), + Pair("id", AsyncAPISchema.builder().type("string").build()), )) .build() ), @@ -926,19 +958,20 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("fileDeleted", Message.builder() .summary("A file was deleted.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("file_deleted")) .build() ), - Pair("file_id", Schema.builder() + Pair("file_id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("event_ts", Schema.builder() + Pair("event_ts", AsyncAPISchema.builder() .type("string") .build() ), @@ -950,22 +983,23 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("filePublic", Message.builder() .summary("A file was made public.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("file_public")) .build() ), - Pair("file_id", Schema.builder() + Pair("file_id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("file", Schema.builder() + Pair("file", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder().type("string").build()), + Pair("id", AsyncAPISchema.builder().type("string").build()), )) .build() ), @@ -977,22 +1011,23 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("fileShared", Message.builder() .summary("A file was shared.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("file_shared")) .build() ), - Pair("file_id", Schema.builder() + Pair("file_id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("file", Schema.builder() + Pair("file", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder().type("string").build()), + Pair("id", AsyncAPISchema.builder().type("string").build()), )) .build() ), @@ -1004,22 +1039,23 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("fileUnshared", Message.builder() .summary("A file was unshared.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("file_unshared")) .build() ), - Pair("file_id", Schema.builder() + Pair("file_id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("file", Schema.builder() + Pair("file", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder().type("string").build()), + Pair("id", AsyncAPISchema.builder().type("string").build()), )) .build() ), @@ -1031,10 +1067,11 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("goodbye", Message.builder() .summary("The server intends to close the connection soon.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("goodbye")) .build() @@ -1047,15 +1084,16 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("groupArchive", Message.builder() .summary("A private channel was archived.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("group_archive")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), @@ -1067,19 +1105,20 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("groupClose", Message.builder() .summary("You closed a private channel.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("group_close")) .build() ), - Pair("user", Schema.builder() + Pair("user", AsyncAPISchema.builder() .type("string") .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), @@ -1091,23 +1130,24 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("groupHistoryChanged", Message.builder() .summary("Bulk updates were made to a private channel's history.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("group_history_changed")) .build() ), - Pair("latest", Schema.builder() + Pair("latest", AsyncAPISchema.builder() .type("string") .build() ), - Pair("ts", Schema.builder() + Pair("ts", AsyncAPISchema.builder() .type("string") .build() ), - Pair("event_ts", Schema.builder() + Pair("event_ts", AsyncAPISchema.builder() .type("string") .build() ), @@ -1119,30 +1159,31 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("groupJoined", Message.builder() .summary("You joined a private channel.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("group_joined")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder() + Pair("id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("name", Schema.builder() + Pair("name", AsyncAPISchema.builder() .type("string") .build() ), - Pair("created", Schema.builder() + Pair("created", AsyncAPISchema.builder() .type("number") .build() ), - Pair("creator", Schema.builder() + Pair("creator", AsyncAPISchema.builder() .type("string") .build() ), @@ -1157,15 +1198,16 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("groupLeft", Message.builder() .summary("You left a private channel.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("group_left")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), @@ -1177,19 +1219,20 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("groupMarked", Message.builder() .summary("A private channel read marker was updated.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("group_marked")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), - Pair("ts", Schema.builder() + Pair("ts", AsyncAPISchema.builder() .type("string") .build() ), @@ -1201,19 +1244,20 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("groupOpen", Message.builder() .summary("You opened a private channel.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("group_open")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), - Pair("user", Schema.builder() + Pair("user", AsyncAPISchema.builder() .type("string") .build() ), @@ -1225,26 +1269,27 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("groupRename", Message.builder() .summary("A private channel was renamed.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("group_rename")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder() + Pair("id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("name", Schema.builder() + Pair("name", AsyncAPISchema.builder() .type("string") .build() ), - Pair("created", Schema.builder() + Pair("created", AsyncAPISchema.builder() .type("number") .build() ), @@ -1259,19 +1304,20 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("groupUnarchive", Message.builder() .summary("A private channel was unarchived.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("group_unarchive")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), - Pair("user", Schema.builder() + Pair("user", AsyncAPISchema.builder() .type("string") .build() ), @@ -1283,19 +1329,20 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("imClose", Message.builder() .summary("You closed a DM.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("im_close")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), - Pair("user", Schema.builder() + Pair("user", AsyncAPISchema.builder() .type("string") .build() ), @@ -1307,37 +1354,38 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("imCreated", Message.builder() .summary("A DM was created.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("im_created")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("id", Schema.builder() + Pair("id", AsyncAPISchema.builder() .type("string") .build() ), - Pair("name", Schema.builder() + Pair("name", AsyncAPISchema.builder() .type("string") .build() ), - Pair("created", Schema.builder() + Pair("created", AsyncAPISchema.builder() .type("number") .build() ), - Pair("creator", Schema.builder() + Pair("creator", AsyncAPISchema.builder() .type("string") .build() ), )) .build() ), - Pair("user", Schema.builder() + Pair("user", AsyncAPISchema.builder() .type("string") .build() ), @@ -1349,19 +1397,20 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("imMarked", Message.builder() .summary("A direct message read marker was updated.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("im_marked")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), - Pair("ts", Schema.builder() + Pair("ts", AsyncAPISchema.builder() .type("string") .build() ), @@ -1373,19 +1422,20 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("imOpen", Message.builder() .summary("You opened a DM.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("im_open")) .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), - Pair("user", Schema.builder() + Pair("user", AsyncAPISchema.builder() .type("string") .build() ), @@ -1397,15 +1447,16 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("manualPresenceChange", Message.builder() .summary("You manually updated your presence.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("manual_presence_change")) .build() ), - Pair("presence", Schema.builder() + Pair("presence", AsyncAPISchema.builder() .type("string") .build() ), @@ -1417,32 +1468,33 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("memberJoinedChannel", Message.builder() .summary("A user joined a public or private channel.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("member_joined_channel")) .build() ), - Pair("user", Schema.builder() + Pair("user", AsyncAPISchema.builder() .type("string") .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), - Pair("channel_type", Schema.builder() + Pair("channel_type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("C", "G")) .build() ), - Pair("team", Schema.builder() + Pair("team", AsyncAPISchema.builder() .type("string") .build() ), - Pair("inviter", Schema.builder() + Pair("inviter", AsyncAPISchema.builder() .type("string") .build() ), @@ -1454,28 +1506,29 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("memberLeftChannel", Message.builder() .summary("A user left a public or private channel.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("member_left_channel")) .build() ), - Pair("user", Schema.builder() + Pair("user", AsyncAPISchema.builder() .type("string") .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), - Pair("channel_type", Schema.builder() + Pair("channel_type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("C", "G")) .build() ), - Pair("team", Schema.builder() + Pair("team", AsyncAPISchema.builder() .type("string") .build() ), @@ -1487,43 +1540,44 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("message", Message.builder() .summary("A message was sent to a channel.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("message")) .build() ), - Pair("user", Schema.builder() + Pair("user", AsyncAPISchema.builder() .type("string") .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), - Pair("text", Schema.builder() + Pair("text", AsyncAPISchema.builder() .type("string") .build() ), - Pair("ts", Schema.builder() + Pair("ts", AsyncAPISchema.builder() .type("string") .build() ), - Pair("attachments", Schema.builder() + Pair("attachments", AsyncAPISchema.builder() .type("array") - .items(Schema.builder().ref("#/components/schemas/attachment").build()) + .items(AsyncAPISchema.builder().ref("#/components/schemas/attachment").build()) .build() ), - Pair("edited", Schema.builder() + Pair("edited", AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("user", Schema.builder() + Pair("user", AsyncAPISchema.builder() .type("string") .build() ), - Pair("ts", Schema.builder() + Pair("ts", AsyncAPISchema.builder() .type("string") .build() ) @@ -1538,23 +1592,24 @@ class SlackRtm: AbstractExampleValidationTest() { Pair("outgoingMessage", Message.builder() .summary("A message was sent to a channel.") - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("message")) .build() ), - Pair("id", Schema.builder() + Pair("id", AsyncAPISchema.builder() .type("number") .build() ), - Pair("channel", Schema.builder() + Pair("channel", AsyncAPISchema.builder() .type("string") .build() ), - Pair("text", Schema.builder() + Pair("text", AsyncAPISchema.builder() .type("string") .build() ), diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/StreetlightsKafka.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/StreetlightsKafka.kt index ede0887b..b1d5c555 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/StreetlightsKafka.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/StreetlightsKafka.kt @@ -1,6 +1,6 @@ package com.asyncapi.examples.v2._6_0 -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2._6_0.model.Tag import com.asyncapi.v2._6_0.model.channel.ChannelItem import com.asyncapi.v2._6_0.model.channel.Parameter @@ -12,9 +12,9 @@ import com.asyncapi.v2._6_0.model.component.Components import com.asyncapi.v2._6_0.model.info.Info import com.asyncapi.v2._6_0.model.info.License import com.asyncapi.v2._6_0.model.server.Server -import com.asyncapi.v2.binding.operation.kafka.KafkaOperationBinding -import com.asyncapi.v2.schema.Schema -import com.asyncapi.v2.security_scheme.SecurityScheme +import com.asyncapi.bindings.kafka.v0._5_0.operation.KafkaOperationBinding +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.security.v2.SecurityScheme import java.math.BigDecimal class StreetlightsKafka: AbstractExampleValidationTest() { @@ -94,7 +94,9 @@ class StreetlightsKafka: AbstractExampleValidationTest() { Pair("smartylighting.streetlights.1.0.event.{streetlightId}.lighting.measured", ChannelItem.builder() .description("The topic on which measured values may be produced and consumed.") - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .publish(Operation.builder() .operationId("receiveLightMeasurement") .summary("Inform about environmental lighting conditions of a particular streetlight.") @@ -105,7 +107,9 @@ class StreetlightsKafka: AbstractExampleValidationTest() { ), Pair("smartylighting.streetlights.1.0.action.{streetlightId}.turn.on", ChannelItem.builder() - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .subscribe(Operation.builder() .operationId("turnOn") .traits(listOf(Reference("#/components/operationTraits/kafka"))) @@ -115,7 +119,9 @@ class StreetlightsKafka: AbstractExampleValidationTest() { ), Pair("smartylighting.streetlights.1.0.action.{streetlightId}.turn.off", ChannelItem.builder() - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .subscribe(Operation.builder() .operationId("turnOff") .traits(listOf(Reference("#/components/operationTraits/kafka"))) @@ -125,7 +131,9 @@ class StreetlightsKafka: AbstractExampleValidationTest() { ), Pair("smartylighting.streetlights.1.0.action.{streetlightId}.dim", ChannelItem.builder() - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .subscribe(Operation.builder() .operationId("dimLight") .traits(listOf(Reference("#/components/operationTraits/kafka"))) @@ -146,7 +154,7 @@ class StreetlightsKafka: AbstractExampleValidationTest() { .summary("Inform about environmental lighting conditions of a particular streetlight.") .contentType("application/json") .traits(listOf(Reference("#/components/messageTraits/commonHeaders"))) - .payload(Schema.builder().ref("#/components/schemas/lightMeasuredPayload").build()) + .payload(Reference("#/components/schemas/lightMeasuredPayload")) .build() ), Pair("turnOnOff", @@ -155,7 +163,7 @@ class StreetlightsKafka: AbstractExampleValidationTest() { .title("Turn on/off") .summary("Command a particular streetlight to turn the lights on or off.") .traits(listOf(Reference("#/components/messageTraits/commonHeaders"))) - .payload(Schema.builder().ref("#/components/schemas/turnOnOffPayload").build()) + .payload(Reference("#/components/schemas/turnOnOffPayload")) .build() ), Pair("dimLight", @@ -164,51 +172,51 @@ class StreetlightsKafka: AbstractExampleValidationTest() { .title("Dim light") .summary("Command a particular streetlight to dim the lights.") .traits(listOf(Reference("#/components/messageTraits/commonHeaders"))) - .payload(Schema.builder().ref("#/components/schemas/dimLightPayload").build()) + .payload(Reference("#/components/schemas/dimLightPayload")) .build() ) )) .schemas(mapOf( Pair("lightMeasuredPayload", - Schema.builder() + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("lumens", - Schema.builder() + AsyncAPISchema.builder() .type("integer") .minimum(BigDecimal.ZERO) .description("Light intensity measured in lumens.") .build() ), Pair("sentAt", - Schema.builder().ref("#/components/schemas/sentAt").build() + AsyncAPISchema.builder().ref("#/components/schemas/sentAt").build() ) )) .build() ), Pair("turnOnOffPayload", - Schema.builder() + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("command", - Schema.builder() + AsyncAPISchema.builder() .type("string") .enumValue(listOf("on", "off")) .description("Whether to turn on or off the light.") .build() ), Pair("sentAt", - Schema.builder().ref("#/components/schemas/sentAt").build() + AsyncAPISchema.builder().ref("#/components/schemas/sentAt").build() ) )) .build() ), Pair("dimLightPayload", - Schema.builder() + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("percentage", - Schema.builder() + AsyncAPISchema.builder() .type("integer") .minimum(BigDecimal.ZERO) .maximum(BigDecimal.valueOf(100)) @@ -216,13 +224,13 @@ class StreetlightsKafka: AbstractExampleValidationTest() { .build() ), Pair("sentAt", - Schema.builder().ref("#/components/schemas/sentAt").build() + AsyncAPISchema.builder().ref("#/components/schemas/sentAt").build() ) )) .build() ), Pair("sentAt", - Schema.builder() + AsyncAPISchema.builder() .type("string") .format("date-time") .description("Date and time when the message was sent.") @@ -246,17 +254,18 @@ class StreetlightsKafka: AbstractExampleValidationTest() { .parameters(mapOf( Pair("streetlightId", Parameter.builder() .description("The ID of the streetlight.") - .schema(Schema.builder().type("string").build()) + .schema(AsyncAPISchema.builder().type("string").build()) .build() ) )) .messageTraits(mapOf( Pair("commonHeaders", MessageTrait.builder() - .headers(Schema.builder() + .headers( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("my-app-header", Schema.builder() + Pair("my-app-header", AsyncAPISchema.builder() .type("integer") .minimum(BigDecimal.ZERO) .maximum(BigDecimal.valueOf(100)) @@ -273,7 +282,8 @@ class StreetlightsKafka: AbstractExampleValidationTest() { OperationTrait.builder() .bindings(mapOf( Pair("kafka", KafkaOperationBinding.builder() - .clientId(Schema.builder() + .clientId( + AsyncAPISchema.builder() .type("string") .enumValue(listOf("my-app-id")) .build() diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/StreetlightsMQTT.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/StreetlightsMQTT.kt index 44b393b0..1aa9230e 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/StreetlightsMQTT.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/StreetlightsMQTT.kt @@ -1,6 +1,6 @@ package com.asyncapi.examples.v2._6_0 -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2._6_0.model.Tag import com.asyncapi.v2._6_0.model.channel.ChannelItem import com.asyncapi.v2._6_0.model.channel.Parameter @@ -13,16 +13,16 @@ import com.asyncapi.v2._6_0.model.info.Info import com.asyncapi.v2._6_0.model.info.License import com.asyncapi.v2._6_0.model.server.Server import com.asyncapi.v2._6_0.model.server.ServerVariable -import com.asyncapi.v2.binding.operation.mqtt.MQTTOperationBinding -import com.asyncapi.v2.schema.Schema -import com.asyncapi.v2.security_scheme.ApiKeySecurityScheme -import com.asyncapi.v2.security_scheme.OpenIdConnectSecurityScheme -import com.asyncapi.v2.security_scheme.oauth2.OAuth2SecurityScheme -import com.asyncapi.v2.security_scheme.oauth2.OAuthFlows -import com.asyncapi.v2.security_scheme.oauth2.flow.AuthorizationCodeOAuthFlow -import com.asyncapi.v2.security_scheme.oauth2.flow.ClientCredentialsOAuthFlow -import com.asyncapi.v2.security_scheme.oauth2.flow.ImplicitOAuthFlow -import com.asyncapi.v2.security_scheme.oauth2.flow.PasswordOAuthFlow +import com.asyncapi.bindings.mqtt.v0._2_0.operation.MQTTOperationBinding +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.security.v2.ApiKeySecurityScheme +import com.asyncapi.schemas.asyncapi.security.v2.OpenIdConnectSecurityScheme +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.OAuth2SecurityScheme +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.OAuthFlows +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow.AuthorizationCodeOAuthFlow +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow.ClientCredentialsOAuthFlow +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow.ImplicitOAuthFlow +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow.PasswordOAuthFlow import java.math.BigDecimal class StreetlightsMQTT: AbstractExampleValidationTest() { @@ -86,7 +86,9 @@ class StreetlightsMQTT: AbstractExampleValidationTest() { Pair("smartylighting/streetlights/1/0/event/{streetlightId}/lighting/measured", ChannelItem.builder() .description("The topic on which measured values may be produced and consumed.") - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .publish(Operation.builder() .operationId("receiveLightMeasurement") .summary("Inform about environmental lighting conditions of a particular streetlight.") @@ -97,7 +99,9 @@ class StreetlightsMQTT: AbstractExampleValidationTest() { ), Pair("smartylighting/streetlights/1/0/action/{streetlightId}/turn/on", ChannelItem.builder() - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .subscribe(Operation.builder() .operationId("turnOn") .traits(listOf(Reference("#/components/operationTraits/mqtt"))) @@ -107,7 +111,9 @@ class StreetlightsMQTT: AbstractExampleValidationTest() { ), Pair("smartylighting/streetlights/1/0/action/{streetlightId}/turn/off", ChannelItem.builder() - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .subscribe(Operation.builder() .operationId("turnOff") .traits(listOf(Reference("#/components/operationTraits/mqtt"))) @@ -117,7 +123,9 @@ class StreetlightsMQTT: AbstractExampleValidationTest() { ), Pair("smartylighting/streetlights/1/0/action/{streetlightId}/dim", ChannelItem.builder() - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .subscribe(Operation.builder() .operationId("dimLight") .traits(listOf(Reference("#/components/operationTraits/mqtt"))) @@ -138,7 +146,7 @@ class StreetlightsMQTT: AbstractExampleValidationTest() { .summary("Inform about environmental lighting conditions of a particular streetlight.") .contentType("application/json") .traits(listOf(Reference("#/components/messageTraits/commonHeaders"))) - .payload(Schema.builder().ref("#/components/schemas/lightMeasuredPayload").build()) + .payload(Reference("#/components/schemas/lightMeasuredPayload")) .build() ), Pair("turnOnOff", @@ -147,7 +155,7 @@ class StreetlightsMQTT: AbstractExampleValidationTest() { .title("Turn on/off") .summary("Command a particular streetlight to turn the lights on or off.") .traits(listOf(Reference("#/components/messageTraits/commonHeaders"))) - .payload(Schema.builder().ref("#/components/schemas/turnOnOffPayload").build()) + .payload(Reference("#/components/schemas/turnOnOffPayload")) .build() ), Pair("dimLight", @@ -156,51 +164,51 @@ class StreetlightsMQTT: AbstractExampleValidationTest() { .title("Dim light") .summary("Command a particular streetlight to dim the lights.") .traits(listOf(Reference("#/components/messageTraits/commonHeaders"))) - .payload(Schema.builder().ref("#/components/schemas/dimLightPayload").build()) + .payload(Reference("#/components/schemas/dimLightPayload")) .build() ) )) .schemas(mapOf( Pair("lightMeasuredPayload", - Schema.builder() + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("lumens", - Schema.builder() + AsyncAPISchema.builder() .type("integer") .minimum(BigDecimal.ZERO) .description("Light intensity measured in lumens.") .build() ), Pair("sentAt", - Schema.builder().ref("#/components/schemas/sentAt").build() + AsyncAPISchema.builder().ref("#/components/schemas/sentAt").build() ) )) .build() ), Pair("turnOnOffPayload", - Schema.builder() + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("command", - Schema.builder() + AsyncAPISchema.builder() .type("string") .enumValue(listOf("on", "off")) .description("Whether to turn on or off the light.") .build() ), Pair("sentAt", - Schema.builder().ref("#/components/schemas/sentAt").build() + AsyncAPISchema.builder().ref("#/components/schemas/sentAt").build() ) )) .build() ), Pair("dimLightPayload", - Schema.builder() + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("percentage", - Schema.builder() + AsyncAPISchema.builder() .type("integer") .minimum(BigDecimal.ZERO) .maximum(BigDecimal.valueOf(100)) @@ -208,13 +216,13 @@ class StreetlightsMQTT: AbstractExampleValidationTest() { .build() ), Pair("sentAt", - Schema.builder().ref("#/components/schemas/sentAt").build() + AsyncAPISchema.builder().ref("#/components/schemas/sentAt").build() ) )) .build() ), Pair("sentAt", - Schema.builder() + AsyncAPISchema.builder() .type("string") .format("date-time") .description("Date and time when the message was sent.") @@ -223,7 +231,10 @@ class StreetlightsMQTT: AbstractExampleValidationTest() { )) .securitySchemes(mapOf( Pair("apiKey", - ApiKeySecurityScheme("Provide your API key as the user and leave the password empty.", ApiKeySecurityScheme.ApiKeyLocation.USER) + ApiKeySecurityScheme( + "Provide your API key as the user and leave the password empty.", + ApiKeySecurityScheme.ApiKeyLocation.USER + ) ), Pair("supportedOauthFlows", OAuth2SecurityScheme( @@ -233,7 +244,10 @@ class StreetlightsMQTT: AbstractExampleValidationTest() { "", mapOf( Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), Pair("streetlights:dim", "Ability to dim the lights") ), "https://authserver.example/auth" @@ -242,7 +256,10 @@ class StreetlightsMQTT: AbstractExampleValidationTest() { "", mapOf( Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), Pair("streetlights:dim", "Ability to dim the lights") ), "https://authserver.example/token" @@ -251,7 +268,10 @@ class StreetlightsMQTT: AbstractExampleValidationTest() { "", mapOf( Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), Pair("streetlights:dim", "Ability to dim the lights") ), "https://authserver.example/token" @@ -260,7 +280,10 @@ class StreetlightsMQTT: AbstractExampleValidationTest() { "https://authserver.example/refresh", mapOf( Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), Pair("streetlights:dim", "Ability to dim the lights") ), "https://authserver.example/auth", @@ -269,22 +292,28 @@ class StreetlightsMQTT: AbstractExampleValidationTest() { ) ) ), - Pair("openIdConnectWellKnown", OpenIdConnectSecurityScheme(null, "https://authserver.example/.well-known")) + Pair("openIdConnectWellKnown", + OpenIdConnectSecurityScheme( + null, + "https://authserver.example/.well-known" + ) + ) )) .parameters(mapOf( Pair("streetlightId", Parameter.builder() .description("The ID of the streetlight.") - .schema(Schema.builder().type("string").build()) + .schema(AsyncAPISchema.builder().type("string").build()) .build() ) )) .messageTraits(mapOf( Pair("commonHeaders", MessageTrait.builder() - .headers(Schema.builder() + .headers( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("my-app-header", Schema.builder() + Pair("my-app-header", AsyncAPISchema.builder() .type("integer") .minimum(BigDecimal.ZERO) .maximum(BigDecimal.valueOf(100)) diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/StreetlightsOperationSecurity.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/StreetlightsOperationSecurity.kt index cfb050f4..5bfe3dbf 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/StreetlightsOperationSecurity.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/StreetlightsOperationSecurity.kt @@ -1,7 +1,6 @@ package com.asyncapi.examples.v2._6_0 -import com.asyncapi.v2.Reference -import com.asyncapi.v2._6_0.model.Tag +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2._6_0.model.channel.ChannelItem import com.asyncapi.v2._6_0.model.channel.Parameter import com.asyncapi.v2._6_0.model.channel.message.Message @@ -12,12 +11,12 @@ import com.asyncapi.v2._6_0.model.component.Components import com.asyncapi.v2._6_0.model.info.Info import com.asyncapi.v2._6_0.model.info.License import com.asyncapi.v2._6_0.model.server.Server -import com.asyncapi.v2.binding.operation.kafka.KafkaOperationBinding -import com.asyncapi.v2.schema.Schema -import com.asyncapi.v2.security_scheme.SecurityScheme -import com.asyncapi.v2.security_scheme.oauth2.OAuth2SecurityScheme -import com.asyncapi.v2.security_scheme.oauth2.OAuthFlows -import com.asyncapi.v2.security_scheme.oauth2.flow.ClientCredentialsOAuthFlow +import com.asyncapi.bindings.kafka.v0._5_0.operation.KafkaOperationBinding +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.security.v2.SecurityScheme +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.OAuth2SecurityScheme +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.OAuthFlows +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow.ClientCredentialsOAuthFlow import java.math.BigDecimal class StreetlightsOperationSecurity: AbstractExampleValidationTest() { @@ -72,7 +71,9 @@ class StreetlightsOperationSecurity: AbstractExampleValidationTest() { Pair("smartylighting.streetlights.1.0.event.{streetlightId}.lighting.measured", ChannelItem.builder() .description("The topic on which measured values may be produced and consumed.") - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .publish(Operation.builder() .operationId("receiveLightMeasurement") .summary("Inform about environmental lighting conditions of a particular streetlight.") @@ -84,7 +85,9 @@ class StreetlightsOperationSecurity: AbstractExampleValidationTest() { ), Pair("smartylighting.streetlights.1.0.action.{streetlightId}.turn.on", ChannelItem.builder() - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .subscribe(Operation.builder() .operationId("turnOn") .traits(listOf(Reference("#/components/operationTraits/kafka"))) @@ -96,7 +99,9 @@ class StreetlightsOperationSecurity: AbstractExampleValidationTest() { ), Pair("smartylighting.streetlights.1.0.action.{streetlightId}.turn.off", ChannelItem.builder() - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .subscribe(Operation.builder() .operationId("turnOff") .traits(listOf(Reference("#/components/operationTraits/kafka"))) @@ -109,7 +114,9 @@ class StreetlightsOperationSecurity: AbstractExampleValidationTest() { ), Pair("smartylighting.streetlights.1.0.action.{streetlightId}.dim", ChannelItem.builder() - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .subscribe(Operation.builder() .operationId("dimLight") .traits(listOf(Reference("#/components/operationTraits/kafka"))) @@ -133,7 +140,7 @@ class StreetlightsOperationSecurity: AbstractExampleValidationTest() { .summary("Inform about environmental lighting conditions of a particular streetlight.") .contentType("application/json") .traits(listOf(Reference("#/components/messageTraits/commonHeaders"))) - .payload(Schema.builder().ref("#/components/schemas/lightMeasuredPayload").build()) + .payload(Reference("#/components/schemas/lightMeasuredPayload")) .build() ), Pair("turnOnOff", @@ -142,7 +149,7 @@ class StreetlightsOperationSecurity: AbstractExampleValidationTest() { .title("Turn on/off") .summary("Command a particular streetlight to turn the lights on or off.") .traits(listOf(Reference("#/components/messageTraits/commonHeaders"))) - .payload(Schema.builder().ref("#/components/schemas/turnOnOffPayload").build()) + .payload(Reference("#/components/schemas/turnOnOffPayload")) .build() ), Pair("dimLight", @@ -151,51 +158,51 @@ class StreetlightsOperationSecurity: AbstractExampleValidationTest() { .title("Dim light") .summary("Command a particular streetlight to dim the lights.") .traits(listOf(Reference("#/components/messageTraits/commonHeaders"))) - .payload(Schema.builder().ref("#/components/schemas/dimLightPayload").build()) + .payload(Reference("#/components/schemas/dimLightPayload")) .build() ) )) .schemas(mapOf( Pair("lightMeasuredPayload", - Schema.builder() + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("lumens", - Schema.builder() + AsyncAPISchema.builder() .type("integer") .minimum(BigDecimal.ZERO) .description("Light intensity measured in lumens.") .build() ), Pair("sentAt", - Schema.builder().ref("#/components/schemas/sentAt").build() + AsyncAPISchema.builder().ref("#/components/schemas/sentAt").build() ) )) .build() ), Pair("turnOnOffPayload", - Schema.builder() + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("command", - Schema.builder() + AsyncAPISchema.builder() .type("string") .enumValue(listOf("on", "off")) .description("Whether to turn on or off the light.") .build() ), Pair("sentAt", - Schema.builder().ref("#/components/schemas/sentAt").build() + AsyncAPISchema.builder().ref("#/components/schemas/sentAt").build() ) )) .build() ), Pair("dimLightPayload", - Schema.builder() + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("percentage", - Schema.builder() + AsyncAPISchema.builder() .type("integer") .minimum(BigDecimal.ZERO) .maximum(BigDecimal.valueOf(100)) @@ -203,13 +210,13 @@ class StreetlightsOperationSecurity: AbstractExampleValidationTest() { .build() ), Pair("sentAt", - Schema.builder().ref("#/components/schemas/sentAt").build() + AsyncAPISchema.builder().ref("#/components/schemas/sentAt").build() ) )) .build() ), Pair("sentAt", - Schema.builder() + AsyncAPISchema.builder() .type("string") .format("date-time") .description("Date and time when the message was sent.") @@ -232,8 +239,14 @@ class StreetlightsOperationSecurity: AbstractExampleValidationTest() { ClientCredentialsOAuthFlow( "", mapOf( - Pair("streetlights:read", "Scope required for subscribing to channel"), - Pair("streetlights:write", "Scope required for publishing to channel"), + Pair( + "streetlights:read", + "Scope required for subscribing to channel" + ), + Pair( + "streetlights:write", + "Scope required for publishing to channel" + ), ), "https://example.com/api/oauth/dialog", ), @@ -245,17 +258,18 @@ class StreetlightsOperationSecurity: AbstractExampleValidationTest() { .parameters(mapOf( Pair("streetlightId", Parameter.builder() .description("The ID of the streetlight.") - .schema(Schema.builder().type("string").build()) + .schema(AsyncAPISchema.builder().type("string").build()) .build() ) )) .messageTraits(mapOf( Pair("commonHeaders", MessageTrait.builder() - .headers(Schema.builder() + .headers( + AsyncAPISchema.builder() .type("object") .properties(mapOf( - Pair("my-app-header", Schema.builder() + Pair("my-app-header", AsyncAPISchema.builder() .type("integer") .minimum(BigDecimal.ZERO) .maximum(BigDecimal.valueOf(100)) @@ -272,7 +286,8 @@ class StreetlightsOperationSecurity: AbstractExampleValidationTest() { OperationTrait.builder() .bindings(mapOf( Pair("kafka", KafkaOperationBinding.builder() - .clientId(Schema.builder() + .clientId( + AsyncAPISchema.builder() .type("string") .enumValue(listOf("my-app-id")) .build() diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/WebsocketGemini.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/WebsocketGemini.kt index e10a4890..b7717af1 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/WebsocketGemini.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v2/_6_0/WebsocketGemini.kt @@ -1,7 +1,6 @@ package com.asyncapi.examples.v2._6_0 -import com.asyncapi.v2.Reference -import com.asyncapi.v2._6_0.model.ExternalDocumentation +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2._6_0.model.channel.ChannelItem import com.asyncapi.v2._6_0.model.channel.operation.Operation import com.asyncapi.v2._6_0.model.channel.Parameter @@ -11,8 +10,8 @@ import com.asyncapi.v2._6_0.model.component.Components import com.asyncapi.v2._6_0.model.info.Info import com.asyncapi.v2._6_0.model.info.Contact import com.asyncapi.v2._6_0.model.server.Server -import com.asyncapi.v2.binding.channel.ws.WebSocketsChannelBinding -import com.asyncapi.v2.schema.Schema +import com.asyncapi.bindings.websockets.v0._1_0.channel.WebSocketsChannelBinding +import com.asyncapi.schemas.asyncapi.AsyncAPISchema class WebsocketGemini: AbstractExampleValidationTest() { @@ -53,7 +52,8 @@ class WebsocketGemini: AbstractExampleValidationTest() { mapOf( Pair("symbol", Parameter.builder() - .schema(Schema.builder() + .schema( + AsyncAPISchema.builder() .type("string") .enumValue(listOf( "btcusd", @@ -135,7 +135,7 @@ class WebsocketGemini: AbstractExampleValidationTest() { "ws", WebSocketsChannelBinding.builder() .query( - Schema.builder() + AsyncAPISchema.builder() .type("object") .description( "The semantics of entry type filtering is:\n" + @@ -148,7 +148,7 @@ class WebsocketGemini: AbstractExampleValidationTest() { .properties(mapOf( Pair( "heartbeat", - Schema.builder() + AsyncAPISchema.builder() .type("boolean") .defaultValue(false) .description( @@ -159,7 +159,7 @@ class WebsocketGemini: AbstractExampleValidationTest() { ), Pair( "top_of_book", - Schema.builder() + AsyncAPISchema.builder() .type("boolean") .defaultValue(false) .description( @@ -171,7 +171,7 @@ class WebsocketGemini: AbstractExampleValidationTest() { ), Pair( "bids", - Schema.builder() + AsyncAPISchema.builder() .type("boolean") .defaultValue(true) .description("Include bids in change events") @@ -179,7 +179,7 @@ class WebsocketGemini: AbstractExampleValidationTest() { ), Pair( "offers", - Schema.builder() + AsyncAPISchema.builder() .type("boolean") .defaultValue(true) .description("Include asks in change events") @@ -187,7 +187,7 @@ class WebsocketGemini: AbstractExampleValidationTest() { ), Pair( "trades", - Schema.builder() + AsyncAPISchema.builder() .type("boolean") .defaultValue(true) .description("Include trade events") @@ -195,7 +195,7 @@ class WebsocketGemini: AbstractExampleValidationTest() { ), Pair( "auctions", - Schema.builder() + AsyncAPISchema.builder() .type("boolean") .defaultValue(true) .description("Include auction events") @@ -223,7 +223,7 @@ class WebsocketGemini: AbstractExampleValidationTest() { .description( "The initial response message will show the existing state of the order book. Subsequent messages will show all executed trades, as well as all other changes to the order book from orders placed or canceled.\n" ) - .payload(Schema.builder().ref("#/components/schemas/market").build()) + .payload(Reference("#/components/schemas/market")) .examples(listOf( MessageExample.builder() .name("updateMessage") @@ -257,34 +257,34 @@ class WebsocketGemini: AbstractExampleValidationTest() { ) )) .schemas(mapOf( - Pair("market", Schema.builder() + Pair("market", AsyncAPISchema.builder() .type("object") .oneOf(listOf( - Schema.builder().ref("#/components/schemas/heartbeat").build(), - Schema.builder().ref("#/components/schemas/update").build(), + AsyncAPISchema.builder().ref("#/components/schemas/heartbeat").build(), + AsyncAPISchema.builder().ref("#/components/schemas/update").build(), )) .build() ), - Pair("heartbeat", Schema.builder() + Pair("heartbeat", AsyncAPISchema.builder() .allOf(listOf( - Schema.builder() + AsyncAPISchema.builder() .properties(mapOf( - Pair("type", Schema.builder().type("string").constValue("heartbeat").build()) + Pair("type", AsyncAPISchema.builder().type("string").constValue("heartbeat").build()) )) .required(listOf("type")) .build(), - Schema.builder() + AsyncAPISchema.builder() .ref("#/components/schemas/default") .build(), )) .build() ), - Pair("update", Schema.builder() + Pair("update", AsyncAPISchema.builder() .allOf(listOf( - Schema.builder() + AsyncAPISchema.builder() .properties(mapOf( - Pair("type", Schema.builder().type("string").constValue("update").build()), - Pair("eventId", Schema.builder() + Pair("type", AsyncAPISchema.builder().type("string").constValue("update").build()), + Pair("eventId", AsyncAPISchema.builder() .type("integer") .description( "A monotonically increasing sequence number indicating when this " + @@ -293,8 +293,8 @@ class WebsocketGemini: AbstractExampleValidationTest() { ) .build() ), - Pair("events", Schema.builder().ref("#/components/schemas/events").build()), - Pair("timestamp", Schema.builder() + Pair("events", AsyncAPISchema.builder().ref("#/components/schemas/events").build()), + Pair("timestamp", AsyncAPISchema.builder() .type("number") .description( "The timestamp in seconds for this group of events (included for " + @@ -303,7 +303,7 @@ class WebsocketGemini: AbstractExampleValidationTest() { ) .build() ), - Pair("timestampms", Schema.builder() + Pair("timestampms", AsyncAPISchema.builder() .type("number") .description("The timestamp in milliseconds for this group of events.") .build() @@ -311,18 +311,18 @@ class WebsocketGemini: AbstractExampleValidationTest() { )) .required(listOf("type", "eventId", "events", "timestamp", "timestampms")) .build(), - Schema.builder().ref("#/components/schemas/default").build(), + AsyncAPISchema.builder().ref("#/components/schemas/default").build(), )) .build() ), - Pair("default", Schema.builder() + Pair("default", AsyncAPISchema.builder() .type("object") .description( "This object is always part of the payload. In case of type=heartbeat, " + "these are the only fields.") .required(listOf("type", "socket_sequence")) .properties(mapOf( - Pair("socket_sequence", Schema.builder() + Pair("socket_sequence", AsyncAPISchema.builder() .type("integer") .description( "zero-indexed monotonic increasing sequence number attached to each " + @@ -337,30 +337,31 @@ class WebsocketGemini: AbstractExampleValidationTest() { )) .build() ), - Pair("events", Schema.builder() + Pair("events", AsyncAPISchema.builder() .type("array") .description("Either a change to the order book, or the indication that a trade has occurred.") - .items(Schema.builder() + .items( + AsyncAPISchema.builder() .type("object") .additionalProperties(false) .properties(mapOf( - Pair("type", Schema.builder() + Pair("type", AsyncAPISchema.builder() .type("string") .enumValue(listOf("trade", "change", "auction, block_trade")) .build() ), - Pair("price", Schema.builder() + Pair("price", AsyncAPISchema.builder() .type("number") .multipleOf(0.01) .description("The price of this order book entry.") .build() ), - Pair("side", Schema.builder() + Pair("side", AsyncAPISchema.builder() .type("string") .enumValue(listOf("bid", "side")) .build() ), - Pair("reason", Schema.builder() + Pair("reason", AsyncAPISchema.builder() .type("string") .enumValue(listOf("place", "trade", "cancel", "initial")) .description( @@ -370,14 +371,14 @@ class WebsocketGemini: AbstractExampleValidationTest() { ) .build() ), - Pair("remaining", Schema.builder() + Pair("remaining", AsyncAPISchema.builder() .type("number") .description( "The quantity remaining at that price level after this change occurred. May be zero if all orders at this price level have been filled or canceled." ) .build() ), - Pair("delta", Schema.builder() + Pair("delta", AsyncAPISchema.builder() .type("number") .description( "The quantity changed. May be negative, if an order is filled or canceled. For initial messages, delta will equal remaining." diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/AdeoKafkaRequestReplyAsyncAPI.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/AdeoKafkaRequestReplyAsyncAPI.kt index c1e3b6a0..7298dfa2 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/AdeoKafkaRequestReplyAsyncAPI.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/AdeoKafkaRequestReplyAsyncAPI.kt @@ -1,6 +1,6 @@ package com.asyncapi.examples.v3._0_0 -import com.asyncapi.v3.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v3._0_0.model.Tag import com.asyncapi.v3._0_0.model.channel.Channel import com.asyncapi.v3._0_0.model.channel.Parameter @@ -14,14 +14,14 @@ import com.asyncapi.v3._0_0.model.operation.OperationAction import com.asyncapi.v3._0_0.model.operation.reply.OperationReply import com.asyncapi.v3._0_0.model.operation.reply.OperationReplyAddress import com.asyncapi.v3._0_0.model.server.Server -import com.asyncapi.v3.binding.channel.kafka.KafkaChannelBinding -import com.asyncapi.v3.binding.channel.kafka.KafkaChannelTopicCleanupPolicy -import com.asyncapi.v3.binding.channel.kafka.KafkaChannelTopicConfiguration -import com.asyncapi.v3.binding.operation.kafka.KafkaOperationBinding -import com.asyncapi.v3.binding.server.kafka.KafkaServerBinding -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.multiformat.AvroFormatSchema -import com.asyncapi.v3.security_scheme.SecurityScheme +import com.asyncapi.bindings.kafka.v0._5_0.channel.KafkaChannelBinding +import com.asyncapi.bindings.kafka.v0._5_0.channel.KafkaChannelTopicCleanupPolicy +import com.asyncapi.bindings.kafka.v0._5_0.channel.KafkaChannelTopicConfiguration +import com.asyncapi.bindings.kafka.v0._5_0.operation.KafkaOperationBinding +import com.asyncapi.bindings.kafka.v0._5_0.server.KafkaServerBinding +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.multiformat.AvroFormatSchema +import com.asyncapi.schemas.asyncapi.security.v3.SecurityScheme class AdeoKafkaRequestReplyAsyncAPI: AbstractExampleValidationTest() { @@ -117,8 +117,12 @@ class AdeoKafkaRequestReplyAsyncAPI: AbstractExampleValidationTest() { "![](https://user-images.githubusercontent.com/5501911/188920831-689cec5f-8dc3-460b-8794-0b54ec8b0ac8.png)\n" ) .parameters(mapOf( - Pair("env", Reference("#/components/parameters/Env")), - Pair("version", Reference("#/components/parameters/Version")) + Pair("env", + Reference("#/components/parameters/Env") + ), + Pair("version", + Reference("#/components/parameters/Version") + ) )) .bindings(mapOf( Pair("kafka", KafkaChannelBinding.builder() @@ -133,7 +137,9 @@ class AdeoKafkaRequestReplyAsyncAPI: AbstractExampleValidationTest() { ) )) .messages(mapOf( - Pair("CostingRequest", Reference("#/components/messages/costingRequestV1")) + Pair("CostingRequest", + Reference("#/components/messages/costingRequestV1") + ) )) .build() ), @@ -159,7 +165,9 @@ class AdeoKafkaRequestReplyAsyncAPI: AbstractExampleValidationTest() { )) .tags(listOf(Tag.builder().name("costing").build())) .messages(mapOf( - Pair("costingResponse", Reference("#/components/messages/costingResponse")) + Pair("costingResponse", + Reference("#/components/messages/costingResponse") + ) )) .build() ) @@ -168,7 +176,8 @@ class AdeoKafkaRequestReplyAsyncAPI: AbstractExampleValidationTest() { override fun expectedOperations(): Map { val receiveACostingRequestKafkaBinding = KafkaOperationBinding.builder() - .groupId(AsyncAPISchema.builder() + .groupId( + AsyncAPISchema.builder() .type("string") .description("The groupId must be prefixed by your `svc` account, deliver by the Adeo Kafka team. This `svc` must have the write access to the topic.\n") .build() @@ -238,7 +247,8 @@ class AdeoKafkaRequestReplyAsyncAPI: AbstractExampleValidationTest() { Tag.builder().name("costing").build() )) .correlationId(Reference("#/components/correlationIds/costingCorrelationId")) - .headers(AsyncAPISchema.builder() + .headers( + AsyncAPISchema.builder() .type("object") .required(listOf( "REQUESTER_ID", "REQUESTER_CODE", "REQUEST_ID", "REPLY_TOPIC" @@ -251,10 +261,12 @@ class AdeoKafkaRequestReplyAsyncAPI: AbstractExampleValidationTest() { )) .build() ) - .payload(AvroFormatSchema( - "application/vnd.apache.avro;version=1.9.0", - Reference("https://www.asyncapi.com/resources/casestudies/adeo/CostingRequestPayload.avsc") - )) + .payload( + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + Reference("https://www.asyncapi.com/resources/casestudies/adeo/CostingRequestPayload.avsc") + ) + ) .build() ), Pair("costingResponse", Message.builder() @@ -267,7 +279,8 @@ class AdeoKafkaRequestReplyAsyncAPI: AbstractExampleValidationTest() { Tag.builder().name("costing").build() )) .correlationId(Reference("#/components/correlationIds/costingCorrelationId")) - .headers(AsyncAPISchema.builder() + .headers( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("CALCULATION_ID", AsyncAPISchema.builder().ref("#/components/schemas/MessageId").build()), @@ -287,10 +300,12 @@ class AdeoKafkaRequestReplyAsyncAPI: AbstractExampleValidationTest() { )) .build() ) - .payload(AvroFormatSchema( - "application/vnd.apache.avro;version=1.9.0", - Reference("https://www.asyncapi.com/resources/casestudies/adeo/CostingResponsePayload.avsc") - )) + .payload( + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + Reference("https://www.asyncapi.com/resources/casestudies/adeo/CostingResponsePayload.avsc") + ) + ) .build() ) )) diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/AnyOfAsyncAPI.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/AnyOfAsyncAPI.kt index e5c12705..0ff5a5d6 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/AnyOfAsyncAPI.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/AnyOfAsyncAPI.kt @@ -1,13 +1,13 @@ package com.asyncapi.examples.v3._0_0 -import com.asyncapi.v3.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v3._0_0.model.channel.Channel import com.asyncapi.v3._0_0.model.channel.message.Message import com.asyncapi.v3._0_0.model.component.Components import com.asyncapi.v3._0_0.model.info.Info import com.asyncapi.v3._0_0.model.operation.Operation import com.asyncapi.v3._0_0.model.operation.OperationAction -import com.asyncapi.v3.schema.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.AsyncAPISchema class AnyOfAsyncAPI: AbstractExampleValidationTest() { override fun specificationLocation(): String = "/examples/v3.0.0/anyof-asyncapi.yml" @@ -27,7 +27,9 @@ class AnyOfAsyncAPI: AbstractExampleValidationTest() { Channel.builder() .address("test") .messages(mapOf( - Pair("testMessages", Reference("#/components/messages/testMessages")) + Pair("testMessages", + Reference("#/components/messages/testMessages") + ) )) .build() ) @@ -51,7 +53,8 @@ class AnyOfAsyncAPI: AbstractExampleValidationTest() { .messages(mapOf( Pair("testMessages", Message.builder() - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .anyOf(listOf( AsyncAPISchema.builder().ref("#/components/schemas/objectWithKey").build(), AsyncAPISchema.builder().ref("#/components/schemas/objectWithKey2").build() diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/ApplicationHeadersAsyncAPI.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/ApplicationHeadersAsyncAPI.kt index 8c7e108d..01050e4f 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/ApplicationHeadersAsyncAPI.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/ApplicationHeadersAsyncAPI.kt @@ -1,6 +1,6 @@ package com.asyncapi.examples.v3._0_0 -import com.asyncapi.v3.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v3._0_0.model.channel.Channel import com.asyncapi.v3._0_0.model.channel.Parameter import com.asyncapi.v3._0_0.model.channel.message.CorrelationId @@ -12,7 +12,7 @@ import com.asyncapi.v3._0_0.model.operation.Operation import com.asyncapi.v3._0_0.model.operation.OperationAction import com.asyncapi.v3._0_0.model.server.Server import com.asyncapi.v3._0_0.model.server.ServerVariable -import com.asyncapi.v3.schema.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.AsyncAPISchema import java.math.BigDecimal class ApplicationHeadersAsyncAPI: AbstractExampleValidationTest() { @@ -60,10 +60,14 @@ class ApplicationHeadersAsyncAPI: AbstractExampleValidationTest() { Channel.builder() .address("smartylighting/streetlights/1/0/event/{streetlightId}/lighting/measured") .messages(mapOf( - Pair("lightMeasured", Reference("#/components/messages/lightMeasured")) + Pair("lightMeasured", + Reference("#/components/messages/lightMeasured") + ) )) .parameters(mapOf( - Pair("streetlightId", Reference("#/components/parameters/streetlightId")) + Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ) )) .build() ) @@ -78,7 +82,7 @@ class ApplicationHeadersAsyncAPI: AbstractExampleValidationTest() { .channel(Reference("#/channels/lightingMeasured")) .summary("Inform about environmental lighting conditions of a particular streetlight.") .messages(listOf( - Reference("#/channels/lightingMeasured/messages/lightMeasured") + Reference("#/channels/lightingMeasured/messages/lightMeasured") )) .build() ) @@ -95,7 +99,8 @@ class ApplicationHeadersAsyncAPI: AbstractExampleValidationTest() { .summary("Inform about environmental lighting conditions of a particular streetlight.") .correlationId(CorrelationId(null, "\$message.header#/MQMD/CorrelId")) .contentType("application/json") - .headers(AsyncAPISchema.builder() + .headers( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("MQMD", AsyncAPISchema.builder() diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/CorrelationIdAsyncAPI.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/CorrelationIdAsyncAPI.kt index 9a1a2f0c..385d9a65 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/CorrelationIdAsyncAPI.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/CorrelationIdAsyncAPI.kt @@ -1,7 +1,7 @@ package com.asyncapi.examples.v3._0_0 -import com.asyncapi.v3.security_scheme.ApiKeySecurityScheme -import com.asyncapi.v3.Reference +import com.asyncapi.schemas.asyncapi.security.v3.ApiKeySecurityScheme +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v3._0_0.model.channel.Channel import com.asyncapi.v3._0_0.model.channel.Parameter import com.asyncapi.v3._0_0.model.channel.message.CorrelationId @@ -13,14 +13,14 @@ import com.asyncapi.v3._0_0.model.operation.Operation import com.asyncapi.v3._0_0.model.operation.OperationAction import com.asyncapi.v3._0_0.model.server.Server import com.asyncapi.v3._0_0.model.server.ServerVariable -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.security_scheme.OpenIdConnectSecurityScheme -import com.asyncapi.v3.security_scheme.oauth2.OAuth2SecurityScheme -import com.asyncapi.v3.security_scheme.oauth2.OAuthFlows -import com.asyncapi.v3.security_scheme.oauth2.flow.AuthorizationCodeOAuthFlow -import com.asyncapi.v3.security_scheme.oauth2.flow.ClientCredentialsOAuthFlow -import com.asyncapi.v3.security_scheme.oauth2.flow.ImplicitOAuthFlow -import com.asyncapi.v3.security_scheme.oauth2.flow.PasswordOAuthFlow +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.security.v3.OpenIdConnectSecurityScheme +import com.asyncapi.schemas.asyncapi.security.v3.oauth2.OAuth2SecurityScheme +import com.asyncapi.schemas.asyncapi.security.v3.oauth2.OAuthFlows +import com.asyncapi.schemas.asyncapi.security.v3.oauth2.flow.AuthorizationCodeOAuthFlow +import com.asyncapi.schemas.asyncapi.security.v3.oauth2.flow.ClientCredentialsOAuthFlow +import com.asyncapi.schemas.asyncapi.security.v3.oauth2.flow.ImplicitOAuthFlow +import com.asyncapi.schemas.asyncapi.security.v3.oauth2.flow.PasswordOAuthFlow import java.math.BigDecimal class CorrelationIdAsyncAPI: AbstractExampleValidationTest() { @@ -63,36 +63,72 @@ class CorrelationIdAsyncAPI: AbstractExampleValidationTest() { ImplicitOAuthFlow( "", mapOf( - Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), - Pair("streetlights:dim", "Ability to dim the lights"), + Pair( + "streetlights:on", + "Ability to switch lights on" + ), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), + Pair( + "streetlights:dim", + "Ability to dim the lights" + ), ), "https://authserver.example/auth" ), PasswordOAuthFlow( "", mapOf( - Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), - Pair("streetlights:dim", "Ability to dim the lights"), + Pair( + "streetlights:on", + "Ability to switch lights on" + ), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), + Pair( + "streetlights:dim", + "Ability to dim the lights" + ), ), "https://authserver.example/token" ), ClientCredentialsOAuthFlow( "", mapOf( - Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), - Pair("streetlights:dim", "Ability to dim the lights"), + Pair( + "streetlights:on", + "Ability to switch lights on" + ), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), + Pair( + "streetlights:dim", + "Ability to dim the lights" + ), ), "https://authserver.example/token" ), AuthorizationCodeOAuthFlow( "https://authserver.example/refresh", mapOf( - Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), - Pair("streetlights:dim", "Ability to dim the lights"), + Pair( + "streetlights:on", + "Ability to switch lights on" + ), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), + Pair( + "streetlights:dim", + "Ability to dim the lights" + ), ), "https://authserver.example/auth", "https://authserver.example/token" @@ -117,10 +153,14 @@ class CorrelationIdAsyncAPI: AbstractExampleValidationTest() { Channel.builder() .address("smartylighting/streetlights/1/0/event/{streetlightId}/lighting/measured") .messages(mapOf( - Pair("lightMeasured", Reference("#/components/messages/lightMeasured")) + Pair("lightMeasured", + Reference("#/components/messages/lightMeasured") + ) )) .parameters(mapOf( - Pair("streetlightId", Reference("#/components/parameters/streetlightId")) + Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ) )) .build() ), @@ -128,10 +168,14 @@ class CorrelationIdAsyncAPI: AbstractExampleValidationTest() { Channel.builder() .address("smartylighting/streetlights/1/0/action/{streetlightId}/dim") .messages(mapOf( - Pair("dimLight", Reference("#/components/messages/dimLight")) + Pair("dimLight", + Reference("#/components/messages/dimLight") + ) )) .parameters(mapOf( - Pair("streetlightId", Reference("#/components/parameters/streetlightId")) + Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ) )) .build() ) @@ -245,58 +289,76 @@ class CorrelationIdAsyncAPI: AbstractExampleValidationTest() { ) )) .securitySchemes(mapOf( - Pair("apiKey", ApiKeySecurityScheme( - "Provide your API key as the user and leave the password empty.", - ApiKeySecurityScheme.ApiKeyLocation.USER - )), - Pair("supportedOauthFlows", OAuth2SecurityScheme( - "Flows to support OAuth 2.0", - OAuthFlows( - ImplicitOAuthFlow( - "", - mapOf( - Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), - Pair("streetlights:dim", "Ability to dim the lights"), + Pair("apiKey", + ApiKeySecurityScheme( + "Provide your API key as the user and leave the password empty.", + ApiKeySecurityScheme.ApiKeyLocation.USER + ) + ), + Pair("supportedOauthFlows", + OAuth2SecurityScheme( + "Flows to support OAuth 2.0", + OAuthFlows( + ImplicitOAuthFlow( + "", + mapOf( + Pair("streetlights:on", "Ability to switch lights on"), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), + Pair("streetlights:dim", "Ability to dim the lights"), + ), + "https://authserver.example/auth" ), - "https://authserver.example/auth" - ), - PasswordOAuthFlow( - "", - mapOf( - Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), - Pair("streetlights:dim", "Ability to dim the lights"), + PasswordOAuthFlow( + "", + mapOf( + Pair("streetlights:on", "Ability to switch lights on"), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), + Pair("streetlights:dim", "Ability to dim the lights"), + ), + "https://authserver.example/token" ), - "https://authserver.example/token" - ), - ClientCredentialsOAuthFlow( - "", - mapOf( - Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), - Pair("streetlights:dim", "Ability to dim the lights"), + ClientCredentialsOAuthFlow( + "", + mapOf( + Pair("streetlights:on", "Ability to switch lights on"), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), + Pair("streetlights:dim", "Ability to dim the lights"), + ), + "https://authserver.example/token" ), - "https://authserver.example/token" + AuthorizationCodeOAuthFlow( + "https://authserver.example/refresh", + mapOf( + Pair("streetlights:on", "Ability to switch lights on"), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), + Pair("streetlights:dim", "Ability to dim the lights"), + ), + "https://authserver.example/auth", + "https://authserver.example/token" + ) ), - AuthorizationCodeOAuthFlow( - "https://authserver.example/refresh", - mapOf( - Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), - Pair("streetlights:dim", "Ability to dim the lights"), - ), - "https://authserver.example/auth", - "https://authserver.example/token" - ) - ), - null - )), - Pair("openIdConnectWellKnown", OpenIdConnectSecurityScheme( - null, - "https://authserver.example/.well-known", - null - )), + null + ) + ), + Pair("openIdConnectWellKnown", + OpenIdConnectSecurityScheme( + null, + "https://authserver.example/.well-known", + null + ) + ), )) .build() } diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/GitterStreamingAsyncAPI.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/GitterStreamingAsyncAPI.kt index c6880667..80b338dc 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/GitterStreamingAsyncAPI.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/GitterStreamingAsyncAPI.kt @@ -1,7 +1,9 @@ package com.asyncapi.examples.v3._0_0 -import com.asyncapi.v3.binding.message.http.HTTPMessageBinding -import com.asyncapi.v3.Reference +import com.asyncapi.schemas.asyncapi.Reference +import com.asyncapi.bindings.http.v0._3_0.message.HTTPMessageBinding +import com.asyncapi.bindings.http.v0._3_0.operation.HTTPOperationBinding +import com.asyncapi.bindings.http.v0._3_0.operation.HTTPOperationMethod import com.asyncapi.v3._0_0.model.channel.Channel import com.asyncapi.v3._0_0.model.channel.Parameter import com.asyncapi.v3._0_0.model.channel.message.Message @@ -10,12 +12,10 @@ import com.asyncapi.v3._0_0.model.info.Info import com.asyncapi.v3._0_0.model.operation.Operation import com.asyncapi.v3._0_0.model.operation.OperationAction import com.asyncapi.v3._0_0.model.server.Server -import com.asyncapi.v3.binding.operation.http.HTTPOperationBinding -import com.asyncapi.v3.binding.operation.http.HTTPOperationMethod -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.JsonSchema -import com.asyncapi.v3.schema.multiformat.JsonFormatSchema -import com.asyncapi.v3.security_scheme.http.HttpSecurityScheme +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.json.JsonSchema +import com.asyncapi.schemas.asyncapi.multiformat.JsonFormatSchema +import com.asyncapi.schemas.asyncapi.security.v3.http.HttpSecurityScheme class GitterStreamingAsyncAPI: AbstractExampleValidationTest() { @@ -39,7 +39,7 @@ class GitterStreamingAsyncAPI: AbstractExampleValidationTest() { .protocol("https") .protocolVersion("1.1") .security(listOf( - Reference("#/components/securitySchemes/httpBearerToken") + Reference("#/components/securitySchemes/httpBearerToken") )) .build() ) @@ -52,8 +52,12 @@ class GitterStreamingAsyncAPI: AbstractExampleValidationTest() { Channel.builder() .address("/rooms/{roomId}/{resource}") .messages(mapOf( - Pair("chatMessage", Reference("#/components/messages/chatMessage")), - Pair("heartbeat", Reference("#/components/messages/heartbeat")) + Pair("chatMessage", + Reference("#/components/messages/chatMessage") + ), + Pair("heartbeat", + Reference("#/components/messages/heartbeat") + ) )) .parameters(mapOf( Pair("roomId", Parameter.builder() @@ -83,8 +87,8 @@ class GitterStreamingAsyncAPI: AbstractExampleValidationTest() { ) )) .messages(listOf( - Reference("#/channels/rooms/messages/chatMessage"), - Reference("#/channels/rooms/messages/heartbeat") + Reference("#/channels/rooms/messages/chatMessage"), + Reference("#/channels/rooms/messages/heartbeat") )) .build() ) @@ -94,11 +98,13 @@ class GitterStreamingAsyncAPI: AbstractExampleValidationTest() { override fun expectedComponents(): Components? { return Components.builder() .securitySchemes(mapOf( - Pair("httpBearerToken", HttpSecurityScheme( + Pair("httpBearerToken", + HttpSecurityScheme( null, "bearer", null, - )) + ) + ) )) .messages(mapOf( Pair("chatMessage", Message.builder() @@ -108,155 +114,206 @@ class GitterStreamingAsyncAPI: AbstractExampleValidationTest() { "application/schema+yaml;version=draft-07", JsonSchema.builder() .type("object") - .properties(mapOf( - Pair("id", JsonSchema.builder() - .type("string") - .description("ID of the message.") - .build() - ), - Pair("text", JsonSchema.builder() - .type("string") - .description("Original message in plain-text/markdown.") - .build() - ), - Pair("html", JsonSchema.builder() - .type("string") - .description("HTML formatted message.") - .build() - ), - Pair("sent", JsonSchema.builder() - .type("string") - .format("date-time") - .description("ISO formatted date of the message.") - .build() - ), - Pair("fromUser", JsonSchema.builder() - .type("object") - .description("User that sent the message.") - .properties(mapOf( - Pair("id", JsonSchema.builder() + .properties( + mapOf( + Pair( + "id", JsonSchema.builder() .type("string") - .description("Gitter User ID.") + .description("ID of the message.") .build() - ), - Pair("username", JsonSchema.builder() + ), + Pair( + "text", JsonSchema.builder() .type("string") - .description("Gitter/GitHub username.") + .description("Original message in plain-text/markdown.") .build() - ), - Pair("displayName", JsonSchema.builder() + ), + Pair( + "html", JsonSchema.builder() .type("string") - .description("Gitter/GitHub user real name.") + .description("HTML formatted message.") .build() - ), - Pair("url", JsonSchema.builder() + ), + Pair( + "sent", JsonSchema.builder() .type("string") - .description("Path to the user on Gitter.") + .format("date-time") + .description("ISO formatted date of the message.") .build() - ), - Pair("avatarUrl", JsonSchema.builder() - .type("string") - .format("uri") - .description("User avatar URI.") + ), + Pair( + "fromUser", JsonSchema.builder() + .type("object") + .description("User that sent the message.") + .properties( + mapOf( + Pair( + "id", JsonSchema.builder() + .type("string") + .description("Gitter User ID.") + .build() + ), + Pair( + "username", JsonSchema.builder() + .type("string") + .description("Gitter/GitHub username.") + .build() + ), + Pair( + "displayName", JsonSchema.builder() + .type("string") + .description("Gitter/GitHub user real name.") + .build() + ), + Pair( + "url", JsonSchema.builder() + .type("string") + .description("Path to the user on Gitter.") + .build() + ), + Pair( + "avatarUrl", JsonSchema.builder() + .type("string") + .format("uri") + .description("User avatar URI.") + .build() + ), + Pair( + "avatarUrlSmall", JsonSchema.builder() + .type("string") + .format("uri") + .description("User avatar URI (small).") + .build() + ), + Pair( + "avatarUrlMedium", JsonSchema.builder() + .type("string") + .format("uri") + .description("User avatar URI (medium).") + .build() + ), + Pair( + "v", JsonSchema.builder() + .type("number") + .description("Version.") + .build() + ), + Pair( + "gv", JsonSchema.builder() + .type("string") + .description("Stands for \"Gravatar version\" and is used for cache busting.") + .build() + ), + ) + ) .build() - ), - Pair("avatarUrlSmall", JsonSchema.builder() - .type("string") - .format("uri") - .description("User avatar URI (small).") + ), + Pair( + "unread", JsonSchema.builder() + .type("boolean") + .description("Boolean that indicates if the current user has read the message.") .build() - ), - Pair("avatarUrlMedium", JsonSchema.builder() - .type("string") - .format("uri") - .description("User avatar URI (medium).") + ), + Pair( + "readBy", JsonSchema.builder() + .type("number") + .description("Number of users that have read the message.") .build() - ), - Pair("v", JsonSchema.builder() + ), + Pair( + "urls", JsonSchema.builder() + .type("array") + .description("List of URLs present in the message.") + .items( + JsonSchema.builder() + .type("string") + .format("uri") + .build() + ) + .build() + ), + Pair( + "mentions", JsonSchema.builder() + .type("array") + .description("List of @Mentions in the message.") + .items( + JsonSchema.builder() + .type("object") + .properties( + mapOf( + Pair( + "screenName", + JsonSchema.builder().type("string") + .build() + ), + Pair( + "userId", + JsonSchema.builder().type("string") + .build() + ), + Pair( + "userIds", JsonSchema.builder() + .type("array") + .items( + JsonSchema.builder() + .type("string").build() + ) + .build() + ), + ) + ) + .build() + ) + .build() + ), + Pair( + "issues", JsonSchema.builder() + .type("array") + .description("List of #Issues referenced in the message.") + .items( + JsonSchema.builder() + .type("object") + .properties( + mapOf( + Pair( + "number", + JsonSchema.builder().type("string") + .build() + ), + ) + ) + .build() + ) + .build() + ), + Pair( + "meta", JsonSchema.builder() + .type("array") + .description("Metadata. This is currently not used for anything.") + .items(JsonSchema.builder().build()) + .build() + ), + Pair( + "v", JsonSchema.builder() .type("number") .description("Version.") .build() - ), - Pair("gv", JsonSchema.builder() + ), + Pair( + "gv", JsonSchema.builder() .type("string") .description("Stands for \"Gravatar version\" and is used for cache busting.") .build() - ), - )) - .build() - ), - Pair("unread", JsonSchema.builder() - .type("boolean") - .description("Boolean that indicates if the current user has read the message.") - .build() - ), - Pair("readBy", JsonSchema.builder() - .type("number") - .description("Number of users that have read the message.") - .build() - ), - Pair("urls", JsonSchema.builder() - .type("array") - .description("List of URLs present in the message.") - .items(JsonSchema.builder() - .type("string") - .format("uri") - .build() - ) - .build() - ), - Pair("mentions", JsonSchema.builder() - .type("array") - .description("List of @Mentions in the message.") - .items(JsonSchema.builder() - .type("object") - .properties(mapOf( - Pair("screenName", JsonSchema.builder().type("string").build()), - Pair("userId", JsonSchema.builder().type("string").build()), - Pair("userIds", JsonSchema.builder() - .type("array") - .items(JsonSchema.builder().type("string").build()) - .build() - ), - )) - .build() - ) - .build() - ), - Pair("issues", JsonSchema.builder() - .type("array") - .description("List of #Issues referenced in the message.") - .items(JsonSchema.builder() - .type("object") - .properties(mapOf( - Pair("number", JsonSchema.builder().type("string").build()), - )) - .build() - ) - .build() - ), - Pair("meta", JsonSchema.builder() - .type("array") - .description("Metadata. This is currently not used for anything.") - .items(JsonSchema.builder().build()) - .build() - ), - Pair("v", JsonSchema.builder() - .type("number") - .description("Version.") - .build() - ), - Pair("gv", JsonSchema.builder() - .type("string") - .description("Stands for \"Gravatar version\" and is used for cache busting.") - .build() - ), - )) + ), + ) + ) .build() - )) + ) + ) .bindings(mapOf( Pair("http", HTTPMessageBinding.builder() - .headers(AsyncAPISchema.builder() + .headers( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("Transfer-Encoding", AsyncAPISchema.builder() @@ -270,23 +327,28 @@ class GitterStreamingAsyncAPI: AbstractExampleValidationTest() { .build() ) )) - .build()) + .build() + ) + .statusCode(200) .build() ) )) .build()), Pair("heartbeat", Message.builder() .summary("Its purpose is to keep the connection alive.") - .payload(JsonFormatSchema( - "application/schema+yaml;version=draft-07", - JsonSchema.builder() - .type("string") - .enumValue(listOf("\r\n")) - .build() - )) + .payload( + JsonFormatSchema( + "application/schema+yaml;version=draft-07", + JsonSchema.builder() + .type("string") + .enumValue(listOf("\r\n")) + .build() + ) + ) .bindings(mapOf( Pair("http", HTTPMessageBinding.builder() - .headers(AsyncAPISchema.builder() + .headers( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("Transfer-Encoding", AsyncAPISchema.builder() @@ -300,7 +362,9 @@ class GitterStreamingAsyncAPI: AbstractExampleValidationTest() { .build() ) )) - .build()) + .build() + ) + .statusCode(200) .build() ) )) diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/KrakenWebsocketRequestReplyMessageFilterInReplyAsyncAPI.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/KrakenWebsocketRequestReplyMessageFilterInReplyAsyncAPI.kt index 073c1760..e7566472 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/KrakenWebsocketRequestReplyMessageFilterInReplyAsyncAPI.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/KrakenWebsocketRequestReplyMessageFilterInReplyAsyncAPI.kt @@ -1,6 +1,6 @@ package com.asyncapi.examples.v3._0_0 -import com.asyncapi.v3.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v3._0_0.model.channel.Channel import com.asyncapi.v3._0_0.model.channel.message.CorrelationId import com.asyncapi.v3._0_0.model.channel.message.Message @@ -10,7 +10,7 @@ import com.asyncapi.v3._0_0.model.info.Info import com.asyncapi.v3._0_0.model.operation.Operation import com.asyncapi.v3._0_0.model.operation.OperationAction import com.asyncapi.v3._0_0.model.operation.reply.OperationReply -import com.asyncapi.v3.schema.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.AsyncAPISchema class KrakenWebsocketRequestReplyMessageFilterInReplyAsyncAPI: AbstractExampleValidationTest() { @@ -45,14 +45,30 @@ class KrakenWebsocketRequestReplyMessageFilterInReplyAsyncAPI: AbstractExampleVa Channel.builder() .address("/") .messages(mapOf( - Pair("ping", Reference("#/components/messages/ping")), - Pair("pong", Reference("#/components/messages/pong")), - Pair("heartbeat", Reference("#/components/messages/heartbeat")), - Pair("systemStatus", Reference("#/components/messages/systemStatus")), - Pair("subscriptionStatus", Reference("#/components/messages/subscriptionStatus")), - Pair("subscribe", Reference("#/components/messages/subscribe")), - Pair("unsubscribe", Reference("#/components/messages/unsubscribe")), - Pair("dummyCurrencyInfo", Reference("#/components/messages/dummyCurrencyInfo")), + Pair("ping", + Reference("#/components/messages/ping") + ), + Pair("pong", + Reference("#/components/messages/pong") + ), + Pair("heartbeat", + Reference("#/components/messages/heartbeat") + ), + Pair("systemStatus", + Reference("#/components/messages/systemStatus") + ), + Pair("subscriptionStatus", + Reference("#/components/messages/subscriptionStatus") + ), + Pair("subscribe", + Reference("#/components/messages/subscribe") + ), + Pair("unsubscribe", + Reference("#/components/messages/unsubscribe") + ), + Pair("dummyCurrencyInfo", + Reference("#/components/messages/dummyCurrencyInfo") + ), )) .build() ) @@ -120,7 +136,8 @@ class KrakenWebsocketRequestReplyMessageFilterInReplyAsyncAPI: AbstractExampleVa Pair("dummyCurrencyInfo", Message.builder() .summary("Dummy message with no real life details") .description("It is here in this example to showcase that there is an additional message that normally is of a complex structure. It represents actually currency exchange value to show a reply to operation receiveSubscribeRequest with more than one possible message.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("event", AsyncAPISchema.builder() @@ -514,7 +531,8 @@ class KrakenWebsocketRequestReplyMessageFilterInReplyAsyncAPI: AbstractExampleVa Pair("pair", AsyncAPISchema.builder() .type("array") .description("Array of currency pairs.") - .items(AsyncAPISchema.builder() + .items( + AsyncAPISchema.builder() .type("string") .description("Format of each pair is \"A/B\", where A and B are ISO 4217-A3 for standardized assets and popular unique symbol if not standardized.") .pattern("[A-Z\\s]+\\/[A-Z\\s]+") diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/KrakenWebsocketRequestReplyMultipleChannelsAsyncAPI.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/KrakenWebsocketRequestReplyMultipleChannelsAsyncAPI.kt index 54d41f9d..661f1416 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/KrakenWebsocketRequestReplyMultipleChannelsAsyncAPI.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/KrakenWebsocketRequestReplyMultipleChannelsAsyncAPI.kt @@ -1,6 +1,6 @@ package com.asyncapi.examples.v3._0_0 -import com.asyncapi.v3.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v3._0_0.model.channel.Channel import com.asyncapi.v3._0_0.model.channel.message.CorrelationId import com.asyncapi.v3._0_0.model.channel.message.Message @@ -10,7 +10,7 @@ import com.asyncapi.v3._0_0.model.info.Info import com.asyncapi.v3._0_0.model.operation.Operation import com.asyncapi.v3._0_0.model.operation.OperationAction import com.asyncapi.v3._0_0.model.operation.reply.OperationReply -import com.asyncapi.v3.schema.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.AsyncAPISchema class KrakenWebsocketRequestReplyMultipleChannelsAsyncAPI: AbstractExampleValidationTest() { @@ -45,7 +45,9 @@ class KrakenWebsocketRequestReplyMultipleChannelsAsyncAPI: AbstractExampleValida Channel.builder() .address("/") .messages(mapOf( - Pair("ping", Reference("#/components/messages/ping")), + Pair("ping", + Reference("#/components/messages/ping") + ), )) .build() ), @@ -53,7 +55,9 @@ class KrakenWebsocketRequestReplyMultipleChannelsAsyncAPI: AbstractExampleValida Channel.builder() .address("/") .messages(mapOf( - Pair("pong", Reference("#/components/messages/pong")), + Pair("pong", + Reference("#/components/messages/pong") + ), )) .build() ), @@ -61,7 +65,9 @@ class KrakenWebsocketRequestReplyMultipleChannelsAsyncAPI: AbstractExampleValida Channel.builder() .address("/") .messages(mapOf( - Pair("heartbeat", Reference("#/components/messages/heartbeat")), + Pair("heartbeat", + Reference("#/components/messages/heartbeat") + ), )) .build() ), @@ -69,7 +75,9 @@ class KrakenWebsocketRequestReplyMultipleChannelsAsyncAPI: AbstractExampleValida Channel.builder() .address("/") .messages(mapOf( - Pair("systemStatus", Reference("#/components/messages/systemStatus")), + Pair("systemStatus", + Reference("#/components/messages/systemStatus") + ), )) .build() ), @@ -77,8 +85,12 @@ class KrakenWebsocketRequestReplyMultipleChannelsAsyncAPI: AbstractExampleValida Channel.builder() .address("/") .messages(mapOf( - Pair("subscriptionStatus", Reference("#/components/messages/subscriptionStatus")), - Pair("dummyCurrencyInfo", Reference("#/components/messages/dummyCurrencyInfo")), + Pair("subscriptionStatus", + Reference("#/components/messages/subscriptionStatus") + ), + Pair("dummyCurrencyInfo", + Reference("#/components/messages/dummyCurrencyInfo") + ), )) .build() ), @@ -86,7 +98,9 @@ class KrakenWebsocketRequestReplyMultipleChannelsAsyncAPI: AbstractExampleValida Channel.builder() .address("/") .messages(mapOf( - Pair("subscribe", Reference("#/components/messages/subscribe")), + Pair("subscribe", + Reference("#/components/messages/subscribe") + ), )) .build() ), @@ -94,7 +108,9 @@ class KrakenWebsocketRequestReplyMultipleChannelsAsyncAPI: AbstractExampleValida Channel.builder() .address("/") .messages(mapOf( - Pair("unsubscribe", Reference("#/components/messages/unsubscribe")), + Pair("unsubscribe", + Reference("#/components/messages/unsubscribe") + ), )) .build() ) @@ -152,7 +168,8 @@ class KrakenWebsocketRequestReplyMultipleChannelsAsyncAPI: AbstractExampleValida Pair("dummyCurrencyInfo", Message.builder() .summary("Dummy message with no real life details") .description("It is here in this example to showcase that there is an additional message that normally is of a complex structure. It represents actually currency exchange value to show a reply to operation receiveSubscribeRequest with more than one possible message.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("event", AsyncAPISchema.builder() @@ -546,7 +563,8 @@ class KrakenWebsocketRequestReplyMultipleChannelsAsyncAPI: AbstractExampleValida Pair("pair", AsyncAPISchema.builder() .type("array") .description("Array of currency pairs.") - .items(AsyncAPISchema.builder() + .items( + AsyncAPISchema.builder() .type("string") .description("Format of each pair is \"A/B\", where A and B are ISO 4217-A3 for standardized assets and popular unique symbol if not standardized.") .pattern("[A-Z\\s]+\\/[A-Z\\s]+") diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/MercureAsyncAPI.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/MercureAsyncAPI.kt index 2a33eb60..009307f4 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/MercureAsyncAPI.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/MercureAsyncAPI.kt @@ -1,6 +1,6 @@ package com.asyncapi.examples.v3._0_0 -import com.asyncapi.v3.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v3._0_0.model.ExternalDocumentation import com.asyncapi.v3._0_0.model.channel.Channel import com.asyncapi.v3._0_0.model.channel.Parameter @@ -10,7 +10,7 @@ import com.asyncapi.v3._0_0.model.info.Info import com.asyncapi.v3._0_0.model.operation.Operation import com.asyncapi.v3._0_0.model.operation.OperationAction import com.asyncapi.v3._0_0.model.server.Server -import com.asyncapi.v3.schema.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.AsyncAPISchema class MercureAsyncAPI: AbstractExampleValidationTest() { @@ -44,7 +44,9 @@ class MercureAsyncAPI: AbstractExampleValidationTest() { Channel.builder() .address("https://example.com/books/{id}") .messages(mapOf( - Pair("book", Reference("#/components/messages/book")) + Pair("book", + Reference("#/components/messages/book") + ) )) .description( "Every time a resource of type `http://schema.org/Book` is created or " + @@ -66,7 +68,7 @@ class MercureAsyncAPI: AbstractExampleValidationTest() { .action(OperationAction.RECEIVE) .channel(Reference("#/channels/books")) .messages(listOf( - Reference("#/channels/books/messages/book") + Reference("#/channels/books/messages/book") )) .build() ), @@ -75,7 +77,7 @@ class MercureAsyncAPI: AbstractExampleValidationTest() { .action(OperationAction.SEND) .channel(Reference("#/channels/books")) .messages(listOf( - Reference("#/channels/books/messages/book") + Reference("#/channels/books/messages/book") )) .build() ) @@ -89,7 +91,8 @@ class MercureAsyncAPI: AbstractExampleValidationTest() { Message.builder() .summary("The content of a book resource.") .externalDocs(ExternalDocumentation(null, "https://schema.org/Book")) - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("@id", diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/NotAsyncAPI.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/NotAsyncAPI.kt index fae868ca..821fcce1 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/NotAsyncAPI.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/NotAsyncAPI.kt @@ -1,13 +1,13 @@ package com.asyncapi.examples.v3._0_0 -import com.asyncapi.v3.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v3._0_0.model.channel.Channel import com.asyncapi.v3._0_0.model.channel.message.Message import com.asyncapi.v3._0_0.model.component.Components import com.asyncapi.v3._0_0.model.info.Info import com.asyncapi.v3._0_0.model.operation.Operation import com.asyncapi.v3._0_0.model.operation.OperationAction -import com.asyncapi.v3.schema.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.AsyncAPISchema class NotAsyncAPI: AbstractExampleValidationTest() { @@ -28,7 +28,9 @@ class NotAsyncAPI: AbstractExampleValidationTest() { Channel.builder() .address("test") .messages(mapOf( - Pair("testMessages", Reference("#/components/messages/testMessages")) + Pair("testMessages", + Reference("#/components/messages/testMessages") + ) )) .build() ) diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/OneOfAsyncAPI.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/OneOfAsyncAPI.kt index ee97d3f5..f755839e 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/OneOfAsyncAPI.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/OneOfAsyncAPI.kt @@ -1,13 +1,13 @@ package com.asyncapi.examples.v3._0_0 -import com.asyncapi.v3.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v3._0_0.model.channel.Channel import com.asyncapi.v3._0_0.model.channel.message.Message import com.asyncapi.v3._0_0.model.component.Components import com.asyncapi.v3._0_0.model.info.Info import com.asyncapi.v3._0_0.model.operation.Operation import com.asyncapi.v3._0_0.model.operation.OperationAction -import com.asyncapi.v3.schema.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.AsyncAPISchema class OneOfAsyncAPI: AbstractExampleValidationTest() { @@ -28,7 +28,9 @@ class OneOfAsyncAPI: AbstractExampleValidationTest() { Channel.builder() .address("test") .messages(mapOf( - Pair("testMessages", Reference("#/components/messages/testMessages")) + Pair("testMessages", + Reference("#/components/messages/testMessages") + ) )) .build() ), @@ -36,8 +38,16 @@ class OneOfAsyncAPI: AbstractExampleValidationTest() { Channel.builder() .address("test2") .messages(mapOf( - Pair("objectWithKey", Message.builder().payload(Reference("#/components/schemas/objectWithKey")).build()), - Pair("objectWithKey2", Message.builder().payload(Reference("#/components/schemas/objectWithKey2")).build()) + Pair("objectWithKey", Message.builder().payload( + Reference( + "#/components/schemas/objectWithKey" + ) + ).build()), + Pair("objectWithKey2", Message.builder().payload( + Reference( + "#/components/schemas/objectWithKey2" + ) + ).build()) )) .build() ) @@ -58,8 +68,8 @@ class OneOfAsyncAPI: AbstractExampleValidationTest() { .action(OperationAction.SEND) .channel(Reference("#/channels/test2")) .messages(listOf( - Reference("#/channels/test2/messages/objectWithKey"), - Reference("#/channels/test2/messages/objectWithKey2") + Reference("#/channels/test2/messages/objectWithKey"), + Reference("#/channels/test2/messages/objectWithKey2") )) .build() ) @@ -71,7 +81,8 @@ class OneOfAsyncAPI: AbstractExampleValidationTest() { .messages(mapOf( Pair("testMessages", Message.builder() - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .oneOf(listOf( AsyncAPISchema.builder().ref("#/components/schemas/objectWithKey").build(), AsyncAPISchema.builder().ref("#/components/schemas/objectWithKey2").build() diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/OperationSecurityAsyncAPI.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/OperationSecurityAsyncAPI.kt index aa5e02cd..ca91c123 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/OperationSecurityAsyncAPI.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/OperationSecurityAsyncAPI.kt @@ -1,18 +1,18 @@ package com.asyncapi.examples.v3._0_0 -import com.asyncapi.v3.Reference +import com.asyncapi.schemas.asyncapi.Reference +import com.asyncapi.bindings.http.v0._3_0.operation.HTTPOperationBinding +import com.asyncapi.bindings.http.v0._3_0.operation.HTTPOperationMethod import com.asyncapi.v3._0_0.model.channel.Channel import com.asyncapi.v3._0_0.model.channel.message.Message import com.asyncapi.v3._0_0.model.component.Components import com.asyncapi.v3._0_0.model.info.Info import com.asyncapi.v3._0_0.model.operation.Operation import com.asyncapi.v3._0_0.model.operation.OperationAction -import com.asyncapi.v3.binding.operation.http.HTTPOperationBinding -import com.asyncapi.v3.binding.operation.http.HTTPOperationMethod -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.security_scheme.oauth2.OAuth2SecurityScheme -import com.asyncapi.v3.security_scheme.oauth2.OAuthFlows -import com.asyncapi.v3.security_scheme.oauth2.flow.ClientCredentialsOAuthFlow +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.security.v3.oauth2.OAuth2SecurityScheme +import com.asyncapi.schemas.asyncapi.security.v3.oauth2.OAuthFlows +import com.asyncapi.schemas.asyncapi.security.v3.oauth2.flow.ClientCredentialsOAuthFlow class OperationSecurityAsyncAPI: AbstractExampleValidationTest() { @@ -34,7 +34,9 @@ class OperationSecurityAsyncAPI: AbstractExampleValidationTest() { Channel.builder() .address("AUTHORIZATION_REVOCATION") .messages(mapOf( - Pair("message", Reference("#/components/messages/message")) + Pair("message", + Reference("#/components/messages/message") + ) )) .build() ) @@ -48,22 +50,25 @@ class OperationSecurityAsyncAPI: AbstractExampleValidationTest() { .action(OperationAction.SEND) .channel(Reference("#/channels/authRevoke")) .security(listOf( - OAuth2SecurityScheme( - "The oauth security descriptions", - OAuthFlows( - null, - null, - ClientCredentialsOAuthFlow( - "", - mapOf( - Pair("subscribe:auth_revocations", "Scope required for authorization revocation topic") - ), - "https://example.com/api/oauth/dialog" - ), - null + OAuth2SecurityScheme( + "The oauth security descriptions", + OAuthFlows( + null, + null, + ClientCredentialsOAuthFlow( + "", + mapOf( + Pair( + "subscribe:auth_revocations", + "Scope required for authorization revocation topic" + ) ), - listOf("subscribe:auth_revocations"), - ) + "https://example.com/api/oauth/dialog" + ), + null + ), + listOf("subscribe:auth_revocations"), + ) )) .bindings(mapOf( Pair("http", HTTPOperationBinding.builder() @@ -71,7 +76,7 @@ class OperationSecurityAsyncAPI: AbstractExampleValidationTest() { .build()) )) .messages(listOf( - Reference("#/channels/authRevoke/messages/message") + Reference("#/channels/authRevoke/messages/message") )) .build() ) @@ -83,7 +88,8 @@ class OperationSecurityAsyncAPI: AbstractExampleValidationTest() { .messages(mapOf( Pair("message", Message.builder() - .headers(AsyncAPISchema.builder() + .headers( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("X-SIGNATURE", AsyncAPISchema.builder() @@ -100,7 +106,8 @@ class OperationSecurityAsyncAPI: AbstractExampleValidationTest() { ) )) .build()) - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("metadata", AsyncAPISchema.builder().ref("#/components/schemas/MetaData").build()), @@ -206,22 +213,27 @@ class OperationSecurityAsyncAPI: AbstractExampleValidationTest() { ) )) .securitySchemes(mapOf( - Pair("petstore_auth", OAuth2SecurityScheme( + Pair("petstore_auth", + OAuth2SecurityScheme( "The oauth security descriptions", OAuthFlows( - null, - null, - ClientCredentialsOAuthFlow( - "", - mapOf( - Pair("subscribe:auth_revocations", "Scope required for authorization revocation topic") - ), - "https://example.com/api/oauth/dialog" + null, + null, + ClientCredentialsOAuthFlow( + "", + mapOf( + Pair( + "subscribe:auth_revocations", + "Scope required for authorization revocation topic" + ) ), - null + "https://example.com/api/oauth/dialog" + ), + null ), null - )) + ) + ) )) .build() } diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/RpcClientAsyncAPI.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/RpcClientAsyncAPI.kt index ed2fda23..c1effc03 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/RpcClientAsyncAPI.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/RpcClientAsyncAPI.kt @@ -1,6 +1,6 @@ package com.asyncapi.examples.v3._0_0 -import com.asyncapi.v3.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v3._0_0.model.channel.Channel import com.asyncapi.v3._0_0.model.channel.Parameter import com.asyncapi.v3._0_0.model.channel.message.CorrelationId @@ -10,11 +10,11 @@ import com.asyncapi.v3._0_0.model.info.Info import com.asyncapi.v3._0_0.model.operation.Operation import com.asyncapi.v3._0_0.model.operation.OperationAction import com.asyncapi.v3._0_0.model.server.Server -import com.asyncapi.v3.binding.channel.amqp.AMQPChannelBinding -import com.asyncapi.v3.binding.channel.amqp.AMQPChannelType -import com.asyncapi.v3.binding.channel.amqp.queue.AMQPChannelQueueProperties -import com.asyncapi.v3.binding.operation.amqp.AMQPOperationBinding -import com.asyncapi.v3.schema.AsyncAPISchema +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelBinding +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelType +import com.asyncapi.bindings.amqp.v0._3_0.channel.queue.AMQPChannelQueueProperties +import com.asyncapi.bindings.amqp.v0._3_0.operation.AMQPOperationBinding +import com.asyncapi.schemas.asyncapi.AsyncAPISchema class RpcClientAsyncAPI: AbstractExampleValidationTest() { @@ -51,7 +51,8 @@ class RpcClientAsyncAPI: AbstractExampleValidationTest() { Pair("receiveSumResult", Message.builder() .correlationId(CorrelationId(null, "\$message.header#/correlation_id")) - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("result", AsyncAPISchema.builder() @@ -88,12 +89,14 @@ class RpcClientAsyncAPI: AbstractExampleValidationTest() { Pair("requestSum", Message.builder() .correlationId(CorrelationId(null, "\$message.header#/correlation_id")) - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("numbers", AsyncAPISchema.builder() .type("array") - .items(AsyncAPISchema.builder() + .items( + AsyncAPISchema.builder() .type("number") .build() ) @@ -136,7 +139,7 @@ class RpcClientAsyncAPI: AbstractExampleValidationTest() { ) )) .messages(listOf( - Reference("#/channels/queue/messages/receiveSumResult") + Reference("#/channels/queue/messages/receiveSumResult") )) .build() ), @@ -152,7 +155,7 @@ class RpcClientAsyncAPI: AbstractExampleValidationTest() { ) )) .messages(listOf( - Reference("#/channels/rpc_queue/messages/requestSum") + Reference("#/channels/rpc_queue/messages/requestSum") )) .build() ) diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/RpcServerAsyncAPI.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/RpcServerAsyncAPI.kt index 40902eee..0448517f 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/RpcServerAsyncAPI.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/RpcServerAsyncAPI.kt @@ -1,6 +1,6 @@ package com.asyncapi.examples.v3._0_0 -import com.asyncapi.v3.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v3._0_0.model.channel.Channel import com.asyncapi.v3._0_0.model.channel.Parameter import com.asyncapi.v3._0_0.model.channel.message.CorrelationId @@ -10,11 +10,11 @@ import com.asyncapi.v3._0_0.model.info.Info import com.asyncapi.v3._0_0.model.operation.Operation import com.asyncapi.v3._0_0.model.operation.OperationAction import com.asyncapi.v3._0_0.model.server.Server -import com.asyncapi.v3.binding.channel.amqp.AMQPChannelBinding -import com.asyncapi.v3.binding.channel.amqp.AMQPChannelType -import com.asyncapi.v3.binding.channel.amqp.queue.AMQPChannelQueueProperties -import com.asyncapi.v3.binding.operation.amqp.AMQPOperationBinding -import com.asyncapi.v3.schema.AsyncAPISchema +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelBinding +import com.asyncapi.bindings.amqp.v0._3_0.channel.AMQPChannelType +import com.asyncapi.bindings.amqp.v0._3_0.channel.queue.AMQPChannelQueueProperties +import com.asyncapi.bindings.amqp.v0._3_0.operation.AMQPOperationBinding +import com.asyncapi.schemas.asyncapi.AsyncAPISchema class RpcServerAsyncAPI: AbstractExampleValidationTest() { @@ -51,7 +51,8 @@ class RpcServerAsyncAPI: AbstractExampleValidationTest() { Pair("sendSumResult", Message.builder() .correlationId(CorrelationId(null, "\$message.header#/correlation_id")) - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("result", AsyncAPISchema.builder() @@ -88,12 +89,14 @@ class RpcServerAsyncAPI: AbstractExampleValidationTest() { Pair("sum", Message.builder() .correlationId(CorrelationId(null, "\$message.header#/correlation_id")) - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("numbers", AsyncAPISchema.builder() .type("array") - .items(AsyncAPISchema.builder() + .items( + AsyncAPISchema.builder() .type("number") .build() ) @@ -136,7 +139,7 @@ class RpcServerAsyncAPI: AbstractExampleValidationTest() { ) )) .messages(listOf( - Reference("#/channels/queue/messages/sendSumResult") + Reference("#/channels/queue/messages/sendSumResult") )) .build() ), @@ -145,7 +148,7 @@ class RpcServerAsyncAPI: AbstractExampleValidationTest() { .action(OperationAction.RECEIVE) .channel(Reference("#/channels/rpc_queue")) .messages(listOf( - Reference("#/channels/rpc_queue/messages/sum") + Reference("#/channels/rpc_queue/messages/sum") )) .build() ) diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/SimpleAsyncAPI.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/SimpleAsyncAPI.kt index b0ac9077..156fbfa6 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/SimpleAsyncAPI.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/SimpleAsyncAPI.kt @@ -1,13 +1,13 @@ package com.asyncapi.examples.v3._0_0 -import com.asyncapi.v3.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v3._0_0.model.channel.Channel import com.asyncapi.v3._0_0.model.channel.message.Message import com.asyncapi.v3._0_0.model.component.Components import com.asyncapi.v3._0_0.model.info.Info import com.asyncapi.v3._0_0.model.operation.Operation import com.asyncapi.v3._0_0.model.operation.OperationAction -import com.asyncapi.v3.schema.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.AsyncAPISchema class SimpleAsyncAPI: AbstractExampleValidationTest() { @@ -29,7 +29,9 @@ class SimpleAsyncAPI: AbstractExampleValidationTest() { Channel.builder() .address("user/signedup") .messages(mapOf( - Pair("UserSignedUp", Reference("#/components/messages/UserSignedUp")) + Pair("UserSignedUp", + Reference("#/components/messages/UserSignedUp") + ) )) .build() ) @@ -43,7 +45,7 @@ class SimpleAsyncAPI: AbstractExampleValidationTest() { .action(OperationAction.SEND) .channel(Reference("#/channels/userSignedup")) .messages(listOf( - Reference("#/channels/userSignedup/messages/UserSignedUp") + Reference("#/channels/userSignedup/messages/UserSignedUp") )) .build() ) @@ -55,7 +57,8 @@ class SimpleAsyncAPI: AbstractExampleValidationTest() { .messages(mapOf( Pair("UserSignedUp", Message.builder() - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("displayName", diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/SlackRtmAsyncAPI.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/SlackRtmAsyncAPI.kt index 4bee7d0c..6458ba2b 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/SlackRtmAsyncAPI.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/SlackRtmAsyncAPI.kt @@ -1,6 +1,6 @@ package com.asyncapi.examples.v3._0_0 -import com.asyncapi.v3.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v3._0_0.model.channel.Channel import com.asyncapi.v3._0_0.model.channel.message.Message import com.asyncapi.v3._0_0.model.component.Components @@ -8,8 +8,8 @@ import com.asyncapi.v3._0_0.model.info.Info import com.asyncapi.v3._0_0.model.operation.Operation import com.asyncapi.v3._0_0.model.operation.OperationAction import com.asyncapi.v3._0_0.model.server.Server -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.security_scheme.http.HttpApiKeySecurityScheme +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.security.v3.http.HttpApiKeySecurityScheme class SlackRtmAsyncAPI: AbstractExampleValidationTest() { @@ -33,7 +33,7 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { .protocol("https") .protocolVersion("1.1") .security(listOf( - Reference("#/components/securitySchemes/token") + Reference("#/components/securitySchemes/token") )) .build() ) @@ -46,53 +46,147 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Channel.builder() .address("/") .messages(mapOf( - Pair("outgoingMessage", Reference("#/components/messages/outgoingMessage")), - Pair("hello", Reference("#/components/messages/hello")), - Pair("connectionError", Reference("#/components/messages/connectionError")), - Pair("accountsChanged", Reference("#/components/messages/accountsChanged")), - Pair("botAdded", Reference("#/components/messages/botAdded")), - Pair("botChanged", Reference("#/components/messages/botChanged")), - Pair("channelArchive", Reference("#/components/messages/channelArchive")), - Pair("channelCreated", Reference("#/components/messages/channelCreated")), - Pair("channelDeleted", Reference("#/components/messages/channelDeleted")), - Pair("channelHistoryChanged", Reference("#/components/messages/channelHistoryChanged")), - Pair("channelJoined", Reference("#/components/messages/channelJoined")), - Pair("channelLeft", Reference("#/components/messages/channelLeft")), - Pair("channelMarked", Reference("#/components/messages/channelMarked")), - Pair("channelRename", Reference("#/components/messages/channelRename")), - Pair("channelUnarchive", Reference("#/components/messages/channelUnarchive")), - Pair("commandsChanged", Reference("#/components/messages/commandsChanged")), - Pair("dndUpdated", Reference("#/components/messages/dndUpdated")), - Pair("dndUpdatedUser", Reference("#/components/messages/dndUpdatedUser")), - Pair("emailDomainChanged", Reference("#/components/messages/emailDomainChanged")), - Pair("emojiRemoved", Reference("#/components/messages/emojiRemoved")), - Pair("emojiAdded", Reference("#/components/messages/emojiAdded")), - Pair("fileChange", Reference("#/components/messages/fileChange")), - Pair("fileCommentAdded", Reference("#/components/messages/fileCommentAdded")), - Pair("fileCommentDeleted", Reference("#/components/messages/fileCommentDeleted")), - Pair("fileCommentEdited", Reference("#/components/messages/fileCommentEdited")), - Pair("fileCreated", Reference("#/components/messages/fileCreated")), - Pair("fileDeleted", Reference("#/components/messages/fileDeleted")), - Pair("filePublic", Reference("#/components/messages/filePublic")), - Pair("fileShared", Reference("#/components/messages/fileShared")), - Pair("fileUnshared", Reference("#/components/messages/fileUnshared")), - Pair("goodbye", Reference("#/components/messages/goodbye")), - Pair("groupArchive", Reference("#/components/messages/groupArchive")), - Pair("groupClose", Reference("#/components/messages/groupClose")), - Pair("groupHistoryChanged", Reference("#/components/messages/groupHistoryChanged")), - Pair("groupJoined", Reference("#/components/messages/groupJoined")), - Pair("groupLeft", Reference("#/components/messages/groupLeft")), - Pair("groupMarked", Reference("#/components/messages/groupMarked")), - Pair("groupOpen", Reference("#/components/messages/groupOpen")), - Pair("groupRename", Reference("#/components/messages/groupRename")), - Pair("groupUnarchive", Reference("#/components/messages/groupUnarchive")), - Pair("imClose", Reference("#/components/messages/imClose")), - Pair("imCreated", Reference("#/components/messages/imCreated")), - Pair("imMarked", Reference("#/components/messages/imMarked")), - Pair("imOpen", Reference("#/components/messages/imOpen")), - Pair("manualPresenceChange", Reference("#/components/messages/manualPresenceChange")), - Pair("memberJoinedChannel", Reference("#/components/messages/memberJoinedChannel")), - Pair("message", Reference("#/components/messages/message")), + Pair("outgoingMessage", + Reference("#/components/messages/outgoingMessage") + ), + Pair("hello", + Reference("#/components/messages/hello") + ), + Pair("connectionError", + Reference("#/components/messages/connectionError") + ), + Pair("accountsChanged", + Reference("#/components/messages/accountsChanged") + ), + Pair("botAdded", + Reference("#/components/messages/botAdded") + ), + Pair("botChanged", + Reference("#/components/messages/botChanged") + ), + Pair("channelArchive", + Reference("#/components/messages/channelArchive") + ), + Pair("channelCreated", + Reference("#/components/messages/channelCreated") + ), + Pair("channelDeleted", + Reference("#/components/messages/channelDeleted") + ), + Pair("channelHistoryChanged", + Reference("#/components/messages/channelHistoryChanged") + ), + Pair("channelJoined", + Reference("#/components/messages/channelJoined") + ), + Pair("channelLeft", + Reference("#/components/messages/channelLeft") + ), + Pair("channelMarked", + Reference("#/components/messages/channelMarked") + ), + Pair("channelRename", + Reference("#/components/messages/channelRename") + ), + Pair("channelUnarchive", + Reference("#/components/messages/channelUnarchive") + ), + Pair("commandsChanged", + Reference("#/components/messages/commandsChanged") + ), + Pair("dndUpdated", + Reference("#/components/messages/dndUpdated") + ), + Pair("dndUpdatedUser", + Reference("#/components/messages/dndUpdatedUser") + ), + Pair("emailDomainChanged", + Reference("#/components/messages/emailDomainChanged") + ), + Pair("emojiRemoved", + Reference("#/components/messages/emojiRemoved") + ), + Pair("emojiAdded", + Reference("#/components/messages/emojiAdded") + ), + Pair("fileChange", + Reference("#/components/messages/fileChange") + ), + Pair("fileCommentAdded", + Reference("#/components/messages/fileCommentAdded") + ), + Pair("fileCommentDeleted", + Reference("#/components/messages/fileCommentDeleted") + ), + Pair("fileCommentEdited", + Reference("#/components/messages/fileCommentEdited") + ), + Pair("fileCreated", + Reference("#/components/messages/fileCreated") + ), + Pair("fileDeleted", + Reference("#/components/messages/fileDeleted") + ), + Pair("filePublic", + Reference("#/components/messages/filePublic") + ), + Pair("fileShared", + Reference("#/components/messages/fileShared") + ), + Pair("fileUnshared", + Reference("#/components/messages/fileUnshared") + ), + Pair("goodbye", + Reference("#/components/messages/goodbye") + ), + Pair("groupArchive", + Reference("#/components/messages/groupArchive") + ), + Pair("groupClose", + Reference("#/components/messages/groupClose") + ), + Pair("groupHistoryChanged", + Reference("#/components/messages/groupHistoryChanged") + ), + Pair("groupJoined", + Reference("#/components/messages/groupJoined") + ), + Pair("groupLeft", + Reference("#/components/messages/groupLeft") + ), + Pair("groupMarked", + Reference("#/components/messages/groupMarked") + ), + Pair("groupOpen", + Reference("#/components/messages/groupOpen") + ), + Pair("groupRename", + Reference("#/components/messages/groupRename") + ), + Pair("groupUnarchive", + Reference("#/components/messages/groupUnarchive") + ), + Pair("imClose", + Reference("#/components/messages/imClose") + ), + Pair("imCreated", + Reference("#/components/messages/imCreated") + ), + Pair("imMarked", + Reference("#/components/messages/imMarked") + ), + Pair("imOpen", + Reference("#/components/messages/imOpen") + ), + Pair("manualPresenceChange", + Reference("#/components/messages/manualPresenceChange") + ), + Pair("memberJoinedChannel", + Reference("#/components/messages/memberJoinedChannel") + ), + Pair("message", + Reference("#/components/messages/message") + ), )) .build() ) @@ -106,7 +200,7 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { .action(OperationAction.RECEIVE) .channel(Reference("#/channels/root")) .messages(listOf( - Reference("#/channels/root/messages/outgoingMessage") + Reference("#/channels/root/messages/outgoingMessage") )) .build() ), @@ -115,52 +209,52 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { .action(OperationAction.SEND) .channel(Reference("#/channels/root")) .messages(listOf( - Reference("#/channels/root/messages/hello"), - Reference("#/channels/root/messages/connectionError"), - Reference("#/channels/root/messages/accountsChanged"), - Reference("#/channels/root/messages/botAdded"), - Reference("#/channels/root/messages/botChanged"), - Reference("#/channels/root/messages/channelArchive"), - Reference("#/channels/root/messages/channelCreated"), - Reference("#/channels/root/messages/channelDeleted"), - Reference("#/channels/root/messages/channelHistoryChanged"), - Reference("#/channels/root/messages/channelJoined"), - Reference("#/channels/root/messages/channelLeft"), - Reference("#/channels/root/messages/channelMarked"), - Reference("#/channels/root/messages/channelRename"), - Reference("#/channels/root/messages/channelUnarchive"), - Reference("#/channels/root/messages/commandsChanged"), - Reference("#/channels/root/messages/dndUpdated"), - Reference("#/channels/root/messages/dndUpdatedUser"), - Reference("#/channels/root/messages/emailDomainChanged"), - Reference("#/channels/root/messages/emojiRemoved"), - Reference("#/channels/root/messages/emojiAdded"), - Reference("#/channels/root/messages/fileChange"), - Reference("#/channels/root/messages/fileCommentAdded"), - Reference("#/channels/root/messages/fileCommentDeleted"), - Reference("#/channels/root/messages/fileCommentEdited"), - Reference("#/channels/root/messages/fileCreated"), - Reference("#/channels/root/messages/fileDeleted"), - Reference("#/channels/root/messages/filePublic"), - Reference("#/channels/root/messages/fileShared"), - Reference("#/channels/root/messages/fileUnshared"), - Reference("#/channels/root/messages/goodbye"), - Reference("#/channels/root/messages/groupArchive"), - Reference("#/channels/root/messages/groupClose"), - Reference("#/channels/root/messages/groupHistoryChanged"), - Reference("#/channels/root/messages/groupJoined"), - Reference("#/channels/root/messages/groupLeft"), - Reference("#/channels/root/messages/groupMarked"), - Reference("#/channels/root/messages/groupOpen"), - Reference("#/channels/root/messages/groupRename"), - Reference("#/channels/root/messages/groupUnarchive"), - Reference("#/channels/root/messages/imClose"), - Reference("#/channels/root/messages/imCreated"), - Reference("#/channels/root/messages/imMarked"), - Reference("#/channels/root/messages/imOpen"), - Reference("#/channels/root/messages/manualPresenceChange"), - Reference("#/channels/root/messages/memberJoinedChannel"), - Reference("#/channels/root/messages/message"), + Reference("#/channels/root/messages/hello"), + Reference("#/channels/root/messages/connectionError"), + Reference("#/channels/root/messages/accountsChanged"), + Reference("#/channels/root/messages/botAdded"), + Reference("#/channels/root/messages/botChanged"), + Reference("#/channels/root/messages/channelArchive"), + Reference("#/channels/root/messages/channelCreated"), + Reference("#/channels/root/messages/channelDeleted"), + Reference("#/channels/root/messages/channelHistoryChanged"), + Reference("#/channels/root/messages/channelJoined"), + Reference("#/channels/root/messages/channelLeft"), + Reference("#/channels/root/messages/channelMarked"), + Reference("#/channels/root/messages/channelRename"), + Reference("#/channels/root/messages/channelUnarchive"), + Reference("#/channels/root/messages/commandsChanged"), + Reference("#/channels/root/messages/dndUpdated"), + Reference("#/channels/root/messages/dndUpdatedUser"), + Reference("#/channels/root/messages/emailDomainChanged"), + Reference("#/channels/root/messages/emojiRemoved"), + Reference("#/channels/root/messages/emojiAdded"), + Reference("#/channels/root/messages/fileChange"), + Reference("#/channels/root/messages/fileCommentAdded"), + Reference("#/channels/root/messages/fileCommentDeleted"), + Reference("#/channels/root/messages/fileCommentEdited"), + Reference("#/channels/root/messages/fileCreated"), + Reference("#/channels/root/messages/fileDeleted"), + Reference("#/channels/root/messages/filePublic"), + Reference("#/channels/root/messages/fileShared"), + Reference("#/channels/root/messages/fileUnshared"), + Reference("#/channels/root/messages/goodbye"), + Reference("#/channels/root/messages/groupArchive"), + Reference("#/channels/root/messages/groupClose"), + Reference("#/channels/root/messages/groupHistoryChanged"), + Reference("#/channels/root/messages/groupJoined"), + Reference("#/channels/root/messages/groupLeft"), + Reference("#/channels/root/messages/groupMarked"), + Reference("#/channels/root/messages/groupOpen"), + Reference("#/channels/root/messages/groupRename"), + Reference("#/channels/root/messages/groupUnarchive"), + Reference("#/channels/root/messages/imClose"), + Reference("#/channels/root/messages/imCreated"), + Reference("#/channels/root/messages/imMarked"), + Reference("#/channels/root/messages/imOpen"), + Reference("#/channels/root/messages/manualPresenceChange"), + Reference("#/channels/root/messages/memberJoinedChannel"), + Reference("#/channels/root/messages/message"), )) .build() ) @@ -170,11 +264,13 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { override fun expectedComponents(): Components? { return Components.builder() .securitySchemes(mapOf( - Pair("token", HttpApiKeySecurityScheme( + Pair("token", + HttpApiKeySecurityScheme( null, "token", HttpApiKeySecurityScheme.ApiKeyLocation.QUERY - )) + ) + ) )) .schemas(mapOf( Pair("attachment", @@ -222,7 +318,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { ), Pair("fields", AsyncAPISchema.builder() .type("array") - .items(AsyncAPISchema.builder() + .items( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("title", AsyncAPISchema.builder() @@ -273,7 +370,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("hello", Message.builder() .summary("First event received upon connection.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -289,7 +387,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("connectionError", Message.builder() .summary("Event received when a connection error happens.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -313,7 +412,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("accountsChanged", Message.builder() .summary("The list of accounts a user is signed into has changed.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -329,7 +429,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("botAdded", Message.builder() .summary("A bot user was added.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -368,7 +469,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("botChanged", Message.builder() .summary("A bot user was changed.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -407,7 +509,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("channelArchive", Message.builder() .summary("A channel was archived.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -431,7 +534,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("channelCreated", Message.builder() .summary("A channel was created.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -469,7 +573,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("channelDeleted", Message.builder() .summary("A channel was deleted.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -489,7 +594,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("channelHistoryChanged", Message.builder() .summary("Bulk updates were made to a channel's history.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -517,7 +623,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("channelJoined", Message.builder() .summary("You joined a channel.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -555,7 +662,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("channelLeft", Message.builder() .summary("You left a channel.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -575,7 +683,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("channelMarked", Message.builder() .summary("Your channel read marker was updated.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -599,7 +708,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("channelRename", Message.builder() .summary("A channel was renamed.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -633,7 +743,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("channelUnarchive", Message.builder() .summary("A channel was unarchived.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -657,7 +768,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("commandsChanged", Message.builder() .summary("A slash command has been added or changed.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -677,7 +789,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("dndUpdated", Message.builder() .summary("Do not Disturb settings changed for the current user.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -723,7 +836,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("dndUpdatedUser", Message.builder() .summary("Do not Disturb settings changed for a member.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -761,7 +875,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("emailDomainChanged", Message.builder() .summary("The workspace email domain has changed.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -785,7 +900,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("emojiRemoved", Message.builder() .summary("A custom emoji has been removed.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -815,7 +931,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("emojiAdded", Message.builder() .summary("A custom emoji has been added.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -849,7 +966,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("fileChange", Message.builder() .summary("A file was changed.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -876,7 +994,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("fileCommentAdded", Message.builder() .summary("A file comment was added.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -884,7 +1003,9 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { .enumValue(listOf("file_comment_added")) .build() ), - Pair("comment", AsyncAPISchema()), + Pair("comment", + AsyncAPISchema() + ), Pair("file_id", AsyncAPISchema.builder() .type("string") .build() @@ -904,7 +1025,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("fileCommentDeleted", Message.builder() .summary("A file comment was deleted.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -935,7 +1057,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("fileCommentEdited", Message.builder() .summary("A file comment was edited.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -943,7 +1066,9 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { .enumValue(listOf("file_comment_edited")) .build() ), - Pair("comment", AsyncAPISchema()), + Pair("comment", + AsyncAPISchema() + ), Pair("file_id", AsyncAPISchema.builder() .type("string") .build() @@ -963,7 +1088,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("fileCreated", Message.builder() .summary("A file was created.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -990,7 +1116,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("fileDeleted", Message.builder() .summary("A file was deleted.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -1014,7 +1141,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("filePublic", Message.builder() .summary("A file was made public.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -1041,7 +1169,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("fileShared", Message.builder() .summary("A file was shared.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -1068,7 +1197,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("fileUnshared", Message.builder() .summary("A file was unshared.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -1095,7 +1225,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("goodbye", Message.builder() .summary("The server intends to close the connection soon.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -1111,7 +1242,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("groupArchive", Message.builder() .summary("A private channel was archived.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -1131,7 +1263,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("groupClose", Message.builder() .summary("You closed a private channel.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -1155,7 +1288,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("groupHistoryChanged", Message.builder() .summary("Bulk updates were made to a private channel's history.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -1183,7 +1317,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("groupJoined", Message.builder() .summary("You joined a private channel.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -1221,7 +1356,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("groupLeft", Message.builder() .summary("You left a private channel.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -1241,7 +1377,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("groupMarked", Message.builder() .summary("A private channel read marker was updated.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -1265,7 +1402,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("groupOpen", Message.builder() .summary("You opened a private channel.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -1289,7 +1427,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("groupRename", Message.builder() .summary("A private channel was renamed.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -1323,7 +1462,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("groupUnarchive", Message.builder() .summary("A private channel was unarchived.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -1347,7 +1487,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("imClose", Message.builder() .summary("You closed a DM.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -1371,7 +1512,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("imCreated", Message.builder() .summary("A DM was created.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -1413,7 +1555,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("imMarked", Message.builder() .summary("A direct message read marker was updated.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -1437,7 +1580,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("imOpen", Message.builder() .summary("You opened a DM.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -1461,7 +1605,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("manualPresenceChange", Message.builder() .summary("You manually updated your presence.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -1481,7 +1626,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("memberJoinedChannel", Message.builder() .summary("A user joined a public or private channel.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -1518,7 +1664,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("memberLeftChannel", Message.builder() .summary("A user left a public or private channel.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -1551,7 +1698,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("message", Message.builder() .summary("A message was sent to a channel.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() @@ -1602,7 +1750,8 @@ class SlackRtmAsyncAPI: AbstractExampleValidationTest() { Pair("outgoingMessage", Message.builder() .summary("A message was sent to a channel.") - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("type", AsyncAPISchema.builder() diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/StreetlightsKafkaAsyncAPI.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/StreetlightsKafkaAsyncAPI.kt index 9460de7e..451e19b7 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/StreetlightsKafkaAsyncAPI.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/StreetlightsKafkaAsyncAPI.kt @@ -1,6 +1,6 @@ package com.asyncapi.examples.v3._0_0 -import com.asyncapi.v3.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v3._0_0.model.Tag import com.asyncapi.v3._0_0.model.channel.Channel import com.asyncapi.v3._0_0.model.channel.Parameter @@ -13,9 +13,9 @@ import com.asyncapi.v3._0_0.model.operation.Operation import com.asyncapi.v3._0_0.model.operation.OperationAction import com.asyncapi.v3._0_0.model.operation.OperationTrait import com.asyncapi.v3._0_0.model.server.Server -import com.asyncapi.v3.binding.operation.kafka.KafkaOperationBinding -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.security_scheme.SecurityScheme +import com.asyncapi.bindings.kafka.v0._5_0.operation.KafkaOperationBinding +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.security.v3.SecurityScheme import java.math.BigDecimal class StreetlightsKafkaAsyncAPI: AbstractExampleValidationTest() { @@ -95,30 +95,46 @@ class StreetlightsKafkaAsyncAPI: AbstractExampleValidationTest() { Pair("lightingMeasured", Channel.builder() .address("smartylighting.streetlights.1.0.event.{streetlightId}.lighting.measured") - .messages(mapOf(Pair("lightMeasured", Reference("#/components/messages/lightMeasured")))) + .messages(mapOf(Pair("lightMeasured", + Reference("#/components/messages/lightMeasured") + ))) .description("The topic on which measured values may be produced and consumed.") - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .build() ), Pair("lightTurnOn", Channel.builder() .address("smartylighting.streetlights.1.0.action.{streetlightId}.turn.on") - .messages(mapOf(Pair("turnOn", Reference("#/components/messages/turnOnOff")))) - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .messages(mapOf(Pair("turnOn", + Reference("#/components/messages/turnOnOff") + ))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .build() ), Pair("lightTurnOff", Channel.builder() .address("smartylighting.streetlights.1.0.action.{streetlightId}.turn.off") - .messages(mapOf(Pair("turnOff", Reference("#/components/messages/turnOnOff")))) - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .messages(mapOf(Pair("turnOff", + Reference("#/components/messages/turnOnOff") + ))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .build() ), Pair("lightsDim", Channel.builder() .address("smartylighting.streetlights.1.0.action.{streetlightId}.dim") - .messages(mapOf(Pair("dimLight", Reference("#/components/messages/dimLight")))) - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .messages(mapOf(Pair("dimLight", + Reference("#/components/messages/dimLight") + ))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .build() ) ) @@ -275,7 +291,8 @@ class StreetlightsKafkaAsyncAPI: AbstractExampleValidationTest() { .messageTraits(mapOf( Pair("commonHeaders", MessageTrait.builder() - .headers(AsyncAPISchema.builder() + .headers( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("my-app-header", AsyncAPISchema.builder() @@ -295,7 +312,8 @@ class StreetlightsKafkaAsyncAPI: AbstractExampleValidationTest() { OperationTrait.builder() .bindings(mapOf( Pair("kafka", KafkaOperationBinding.builder() - .clientId(AsyncAPISchema.builder() + .clientId( + AsyncAPISchema.builder() .type("string") .enumValue(listOf("my-app-id")) .build() diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/StreetlightsMQTTAsyncAPI.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/StreetlightsMQTTAsyncAPI.kt index 355912e2..18275012 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/StreetlightsMQTTAsyncAPI.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/StreetlightsMQTTAsyncAPI.kt @@ -1,8 +1,8 @@ package com.asyncapi.examples.v3._0_0 -import com.asyncapi.v3.security_scheme.ApiKeySecurityScheme -import com.asyncapi.v3.security_scheme.OpenIdConnectSecurityScheme -import com.asyncapi.v3.Reference +import com.asyncapi.schemas.asyncapi.security.v3.ApiKeySecurityScheme +import com.asyncapi.schemas.asyncapi.security.v3.OpenIdConnectSecurityScheme +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v3._0_0.model.Tag import com.asyncapi.v3._0_0.model.channel.Channel import com.asyncapi.v3._0_0.model.channel.Parameter @@ -16,14 +16,14 @@ import com.asyncapi.v3._0_0.model.operation.OperationAction import com.asyncapi.v3._0_0.model.operation.OperationTrait import com.asyncapi.v3._0_0.model.server.Server import com.asyncapi.v3._0_0.model.server.ServerVariable -import com.asyncapi.v3.binding.operation.mqtt.MQTTOperationBinding -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.security_scheme.oauth2.OAuth2SecurityScheme -import com.asyncapi.v3.security_scheme.oauth2.OAuthFlows -import com.asyncapi.v3.security_scheme.oauth2.flow.AuthorizationCodeOAuthFlow -import com.asyncapi.v3.security_scheme.oauth2.flow.ClientCredentialsOAuthFlow -import com.asyncapi.v3.security_scheme.oauth2.flow.ImplicitOAuthFlow -import com.asyncapi.v3.security_scheme.oauth2.flow.PasswordOAuthFlow +import com.asyncapi.bindings.mqtt.v0._2_0.operation.MQTTOperationBinding +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.security.v3.oauth2.OAuth2SecurityScheme +import com.asyncapi.schemas.asyncapi.security.v3.oauth2.OAuthFlows +import com.asyncapi.schemas.asyncapi.security.v3.oauth2.flow.AuthorizationCodeOAuthFlow +import com.asyncapi.schemas.asyncapi.security.v3.oauth2.flow.ClientCredentialsOAuthFlow +import com.asyncapi.schemas.asyncapi.security.v3.oauth2.flow.ImplicitOAuthFlow +import com.asyncapi.schemas.asyncapi.security.v3.oauth2.flow.PasswordOAuthFlow import java.math.BigDecimal class StreetlightsMQTTAsyncAPI: AbstractExampleValidationTest() { @@ -73,36 +73,72 @@ class StreetlightsMQTTAsyncAPI: AbstractExampleValidationTest() { ImplicitOAuthFlow( "", mapOf( - Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), - Pair("streetlights:dim", "Ability to dim the lights") + Pair( + "streetlights:on", + "Ability to switch lights on" + ), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), + Pair( + "streetlights:dim", + "Ability to dim the lights" + ) ), "https://authserver.example/auth" ), PasswordOAuthFlow( "", mapOf( - Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), - Pair("streetlights:dim", "Ability to dim the lights") + Pair( + "streetlights:on", + "Ability to switch lights on" + ), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), + Pair( + "streetlights:dim", + "Ability to dim the lights" + ) ), "https://authserver.example/token" ), ClientCredentialsOAuthFlow( "", mapOf( - Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), - Pair("streetlights:dim", "Ability to dim the lights") + Pair( + "streetlights:on", + "Ability to switch lights on" + ), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), + Pair( + "streetlights:dim", + "Ability to dim the lights" + ) ), "https://authserver.example/token" ), AuthorizationCodeOAuthFlow( "https://authserver.example/refresh", mapOf( - Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), - Pair("streetlights:dim", "Ability to dim the lights") + Pair( + "streetlights:on", + "Ability to switch lights on" + ), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), + Pair( + "streetlights:dim", + "Ability to dim the lights" + ) ), "https://authserver.example/auth", "https://authserver.example/token" @@ -128,11 +164,15 @@ class StreetlightsMQTTAsyncAPI: AbstractExampleValidationTest() { Channel.builder() .address("smartylighting/streetlights/1/0/event/{streetlightId}/lighting/measured") .messages(mapOf( - Pair("lightMeasured", Reference("#/components/messages/lightMeasured")) + Pair("lightMeasured", + Reference("#/components/messages/lightMeasured") + ) )) .description("The topic on which measured values may be produced and consumed.") .parameters(mapOf( - Pair("streetlightId", Reference("#/components/parameters/streetlightId")) + Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ) )) .build() ), @@ -140,10 +180,14 @@ class StreetlightsMQTTAsyncAPI: AbstractExampleValidationTest() { Channel.builder() .address("smartylighting/streetlights/1/0/action/{streetlightId}/turn/on") .messages(mapOf( - Pair("turnOn", Reference("#/components/messages/turnOnOff")) + Pair("turnOn", + Reference("#/components/messages/turnOnOff") + ) )) .parameters(mapOf( - Pair("streetlightId", Reference("#/components/parameters/streetlightId")) + Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ) )) .build() ), @@ -151,10 +195,14 @@ class StreetlightsMQTTAsyncAPI: AbstractExampleValidationTest() { Channel.builder() .address("smartylighting/streetlights/1/0/action/{streetlightId}/turn/off") .messages(mapOf( - Pair("turnOff", Reference("#/components/messages/turnOnOff")) + Pair("turnOff", + Reference("#/components/messages/turnOnOff") + ) )) .parameters(mapOf( - Pair("streetlightId", Reference("#/components/parameters/streetlightId")) + Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ) )) .build() ), @@ -162,10 +210,14 @@ class StreetlightsMQTTAsyncAPI: AbstractExampleValidationTest() { Channel.builder() .address("smartylighting/streetlights/1/0/action/{streetlightId}/dim") .messages(mapOf( - Pair("dimLight", Reference("#/components/messages/dimLight")) + Pair("dimLight", + Reference("#/components/messages/dimLight") + ) )) .parameters(mapOf( - Pair("streetlightId", Reference("#/components/parameters/streetlightId")) + Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ) )) .build() ) @@ -300,7 +352,10 @@ class StreetlightsMQTTAsyncAPI: AbstractExampleValidationTest() { )) .securitySchemes(mapOf( Pair("apiKey", - ApiKeySecurityScheme("Provide your API key as the user and leave the password empty.", ApiKeySecurityScheme.ApiKeyLocation.USER) + ApiKeySecurityScheme( + "Provide your API key as the user and leave the password empty.", + ApiKeySecurityScheme.ApiKeyLocation.USER + ) ), Pair("supportedOauthFlows", OAuth2SecurityScheme( @@ -310,7 +365,10 @@ class StreetlightsMQTTAsyncAPI: AbstractExampleValidationTest() { "", mapOf( Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), Pair("streetlights:dim", "Ability to dim the lights") ), "https://authserver.example/auth" @@ -319,7 +377,10 @@ class StreetlightsMQTTAsyncAPI: AbstractExampleValidationTest() { "", mapOf( Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), Pair("streetlights:dim", "Ability to dim the lights") ), "https://authserver.example/token" @@ -328,7 +389,10 @@ class StreetlightsMQTTAsyncAPI: AbstractExampleValidationTest() { "", mapOf( Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), Pair("streetlights:dim", "Ability to dim the lights") ), "https://authserver.example/token" @@ -337,7 +401,10 @@ class StreetlightsMQTTAsyncAPI: AbstractExampleValidationTest() { "https://authserver.example/refresh", mapOf( Pair("streetlights:on", "Ability to switch lights on"), - Pair("streetlights:off", "Ability to switch lights off"), + Pair( + "streetlights:off", + "Ability to switch lights off" + ), Pair("streetlights:dim", "Ability to dim the lights") ), "https://authserver.example/auth", @@ -347,7 +414,13 @@ class StreetlightsMQTTAsyncAPI: AbstractExampleValidationTest() { null ) ), - Pair("openIdConnectWellKnown", OpenIdConnectSecurityScheme(null, "https://authserver.example/.well-known", null)) + Pair("openIdConnectWellKnown", + OpenIdConnectSecurityScheme( + null, + "https://authserver.example/.well-known", + null + ) + ) )) .parameters(mapOf( Pair("streetlightId", Parameter.builder().description("The ID of the streetlight.").build()) @@ -355,7 +428,8 @@ class StreetlightsMQTTAsyncAPI: AbstractExampleValidationTest() { .messageTraits(mapOf( Pair("commonHeaders", MessageTrait.builder() - .headers(AsyncAPISchema.builder() + .headers( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("my-app-header", AsyncAPISchema.builder() diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/StreetlightsOperationSecurityAsyncAPI.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/StreetlightsOperationSecurityAsyncAPI.kt index cdd874db..4048a458 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/StreetlightsOperationSecurityAsyncAPI.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/StreetlightsOperationSecurityAsyncAPI.kt @@ -1,6 +1,6 @@ package com.asyncapi.examples.v3._0_0 -import com.asyncapi.v3.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v3._0_0.model.channel.Channel import com.asyncapi.v3._0_0.model.channel.Parameter import com.asyncapi.v3._0_0.model.channel.message.Message @@ -12,12 +12,12 @@ import com.asyncapi.v3._0_0.model.operation.Operation import com.asyncapi.v3._0_0.model.operation.OperationAction import com.asyncapi.v3._0_0.model.operation.OperationTrait import com.asyncapi.v3._0_0.model.server.Server -import com.asyncapi.v3.binding.operation.kafka.KafkaOperationBinding -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.security_scheme.SecurityScheme -import com.asyncapi.v3.security_scheme.oauth2.OAuth2SecurityScheme -import com.asyncapi.v3.security_scheme.oauth2.OAuthFlows -import com.asyncapi.v3.security_scheme.oauth2.flow.ClientCredentialsOAuthFlow +import com.asyncapi.bindings.kafka.v0._5_0.operation.KafkaOperationBinding +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.security.v3.SecurityScheme +import com.asyncapi.schemas.asyncapi.security.v3.oauth2.OAuth2SecurityScheme +import com.asyncapi.schemas.asyncapi.security.v3.oauth2.OAuthFlows +import com.asyncapi.schemas.asyncapi.security.v3.oauth2.flow.ClientCredentialsOAuthFlow import java.math.BigDecimal class StreetlightsOperationSecurityAsyncAPI: AbstractExampleValidationTest() { @@ -57,23 +57,23 @@ class StreetlightsOperationSecurityAsyncAPI: AbstractExampleValidationTest() { .protocol("kafka-secure") .description("Test port for oauth") .security(listOf( - OAuth2SecurityScheme( - "The oauth security descriptions", - OAuthFlows( - null, - null, - ClientCredentialsOAuthFlow( - "", - mapOf( - Pair("streetlights:read", "Scope required for subscribing to channel"), - Pair("streetlights:write", "Scope required for publishing to channel") - ), - "https://example.com/api/oauth/dialog" - ), - null + OAuth2SecurityScheme( + "The oauth security descriptions", + OAuthFlows( + null, + null, + ClientCredentialsOAuthFlow( + "", + mapOf( + Pair("streetlights:read", "Scope required for subscribing to channel"), + Pair("streetlights:write", "Scope required for publishing to channel") ), - listOf("streetlights:write", "streetlights:read") - ) + "https://example.com/api/oauth/dialog" + ), + null + ), + listOf("streetlights:write", "streetlights:read") + ) )) .build() ) @@ -85,57 +85,74 @@ class StreetlightsOperationSecurityAsyncAPI: AbstractExampleValidationTest() { Pair("lightingMeasured", Channel.builder() .address("smartylighting.streetlights.1.0.event.{streetlightId}.lighting.measured") - .messages(mapOf(Pair("lightMeasured", Reference("#/components/messages/lightMeasured")))) + .messages(mapOf(Pair("lightMeasured", + Reference("#/components/messages/lightMeasured") + ))) .description("The topic on which measured values may be produced and consumed.") .servers(listOf(Reference("#/servers/test"))) - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .build() ), Pair("lightTurnOn", Channel.builder() .address("smartylighting.streetlights.1.0.action.{streetlightId}.turn.on") - .messages(mapOf(Pair("turnOn", Reference("#/components/messages/turnOnOff")))) + .messages(mapOf(Pair("turnOn", + Reference("#/components/messages/turnOnOff") + ))) .servers(listOf(Reference("#/servers/test_oauth"))) - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .build() ), Pair("lightTurnOff", Channel.builder() .address("smartylighting.streetlights.1.0.action.{streetlightId}.turn.off") - .messages(mapOf(Pair("turnOff", Reference("#/components/messages/turnOnOff")))) + .messages(mapOf(Pair("turnOff", + Reference("#/components/messages/turnOnOff") + ))) .servers(listOf(Reference("#/servers/test_oauth"))) - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .build() ), Pair("lightsDim", Channel.builder() .address("smartylighting.streetlights.1.0.action.{streetlightId}.dim") - .messages(mapOf(Pair("dimLight", Reference("#/components/messages/dimLight")))) + .messages(mapOf(Pair("dimLight", + Reference("#/components/messages/dimLight") + ))) .servers(listOf(Reference("#/servers/test_oauth"))) - .parameters(mapOf(Pair("streetlightId", Reference("#/components/parameters/streetlightId")))) + .parameters(mapOf(Pair("streetlightId", + Reference("#/components/parameters/streetlightId") + ))) .build() ) ) } override fun expectedOperations(): Map { - val oAuth2SecurityScheme = OAuth2SecurityScheme( + val oAuth2SecurityScheme = + OAuth2SecurityScheme( "The oauth security descriptions", OAuthFlows( - null, - null, - ClientCredentialsOAuthFlow( - "", - mapOf( - Pair("streetlights:read", "Scope required for subscribing to channel"), - Pair("streetlights:write", "Scope required for publishing to channel") - ), - "https://example.com/api/oauth/dialog" + null, + null, + ClientCredentialsOAuthFlow( + "", + mapOf( + Pair("streetlights:read", "Scope required for subscribing to channel"), + Pair("streetlights:write", "Scope required for publishing to channel") ), - null + "https://example.com/api/oauth/dialog" + ), + null ), listOf("streetlights:read") - ) + ) return mapOf( Pair("receiveLightMeasurement", @@ -279,23 +296,23 @@ class StreetlightsOperationSecurityAsyncAPI: AbstractExampleValidationTest() { .build() ), Pair("streetlights_auth", - OAuth2SecurityScheme( - "The oauth security descriptions", - OAuthFlows( - null, - null, - ClientCredentialsOAuthFlow( - "", - mapOf( - Pair("streetlights:read", "Scope required for subscribing to channel"), - Pair("streetlights:write", "Scope required for publishing to channel") - ), - "https://example.com/api/oauth/dialog" - ), - null + OAuth2SecurityScheme( + "The oauth security descriptions", + OAuthFlows( + null, + null, + ClientCredentialsOAuthFlow( + "", + mapOf( + Pair("streetlights:read", "Scope required for subscribing to channel"), + Pair("streetlights:write", "Scope required for publishing to channel") ), - null - ) + "https://example.com/api/oauth/dialog" + ), + null + ), + null + ) ) )) .parameters(mapOf( @@ -304,7 +321,8 @@ class StreetlightsOperationSecurityAsyncAPI: AbstractExampleValidationTest() { .messageTraits(mapOf( Pair("commonHeaders", MessageTrait.builder() - .headers(AsyncAPISchema.builder() + .headers( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair("my-app-header", AsyncAPISchema.builder() @@ -324,7 +342,8 @@ class StreetlightsOperationSecurityAsyncAPI: AbstractExampleValidationTest() { OperationTrait.builder() .bindings(mapOf( Pair("kafka", KafkaOperationBinding.builder() - .clientId(AsyncAPISchema.builder() + .clientId( + AsyncAPISchema.builder() .type("string") .enumValue(listOf("my-app-id")) .build() diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/WebsocketGeminiAsyncAPI.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/WebsocketGeminiAsyncAPI.kt index baa463b7..2de233bd 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/WebsocketGeminiAsyncAPI.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/examples/v3/_0_0/WebsocketGeminiAsyncAPI.kt @@ -1,6 +1,6 @@ package com.asyncapi.examples.v3._0_0 -import com.asyncapi.v3.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v3._0_0.model.ExternalDocumentation import com.asyncapi.v3._0_0.model.channel.Channel import com.asyncapi.v3._0_0.model.channel.Parameter @@ -12,10 +12,8 @@ import com.asyncapi.v3._0_0.model.info.Contact import com.asyncapi.v3._0_0.model.operation.Operation import com.asyncapi.v3._0_0.model.operation.OperationAction import com.asyncapi.v3._0_0.model.server.Server -import com.asyncapi.v3.binding.channel.ws.WebSocketsChannelBinding -import com.asyncapi.v3.schema.AsyncAPISchema -import org.junit.jupiter.api.Assertions -import org.junit.jupiter.api.Test +import com.asyncapi.bindings.websockets.v0._1_0.channel.WebSocketsChannelBinding +import com.asyncapi.schemas.asyncapi.AsyncAPISchema class WebsocketGeminiAsyncAPI: AbstractExampleValidationTest() { @@ -53,7 +51,9 @@ class WebsocketGeminiAsyncAPI: AbstractExampleValidationTest() { .address("/v1/marketdata/{symbol}") .messages( mapOf( - Pair("marketData", Reference("#/components/messages/marketData")) + Pair("marketData", + Reference("#/components/messages/marketData") + ) ) ) .parameters( @@ -360,7 +360,8 @@ class WebsocketGeminiAsyncAPI: AbstractExampleValidationTest() { Pair("events", AsyncAPISchema.builder() .type("array") .description("Either a change to the order book, or the indication that a trade has occurred.") - .items(AsyncAPISchema.builder() + .items( + AsyncAPISchema.builder() .type("object") .additionalProperties(false) .properties(mapOf( diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/ReadJsonPropertiesTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/ReadJsonPropertiesTest.kt new file mode 100644 index 00000000..88ebe927 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/ReadJsonPropertiesTest.kt @@ -0,0 +1,102 @@ +package com.asyncapi.schemas + +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.json.JsonSchema +import com.asyncapi.schemas.json.properties.* +import com.asyncapi.v3.ClasspathUtils +import com.fasterxml.jackson.annotation.JsonInclude +import com.fasterxml.jackson.databind.DeserializationFeature +import com.fasterxml.jackson.databind.ObjectMapper +import org.junit.jupiter.api.* +import org.junit.jupiter.api.extension.ExtensionContext +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.ArgumentsProvider +import org.junit.jupiter.params.provider.ArgumentsSource +import java.math.BigDecimal +import java.util.stream.Stream + +class ReadJsonPropertiesTest { + + private val objectMapper: ObjectMapper = ObjectMapper() + .setSerializationInclusion(JsonInclude.Include.NON_NULL) + + private val bigDecimalObjectMapper: ObjectMapper = ObjectMapper() + .configure(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS, true) + .setSerializationInclusion(JsonInclude.Include.NON_NULL) + + fun compareSchemas(schemaToCompareWith: String, + schemaClass: Class<*>, + schemaProvider: SchemaProvider + ) { + val jsonSchemaString = ClasspathUtils.readAsString(schemaToCompareWith) + val jsonSchema = if (schemaProvider.jsonSchema().defaultValue is BigDecimal) { + bigDecimalObjectMapper.readValue(jsonSchemaString, schemaClass) + } else { + objectMapper.readValue(jsonSchemaString, schemaClass) + } + val schemaToCheck: Any? = when (schemaClass) { + JsonSchema::class.java -> schemaProvider.jsonSchema() + AsyncAPISchema::class.java -> schemaProvider.asyncAPISchema() + else -> null + } + + Assertions.assertEquals(jsonSchema, schemaToCheck) + } + + @Nested + inner class JsonSchemaImplementation { + + @ArgumentsSource(Properties::class) + @ParameterizedTest(name = "Read: {0}") + fun readAnyTypeProperty(constPropertyToRead: String, schemaProvider: SchemaProvider) { + compareSchemas(constPropertyToRead, JsonSchema::class.java, schemaProvider) + } + + } + + @Nested + inner class AsyncAPISchemaImplementation { + + @ArgumentsSource(Properties::class) + @ParameterizedTest(name = "Read: {0}") + fun readAnyTypeProperty(constPropertyToRead: String, schemaProvider: SchemaProvider) { + compareSchemas(constPropertyToRead, AsyncAPISchema::class.java, schemaProvider) + } + + } + + class Properties: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of("/schemas/json/properties/bigdecimal.json", ConstDefaultExamplesBigDecimalTest()), + Arguments.of("/schemas/json/properties/bigdecimal-maximum.json", ConstDefaultExamplesBigDecimalMaximumTest()), + Arguments.of("/schemas/json/properties/bigdecimal-minimum.json", ConstDefaultExamplesBigDecimalMinimumTest()), + + Arguments.of("/schemas/json/properties/biginteger.json", ConstDefaultExamplesBigIntegerTest()), + Arguments.of("/schemas/json/properties/biginteger-maximum.json", ConstDefaultExamplesBigIntegerMaximumTest()), + Arguments.of("/schemas/json/properties/biginteger-minimum.json", ConstDefaultExamplesBigIntegerMinimumTest()), + + Arguments.of("/schemas/json/properties/boolean-false.json", ConstDefaultExamplesBooleanFalseTest()), + Arguments.of("/schemas/json/properties/boolean-true.json", ConstDefaultExamplesBooleanTrueTest()), + + Arguments.of("/schemas/json/properties/double.json", ConstDefaultExamplesDoubleTest()), + Arguments.of("/schemas/json/properties/double-maximum.json", ConstDefaultExamplesDoubleMaximumTest()), + Arguments.of("/schemas/json/properties/double-minimum.json", ConstDefaultExamplesDoubleMinimumTest()), + + Arguments.of("/schemas/json/properties/int.json", ConstDefaultExamplesIntTest()), + Arguments.of("/schemas/json/properties/int-maximum.json", ConstDefaultExamplesIntMaximumTest()), + Arguments.of("/schemas/json/properties/int-minimum.json", ConstDefaultExamplesIntMinimumTest()), + + Arguments.of("/schemas/json/properties/null.json", ConstDefaultExamplesNullTest()), + + Arguments.of("/schemas/json/properties/object.json", ConstDefaultExamplesObjectTest()), + + Arguments.of("/schemas/json/properties/array.json", ConstDefaultExamplesArrayTest()), + ) + } + + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/ReadJsonSchemaTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/ReadJsonSchemaTest.kt new file mode 100644 index 00000000..6673df64 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/ReadJsonSchemaTest.kt @@ -0,0 +1,74 @@ +package com.asyncapi.schemas + +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.json.* +import com.asyncapi.v3.ClasspathUtils +import com.fasterxml.jackson.annotation.JsonInclude +import com.fasterxml.jackson.databind.ObjectMapper +import org.junit.jupiter.api.* +import org.junit.jupiter.api.extension.ExtensionContext +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.ArgumentsProvider +import org.junit.jupiter.params.provider.ArgumentsSource +import java.util.stream.Stream + +class ReadJsonSchemaTest { + + private val objectMapper: ObjectMapper = ObjectMapper() + .setSerializationInclusion(JsonInclude.Include.NON_NULL) + + fun compareSchemas(schemaToCompareWith: String, + schemaClass: Class<*>, + schemaProvider: SchemaProvider + ) { + val jsonSchemaString = ClasspathUtils.readAsString(schemaToCompareWith) + val jsonSchema = objectMapper.readValue(jsonSchemaString, schemaClass) + val schemaToCheck: Any? = when (schemaClass) { + JsonSchema::class.java -> schemaProvider.jsonSchema() + AsyncAPISchema::class.java -> schemaProvider.asyncAPISchema() + else -> null + } + + Assertions.assertEquals(jsonSchema, schemaToCheck) + } + + @Nested + inner class JsonSchemaImplementation { + + @ArgumentsSource(JsonSchemas::class) + @ParameterizedTest(name = "Read: {0}") + fun readJsonSchema(schemaToCompareWith: String, schemaProvider: SchemaProvider) { + compareSchemas(schemaToCompareWith, JsonSchema::class.java, schemaProvider) + } + + } + + @Nested + inner class AsyncAPISchemaImplementation { + + @ArgumentsSource(JsonSchemas::class) + @ParameterizedTest(name = "Read: {0}") + fun readJsonSchema(schemaToCompareWith: String, schemaProvider: SchemaProvider) { + compareSchemas(schemaToCompareWith, AsyncAPISchema::class.java, schemaProvider) + } + + } + + class JsonSchemas: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of("/schemas/json/arrays.schema.json", ArraysSchemaTest()), + Arguments.of("/schemas/json/complex-object.schema.json", ComplexObjectTest()), + Arguments.of("/schemas/json/conditional-validation-if-else.schema.json", ConditionalValidationIfElse()), + Arguments.of("/schemas/json/draft-07-core-schema-meta-schema.json", Draft07CoreSchemaMetaSchemaTest()), + Arguments.of("/schemas/json/enumerated-values.schema.json", EnumeratedValuesTest()), + Arguments.of("/schemas/json/person.schema.json", PersonTest()), + Arguments.of("/schemas/json/regex-pattern.schema.json", RegexPatternTest()) + ) + } + + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/SchemaProvider.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/SchemaProvider.kt new file mode 100644 index 00000000..e0ec1462 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/SchemaProvider.kt @@ -0,0 +1,35 @@ +package com.asyncapi.schemas + +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.json.JsonSchema +import com.asyncapi.schemas.asyncapi.multiformat.AsyncAPIFormatSchema +import com.asyncapi.schemas.asyncapi.multiformat.JsonFormatSchema +import com.asyncapi.schemas.openapi.v3._0_0.OpenAPISchema + +interface SchemaProvider { + + fun jsonSchema(): JsonSchema = + JsonSchema() + + fun jsonFormatSchemaJson(): JsonFormatSchema = + JsonFormatSchema(jsonSchema()) + + fun jsonFormatSchemaYaml(): JsonFormatSchema = + JsonFormatSchema( + "application/schema+yaml;version=draft-07", + jsonSchema() + ) + + fun asyncAPISchema(): AsyncAPISchema = + AsyncAPISchema() + + fun asyncAPIFormatSchemaEmptySchemaFormat(): AsyncAPIFormatSchema = + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + asyncAPISchema() + ) + + fun openAPISchema(): OpenAPISchema = + OpenAPISchema() + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/avro/AvroSchemasProvider.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/avro/AvroSchemasProvider.kt similarity index 94% rename from asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/avro/AvroSchemasProvider.kt rename to asyncapi-core/src/test/kotlin/com/asyncapi/schemas/avro/AvroSchemasProvider.kt index 6e708296..28153217 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/avro/AvroSchemasProvider.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/avro/AvroSchemasProvider.kt @@ -1,8 +1,6 @@ -package com.asyncapi.v3.schema.avro +package com.asyncapi.schemas.avro -import com.asyncapi.v3.schema.avro.v1._9_0.* -import com.asyncapi.v3.schema.avro.v1._9_0.AvroSchemaLogicalType -import com.asyncapi.v3.schema.avro.v1._9_0.AvroSchemaType +import com.asyncapi.schemas.avro.v1._9_0.* class AvroSchemasProvider { @@ -112,7 +110,8 @@ class AvroSchemasProvider { .name("s") .type( AvroSchemaUnion( - AvroSchemaType.NULL, AvroSchemaType.STRING + AvroSchemaType.NULL, + AvroSchemaType.STRING ) ) .build(), @@ -120,7 +119,8 @@ class AvroSchemasProvider { .name("h") .type( AvroSchemaUnion( - AvroSchemaType.NULL, AvroSchemaType.STRING + AvroSchemaType.NULL, + AvroSchemaType.STRING ) ) .build() @@ -154,7 +154,8 @@ class AvroSchemasProvider { .name("f32") .type( AvroSchemaUnion( - AvroSchemaType.FLOAT, AvroSchemaType.NULL + AvroSchemaType.FLOAT, + AvroSchemaType.NULL ) ) .build(), @@ -205,7 +206,8 @@ class AvroSchemasProvider { .name("requestId") .type( AvroSchemaUnion( - AvroSchemaType.NULL, AvroSchemaType.STRING + AvroSchemaType.NULL, + AvroSchemaType.STRING ) ) .build() @@ -239,7 +241,8 @@ class AvroSchemasProvider { .name("requestId") .type( AvroSchemaUnion( - AvroSchemaType.NULL, AvroSchemaType.STRING + AvroSchemaType.NULL, + AvroSchemaType.STRING ) ) .build() @@ -272,7 +275,8 @@ class AvroSchemasProvider { .name("s") .type( AvroSchemaUnion( - AvroSchemaType.NULL, AvroSchemaType.STRING + AvroSchemaType.NULL, + AvroSchemaType.STRING ) ) .defaultValue(null) @@ -281,7 +285,8 @@ class AvroSchemasProvider { .name("e") .type( AvroSchemaUnion( - AvroSchemaType.NULL, AvroSchemaRecord.builder() + AvroSchemaType.NULL, + AvroSchemaRecord.builder() .type(AvroSchemaType.ERROR) .name("TestError") .fields( @@ -329,7 +334,8 @@ class AvroSchemasProvider { .name("location") .type( AvroSchemaUnion( - AvroSchemaType.NULL, AvroSchemaMap.builder() + AvroSchemaType.NULL, + AvroSchemaMap.builder() .values( AvroSchemaUnion( AvroSchemaType.NULL, @@ -344,7 +350,12 @@ class AvroSchemasProvider { .build(), AvroSchemaRecordField.builder() .name("long_r2") - .type(AvroSchemaUnion(AvroSchemaType.NULL, AvroSchemaType.FLOAT)) + .type( + AvroSchemaUnion( + AvroSchemaType.NULL, + AvroSchemaType.FLOAT + ) + ) .defaultValue(null) .metadata(mapOf(Pair("field-id", 2))) .build() @@ -377,7 +388,8 @@ class AvroSchemasProvider { .name("location") .type( AvroSchemaUnion( - AvroSchemaType.NULL, AvroSchemaMap.builder() + AvroSchemaType.NULL, + AvroSchemaMap.builder() .values( AvroSchemaUnion( AvroSchemaType.NULL, @@ -392,7 +404,12 @@ class AvroSchemasProvider { .build(), AvroSchemaRecordField.builder() .name("long") - .type(AvroSchemaUnion(AvroSchemaType.NULL, AvroSchemaType.FLOAT)) + .type( + AvroSchemaUnion( + AvroSchemaType.NULL, + AvroSchemaType.FLOAT + ) + ) .defaultValue(null) .metadata(mapOf(Pair("field-id", 2))) .build() @@ -612,7 +629,8 @@ class AvroSchemasProvider { .name("optionalRecord") .type( AvroSchemaUnion( - AvroSchemaType.NULL, AvroSchemaRecord.builder() + AvroSchemaType.NULL, + AvroSchemaRecord.builder() .name("nestedOptionalRecord") .fields( listOf( @@ -659,7 +677,8 @@ class AvroSchemasProvider { .name("optionalEnum") .type( AvroSchemaUnion( - AvroSchemaType.NULL, AvroSchemaEnum.builder() + AvroSchemaType.NULL, + AvroSchemaEnum.builder() .name("optionalEnum") .symbols(listOf("a", "b")) .build() @@ -692,7 +711,8 @@ class AvroSchemasProvider { .name("optionalArray") .type( AvroSchemaUnion( - AvroSchemaType.NULL, AvroSchemaArray.builder() + AvroSchemaType.NULL, + AvroSchemaArray.builder() .items(AvroSchemaType.STRING) .build() ) @@ -722,7 +742,8 @@ class AvroSchemasProvider { .name("optionalMap") .type( AvroSchemaUnion( - AvroSchemaType.NULL, AvroSchemaMap.builder() + AvroSchemaType.NULL, + AvroSchemaMap.builder() .values(AvroSchemaType.STRING) .build() ) @@ -753,7 +774,8 @@ class AvroSchemasProvider { .name("optionalFixed") .type( AvroSchemaUnion( - AvroSchemaType.NULL, AvroSchemaFixed.builder() + AvroSchemaType.NULL, + AvroSchemaFixed.builder() .name("optionalFixed") .size(1) .build() @@ -1045,7 +1067,8 @@ class AvroSchemasProvider { .name("l") .type( AvroSchemaUnion( - AvroSchemaType.STRING, AvroSchema.builder() + AvroSchemaType.STRING, + AvroSchema.builder() .type(AvroSchemaType.LONG) .logicalType(AvroSchemaLogicalType.TIMESTAMP_MILLIS) .build() diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/avro/AvroTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/avro/AvroTest.kt new file mode 100644 index 00000000..3dc9a5b0 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/avro/AvroTest.kt @@ -0,0 +1,67 @@ +package com.asyncapi.schemas.avro + +import com.asyncapi.v3.ClasspathUtils +import com.asyncapi.schemas.avro.v1._9_0.AvroSchema +import com.asyncapi.schemas.avro.v1._9_0.AvroSchemaUnion +import com.fasterxml.jackson.annotation.JsonInclude +import com.fasterxml.jackson.databind.ObjectMapper +import com.fasterxml.jackson.dataformat.yaml.YAMLFactory +import org.junit.jupiter.api.Assertions +import org.junit.jupiter.api.extension.ExtensionContext +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.ArgumentsProvider +import org.junit.jupiter.params.provider.ArgumentsSource +import java.util.stream.Stream + +class AvroSchemaSchemaTest { + + fun compareSchemas( + schemaToCheckPath: String, + clazz: Class<*>, + schemaToCheck: Any + ) { + val schemaAsJson = ClasspathUtils.readAsString(schemaToCheckPath) + val schema = objectMapper.readValue(schemaAsJson, clazz) + + Assertions.assertEquals(schema, schemaToCheck) + } + + private val objectMapper: ObjectMapper = ObjectMapper(YAMLFactory()) + .setSerializationInclusion(JsonInclude.Include.NON_NULL) + .findAndRegisterModules() + + @ArgumentsSource(AvroSchemas::class) + @ParameterizedTest(name = "Read: {0}") + fun read(schemaToCheckPath: String, clazz: Class<*>, avroSchema: Any) { + compareSchemas(schemaToCheckPath, clazz, avroSchema) + } + + class AvroSchemas: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of("/schemas/avro/ApplicationEvent.avsc", AvroSchema::class.java, AvroSchemasProvider().applicationEventTest()), + Arguments.of("/schemas/avro/DocumentInfo.avsc", AvroSchema::class.java, AvroSchemasProvider().documentInfo()), + Arguments.of("/schemas/avro/foo.Bar.avsc", AvroSchema::class.java, AvroSchemasProvider().fooBar()), + Arguments.of("/schemas/avro/full_record_v1.avsc", AvroSchema::class.java, AvroSchemasProvider().fullRecordV1()), + Arguments.of("/schemas/avro/full_record_v2.avsc", AvroSchema::class.java, AvroSchemasProvider().fullRecordV2()), + Arguments.of("/schemas/avro/logical-uuid.avsc", AvroSchema::class.java, AvroSchemasProvider().logicalUUID()), + Arguments.of("/schemas/avro/logical_types_with_multiple_fields.avsc", AvroSchema::class.java, AvroSchemasProvider().logicalTypesWithMultipleFields()), + Arguments.of("/schemas/avro/MyResponse.avsc", AvroSchema::class.java, AvroSchemasProvider().myResponse()), + Arguments.of("/schemas/avro/regression_error_field_in_record.avsc", AvroSchema::class.java, AvroSchemasProvider().regressionErrorFieldInRecord()), + Arguments.of("/schemas/avro/schema-location.json", AvroSchema::class.java, AvroSchemasProvider().schemaLocation()), + Arguments.of("/schemas/avro/schema-location-read.json", AvroSchema::class.java, AvroSchemasProvider().schemaLocationRead()), + Arguments.of("/schemas/avro/schema-location-write.json", AvroSchema::class.java, AvroSchemasProvider().schemaLocationWrite()), + Arguments.of("/schemas/avro/SchemaBuilder.avsc", AvroSchema::class.java, AvroSchemasProvider().schemaBuilder()), + Arguments.of("/schemas/avro/simple_record.avsc", AvroSchema::class.java, AvroSchemasProvider().simpleRecord()), + Arguments.of("/schemas/avro/TestRecordWithLogicalTypes.avsc", AvroSchema::class.java, AvroSchemasProvider().testRecordWithLogicalTypes()), + Arguments.of("/schemas/avro/TestRecordWithMapsAndArrays.avsc", AvroSchema::class.java, AvroSchemasProvider().testRecordWithMapsAndArrays()), + Arguments.of("/schemas/avro/TestUnionRecord.avsc", AvroSchemaUnion::class.java, AvroSchemasProvider().testUnionRecord()), + Arguments.of("/schemas/avro/union_and_fixed_fields.avsc", AvroSchema::class.java, AvroSchemasProvider().unionAndFixedFields()), + ) + } + + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/ArraysSchemaTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/ArraysSchemaTest.kt similarity index 96% rename from asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/ArraysSchemaTest.kt rename to asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/ArraysSchemaTest.kt index f2becc41..42158c79 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/ArraysSchemaTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/ArraysSchemaTest.kt @@ -1,8 +1,7 @@ -package com.asyncapi.v3.schema.json +package com.asyncapi.schemas.json -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.JsonSchema -import com.asyncapi.v3.schema.SchemaProvider +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.SchemaProvider class ArraysSchemaTest: SchemaProvider { diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/ComplexObjectTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/ComplexObjectTest.kt similarity index 96% rename from asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/ComplexObjectTest.kt rename to asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/ComplexObjectTest.kt index cfe8b7ac..2231ba88 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/ComplexObjectTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/ComplexObjectTest.kt @@ -1,8 +1,7 @@ -package com.asyncapi.v3.schema.json +package com.asyncapi.schemas.json -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.JsonSchema -import com.asyncapi.v3.schema.SchemaProvider +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.SchemaProvider import java.math.BigDecimal class ComplexObjectTest: SchemaProvider { diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/ConditionalValidationIfElse.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/ConditionalValidationIfElse.kt similarity index 88% rename from asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/ConditionalValidationIfElse.kt rename to asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/ConditionalValidationIfElse.kt index c4e423bf..6459174b 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/ConditionalValidationIfElse.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/ConditionalValidationIfElse.kt @@ -1,8 +1,7 @@ -package com.asyncapi.v3.schema.json +package com.asyncapi.schemas.json -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.JsonSchema -import com.asyncapi.v3.schema.SchemaProvider +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.SchemaProvider class ConditionalValidationIfElse: SchemaProvider { @@ -23,7 +22,8 @@ class ConditionalValidationIfElse: SchemaProvider { ) )) .required(listOf("isMember")) - .ifValue(JsonSchema.builder() + .ifValue( + JsonSchema.builder() .properties(mapOf( Pair("isMember", JsonSchema.builder() .constValue(true) @@ -32,7 +32,8 @@ class ConditionalValidationIfElse: SchemaProvider { )) .build() ) - .thenValue(JsonSchema.builder() + .thenValue( + JsonSchema.builder() .properties(mapOf( Pair("membershipNumber", JsonSchema.builder() .type("string") @@ -43,7 +44,8 @@ class ConditionalValidationIfElse: SchemaProvider { )) .build() ) - .elseValue(JsonSchema.builder() + .elseValue( + JsonSchema.builder() .properties(mapOf( Pair("membershipNumber", JsonSchema.builder() .type("string") @@ -73,7 +75,8 @@ class ConditionalValidationIfElse: SchemaProvider { ) )) .required(listOf("isMember")) - .ifValue(AsyncAPISchema.builder() + .ifValue( + AsyncAPISchema.builder() .properties(mapOf( Pair("isMember", AsyncAPISchema.builder() .constValue(true) @@ -82,7 +85,8 @@ class ConditionalValidationIfElse: SchemaProvider { )) .build() ) - .thenValue(AsyncAPISchema.builder() + .thenValue( + AsyncAPISchema.builder() .properties(mapOf( Pair("membershipNumber", AsyncAPISchema.builder() .type("string") @@ -93,7 +97,8 @@ class ConditionalValidationIfElse: SchemaProvider { )) .build() ) - .elseValue(AsyncAPISchema.builder() + .elseValue( + AsyncAPISchema.builder() .properties(mapOf( Pair("membershipNumber", AsyncAPISchema.builder() .type("string") diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/Draft07CoreSchemaMetaSchemaTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/Draft07CoreSchemaMetaSchemaTest.kt similarity index 98% rename from asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/Draft07CoreSchemaMetaSchemaTest.kt rename to asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/Draft07CoreSchemaMetaSchemaTest.kt index 9906c4d3..c38bb631 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/Draft07CoreSchemaMetaSchemaTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/Draft07CoreSchemaMetaSchemaTest.kt @@ -1,8 +1,7 @@ -package com.asyncapi.v3.schema.json +package com.asyncapi.schemas.json -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.JsonSchema -import com.asyncapi.v3.schema.SchemaProvider +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.SchemaProvider import java.math.BigDecimal class Draft07CoreSchemaMetaSchemaTest: SchemaProvider { @@ -196,7 +195,8 @@ class Draft07CoreSchemaMetaSchemaTest: SchemaProvider { ), Pair("dependencies", JsonSchema.builder() .type("object") - .additionalProperties(JsonSchema.builder().anyOf(listOf( + .additionalProperties( + JsonSchema.builder().anyOf(listOf( JsonSchema.builder().ref("#").build(), JsonSchema.builder().ref("#/definitions/stringArray").build(), )).build()) @@ -457,7 +457,8 @@ class Draft07CoreSchemaMetaSchemaTest: SchemaProvider { ), Pair("dependencies", AsyncAPISchema.builder() .type("object") - .additionalProperties(AsyncAPISchema.builder().anyOf(listOf( + .additionalProperties( + AsyncAPISchema.builder().anyOf(listOf( AsyncAPISchema.builder().ref("#").build(), AsyncAPISchema.builder().ref("#/definitions/stringArray").build(), )).build()) diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/EnumeratedValuesTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/EnumeratedValuesTest.kt similarity index 89% rename from asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/EnumeratedValuesTest.kt rename to asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/EnumeratedValuesTest.kt index f9af8303..dd03670f 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/EnumeratedValuesTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/EnumeratedValuesTest.kt @@ -1,8 +1,7 @@ -package com.asyncapi.v3.schema.json +package com.asyncapi.schemas.json -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.JsonSchema -import com.asyncapi.v3.schema.SchemaProvider +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.SchemaProvider class EnumeratedValuesTest: SchemaProvider { diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/PersonTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/PersonTest.kt similarity index 93% rename from asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/PersonTest.kt rename to asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/PersonTest.kt index 63f25de1..1568e08b 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/PersonTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/PersonTest.kt @@ -1,8 +1,7 @@ -package com.asyncapi.v3.schema.json +package com.asyncapi.schemas.json -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.JsonSchema -import com.asyncapi.v3.schema.SchemaProvider +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.SchemaProvider import java.math.BigDecimal class PersonTest: SchemaProvider { diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/RegexPatternTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/RegexPatternTest.kt similarity index 88% rename from asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/RegexPatternTest.kt rename to asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/RegexPatternTest.kt index 4334d690..2225c88e 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/RegexPatternTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/RegexPatternTest.kt @@ -1,8 +1,7 @@ -package com.asyncapi.v3.schema.json +package com.asyncapi.schemas.json -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.JsonSchema -import com.asyncapi.v3.schema.SchemaProvider +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.SchemaProvider class RegexPatternTest: SchemaProvider { diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesArrayTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesArrayTest.kt similarity index 94% rename from asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesArrayTest.kt rename to asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesArrayTest.kt index 064164bc..3753a172 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesArrayTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesArrayTest.kt @@ -1,8 +1,8 @@ -package com.asyncapi.v3.schema.json.properties +package com.asyncapi.schemas.json.properties -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.JsonSchema -import com.asyncapi.v3.schema.SchemaProvider +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.json.JsonSchema +import com.asyncapi.schemas.SchemaProvider class ConstDefaultExamplesArrayTest: SchemaProvider { diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesBigDecimalMaximumTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesBigDecimalMaximumTest.kt similarity index 78% rename from asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesBigDecimalMaximumTest.kt rename to asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesBigDecimalMaximumTest.kt index cb6af518..521c6e34 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesBigDecimalMaximumTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesBigDecimalMaximumTest.kt @@ -1,8 +1,8 @@ -package com.asyncapi.v3.schema.json.properties +package com.asyncapi.schemas.json.properties -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.JsonSchema -import com.asyncapi.v3.schema.SchemaProvider +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.json.JsonSchema +import com.asyncapi.schemas.SchemaProvider import java.math.BigDecimal class ConstDefaultExamplesBigDecimalMaximumTest: SchemaProvider { diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesBigDecimalMinimumTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesBigDecimalMinimumTest.kt similarity index 79% rename from asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesBigDecimalMinimumTest.kt rename to asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesBigDecimalMinimumTest.kt index 5a7c7446..03f30ae6 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesBigDecimalMinimumTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesBigDecimalMinimumTest.kt @@ -1,8 +1,8 @@ -package com.asyncapi.v3.schema.json.properties +package com.asyncapi.schemas.json.properties -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.JsonSchema -import com.asyncapi.v3.schema.SchemaProvider +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.json.JsonSchema +import com.asyncapi.schemas.SchemaProvider import java.math.BigDecimal class ConstDefaultExamplesBigDecimalMinimumTest: SchemaProvider { diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesBigDecimalTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesBigDecimalTest.kt similarity index 78% rename from asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesBigDecimalTest.kt rename to asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesBigDecimalTest.kt index e3ce747c..765ee71d 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesBigDecimalTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesBigDecimalTest.kt @@ -1,8 +1,8 @@ -package com.asyncapi.v3.schema.json.properties +package com.asyncapi.schemas.json.properties -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.JsonSchema -import com.asyncapi.v3.schema.SchemaProvider +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.json.JsonSchema +import com.asyncapi.schemas.SchemaProvider import java.math.BigDecimal class ConstDefaultExamplesBigDecimalTest: SchemaProvider { diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesBigIntegerMaximumTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesBigIntegerMaximumTest.kt similarity index 77% rename from asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesBigIntegerMaximumTest.kt rename to asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesBigIntegerMaximumTest.kt index deeebe36..300ec870 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesBigIntegerMaximumTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesBigIntegerMaximumTest.kt @@ -1,8 +1,8 @@ -package com.asyncapi.v3.schema.json.properties +package com.asyncapi.schemas.json.properties -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.JsonSchema -import com.asyncapi.v3.schema.SchemaProvider +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.json.JsonSchema +import com.asyncapi.schemas.SchemaProvider import java.math.BigInteger class ConstDefaultExamplesBigIntegerMaximumTest: SchemaProvider { diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesBigIntegerMinimumTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesBigIntegerMinimumTest.kt similarity index 77% rename from asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesBigIntegerMinimumTest.kt rename to asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesBigIntegerMinimumTest.kt index dcffc9bd..c1743534 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesBigIntegerMinimumTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesBigIntegerMinimumTest.kt @@ -1,8 +1,8 @@ -package com.asyncapi.v3.schema.json.properties +package com.asyncapi.schemas.json.properties -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.JsonSchema -import com.asyncapi.v3.schema.SchemaProvider +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.json.JsonSchema +import com.asyncapi.schemas.SchemaProvider import java.math.BigInteger class ConstDefaultExamplesBigIntegerMinimumTest: SchemaProvider { diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesBigIntegerTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesBigIntegerTest.kt similarity index 76% rename from asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesBigIntegerTest.kt rename to asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesBigIntegerTest.kt index 2ca5695b..fe2321f5 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesBigIntegerTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesBigIntegerTest.kt @@ -1,8 +1,8 @@ -package com.asyncapi.v3.schema.json.properties +package com.asyncapi.schemas.json.properties -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.JsonSchema -import com.asyncapi.v3.schema.SchemaProvider +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.json.JsonSchema +import com.asyncapi.schemas.SchemaProvider import java.math.BigInteger class ConstDefaultExamplesBigIntegerTest: SchemaProvider { diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesBooleanFalseTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesBooleanFalseTest.kt similarity index 75% rename from asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesBooleanFalseTest.kt rename to asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesBooleanFalseTest.kt index 099ee50d..48e7dec3 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesBooleanFalseTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesBooleanFalseTest.kt @@ -1,8 +1,8 @@ -package com.asyncapi.v3.schema.json.properties +package com.asyncapi.schemas.json.properties -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.JsonSchema -import com.asyncapi.v3.schema.SchemaProvider +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.json.JsonSchema +import com.asyncapi.schemas.SchemaProvider class ConstDefaultExamplesBooleanFalseTest: SchemaProvider { diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesBooleanTrueTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesBooleanTrueTest.kt similarity index 75% rename from asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesBooleanTrueTest.kt rename to asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesBooleanTrueTest.kt index bdd98dc2..16f4b189 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesBooleanTrueTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesBooleanTrueTest.kt @@ -1,8 +1,8 @@ -package com.asyncapi.v3.schema.json.properties +package com.asyncapi.schemas.json.properties -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.JsonSchema -import com.asyncapi.v3.schema.SchemaProvider +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.json.JsonSchema +import com.asyncapi.schemas.SchemaProvider class ConstDefaultExamplesBooleanTrueTest: SchemaProvider { diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesDoubleMaximumTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesDoubleMaximumTest.kt similarity index 76% rename from asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesDoubleMaximumTest.kt rename to asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesDoubleMaximumTest.kt index 7968adbd..9b96159c 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesDoubleMaximumTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesDoubleMaximumTest.kt @@ -1,8 +1,8 @@ -package com.asyncapi.v3.schema.json.properties +package com.asyncapi.schemas.json.properties -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.JsonSchema -import com.asyncapi.v3.schema.SchemaProvider +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.json.JsonSchema +import com.asyncapi.schemas.SchemaProvider class ConstDefaultExamplesDoubleMaximumTest: SchemaProvider { diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesDoubleMinimumTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesDoubleMinimumTest.kt similarity index 75% rename from asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesDoubleMinimumTest.kt rename to asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesDoubleMinimumTest.kt index e4d0420e..595075ab 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesDoubleMinimumTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesDoubleMinimumTest.kt @@ -1,8 +1,8 @@ -package com.asyncapi.v3.schema.json.properties +package com.asyncapi.schemas.json.properties -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.JsonSchema -import com.asyncapi.v3.schema.SchemaProvider +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.json.JsonSchema +import com.asyncapi.schemas.SchemaProvider class ConstDefaultExamplesDoubleMinimumTest: SchemaProvider { diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesDoubleTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesDoubleTest.kt similarity index 75% rename from asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesDoubleTest.kt rename to asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesDoubleTest.kt index 1c887d63..7b79e7ef 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesDoubleTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesDoubleTest.kt @@ -1,8 +1,8 @@ -package com.asyncapi.v3.schema.json.properties +package com.asyncapi.schemas.json.properties -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.JsonSchema -import com.asyncapi.v3.schema.SchemaProvider +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.json.JsonSchema +import com.asyncapi.schemas.SchemaProvider class ConstDefaultExamplesDoubleTest: SchemaProvider { diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesIntMaximumTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesIntMaximumTest.kt similarity index 75% rename from asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesIntMaximumTest.kt rename to asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesIntMaximumTest.kt index 02d07659..c8946a31 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesIntMaximumTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesIntMaximumTest.kt @@ -1,8 +1,8 @@ -package com.asyncapi.v3.schema.json.properties +package com.asyncapi.schemas.json.properties -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.JsonSchema -import com.asyncapi.v3.schema.SchemaProvider +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.json.JsonSchema +import com.asyncapi.schemas.SchemaProvider class ConstDefaultExamplesIntMaximumTest: SchemaProvider { diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesIntMinimumTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesIntMinimumTest.kt similarity index 75% rename from asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesIntMinimumTest.kt rename to asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesIntMinimumTest.kt index e3cfeea5..09f99541 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesIntMinimumTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesIntMinimumTest.kt @@ -1,8 +1,8 @@ -package com.asyncapi.v3.schema.json.properties +package com.asyncapi.schemas.json.properties -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.JsonSchema -import com.asyncapi.v3.schema.SchemaProvider +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.json.JsonSchema +import com.asyncapi.schemas.SchemaProvider class ConstDefaultExamplesIntMinimumTest: SchemaProvider { diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesIntTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesIntTest.kt new file mode 100644 index 00000000..5d0c3299 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesIntTest.kt @@ -0,0 +1,28 @@ +package com.asyncapi.schemas.json.properties + +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.json.JsonSchema +import com.asyncapi.schemas.SchemaProvider + +class ConstDefaultExamplesIntTest: SchemaProvider { + + private val value: Int = 0 + + + override fun jsonSchema(): JsonSchema { + return JsonSchema.builder() + .constValue(value) + .defaultValue(value) + .examples(listOf(value)) + .build() + } + + override fun asyncAPISchema(): AsyncAPISchema { + return AsyncAPISchema.builder() + .constValue(value) + .defaultValue(value) + .examples(listOf(value)) + .build() + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesNullTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesNullTest.kt new file mode 100644 index 00000000..a14b9e25 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesNullTest.kt @@ -0,0 +1,27 @@ +package com.asyncapi.schemas.json.properties + +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.json.JsonSchema +import com.asyncapi.schemas.SchemaProvider + +class ConstDefaultExamplesNullTest: SchemaProvider { + + private val value = null + + override fun jsonSchema(): JsonSchema { + return JsonSchema.builder() + .constValue(value) + .defaultValue(value) + .examples(listOf(value)) + .build() + } + + override fun asyncAPISchema(): AsyncAPISchema { + return AsyncAPISchema.builder() + .constValue(value) + .defaultValue(value) + .examples(listOf(value)) + .build() + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesObjectTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesObjectTest.kt similarity index 81% rename from asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesObjectTest.kt rename to asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesObjectTest.kt index 56e24799..8c2239d6 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesObjectTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/json/properties/ConstDefaultExamplesObjectTest.kt @@ -1,8 +1,8 @@ -package com.asyncapi.v3.schema.json.properties +package com.asyncapi.schemas.json.properties -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.JsonSchema -import com.asyncapi.v3.schema.SchemaProvider +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.json.JsonSchema +import com.asyncapi.schemas.SchemaProvider class ConstDefaultExamplesObjectTest: SchemaProvider { diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/MultiFormatSchemaTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/MultiFormatSchemaTest.kt similarity index 85% rename from asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/MultiFormatSchemaTest.kt rename to asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/MultiFormatSchemaTest.kt index 5f4132bd..9280f8aa 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/MultiFormatSchemaTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/MultiFormatSchemaTest.kt @@ -1,12 +1,12 @@ -package com.asyncapi.v3.schema.multiformat - -import com.asyncapi.v3.schema.multiformat.asyncapi.* -import com.asyncapi.v3.schema.multiformat.avro.* -import com.asyncapi.v3.schema.multiformat.json.JsonFormatSchemaTest -import com.asyncapi.v3.schema.multiformat.openapi.OpenAPIFormatSchemaV3_0_0Test -import com.asyncapi.v3.schema.multiformat.openapi.OpenAPIFormatSchemaV3_0_1Test -import com.asyncapi.v3.schema.multiformat.openapi.OpenAPIFormatSchemaV3_0_2Test -import com.asyncapi.v3.schema.multiformat.openapi.OpenAPIFormatSchemaV3_0_3Test +package com.asyncapi.schemas.multiformat + +import com.asyncapi.schemas.multiformat.asyncapi.* +import com.asyncapi.schemas.multiformat.avro.* +import com.asyncapi.schemas.multiformat.json.JsonFormatSchemaTest +import com.asyncapi.schemas.multiformat.openapi.OpenAPIFormatSchemaV3_0_0Test +import com.asyncapi.schemas.multiformat.openapi.OpenAPIFormatSchemaV3_0_1Test +import com.asyncapi.schemas.multiformat.openapi.OpenAPIFormatSchemaV3_0_2Test +import com.asyncapi.schemas.multiformat.openapi.OpenAPIFormatSchemaV3_0_3Test import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Nested diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/AsyncAPIFormatSchemaTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/AsyncAPIFormatSchemaTest.kt similarity index 90% rename from asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/AsyncAPIFormatSchemaTest.kt rename to asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/AsyncAPIFormatSchemaTest.kt index e076b795..391d69d2 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/AsyncAPIFormatSchemaTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/AsyncAPIFormatSchemaTest.kt @@ -1,7 +1,7 @@ -package com.asyncapi.v3.schema.multiformat.asyncapi +package com.asyncapi.schemas.multiformat.asyncapi import com.asyncapi.v3.ClasspathUtils -import com.asyncapi.v3.schema.multiformat.AsyncAPIFormatSchema +import com.asyncapi.schemas.asyncapi.multiformat.AsyncAPIFormatSchema import com.fasterxml.jackson.annotation.JsonInclude import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.dataformat.yaml.YAMLFactory diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/AsyncAPIFormatSchemaV2_0_0Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/AsyncAPIFormatSchemaV2_0_0Test.kt new file mode 100644 index 00000000..59a06190 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/AsyncAPIFormatSchemaV2_0_0Test.kt @@ -0,0 +1,248 @@ +package com.asyncapi.schemas.multiformat.asyncapi + +import com.asyncapi.schemas.json.* +import com.asyncapi.schemas.asyncapi.multiformat.AsyncAPIFormatSchema +import org.junit.jupiter.api.extension.ExtensionContext +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.ArgumentsProvider +import org.junit.jupiter.params.provider.ArgumentsSource +import java.util.stream.Stream + +abstract class AsyncAPIFormatSchemaV2_0_0Test: com.asyncapi.schemas.multiformat.asyncapi.AsyncAPIFormatSchemaTest() { + + @ArgumentsSource(com.asyncapi.schemas.multiformat.asyncapi.AsyncAPIFormatSchemaV2_0_0Test.JsonFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseJson( + asyncAPIFormatSchemaToCompareWithFilePath: String, + asyncAPIFormatSchema: AsyncAPIFormatSchema + ) { + compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) + } + + @ArgumentsSource(com.asyncapi.schemas.multiformat.asyncapi.AsyncAPIFormatSchemaV2_0_0Test.YamlFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseYaml( + asyncAPIFormatSchemaToCompareWithFilePath: String, + asyncAPIFormatSchema: AsyncAPIFormatSchema + ) { + compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) + } + + class JsonFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/arrays.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.0.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/complex-object.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.0.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.0.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.0.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/enumerated-values.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.0.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/person.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.0.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/regex-pattern.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.0.0", + RegexPatternTest().asyncAPISchema() + ) + ), + // + Arguments.of( + "/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/arrays.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.0.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/complex-object.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.0.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.0.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.0.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/enumerated-values.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.0.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/person.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.0.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/regex-pattern.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.0.0", + RegexPatternTest().asyncAPISchema() + ) + ) + ) + } + + } + + class YamlFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.0.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.0.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.0.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.0.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.0.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/person.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.0.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.0.0", + RegexPatternTest().asyncAPISchema() + ) + ), + // + Arguments.of( + "/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/arrays.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.0.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/complex-object.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.0.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.0.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.0.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/enumerated-values.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.0.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/person.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.0.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/regex-pattern.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.0.0", + RegexPatternTest().asyncAPISchema() + ) + ) + ) + } + + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/AsyncAPIFormatSchemaV2_1_0Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/AsyncAPIFormatSchemaV2_1_0Test.kt new file mode 100644 index 00000000..c5ffdd7e --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/AsyncAPIFormatSchemaV2_1_0Test.kt @@ -0,0 +1,248 @@ +package com.asyncapi.schemas.multiformat.asyncapi + +import com.asyncapi.schemas.json.* +import com.asyncapi.schemas.asyncapi.multiformat.AsyncAPIFormatSchema +import org.junit.jupiter.api.extension.ExtensionContext +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.ArgumentsProvider +import org.junit.jupiter.params.provider.ArgumentsSource +import java.util.stream.Stream + +abstract class AsyncAPIFormatSchemaV2_1_0Test: AsyncAPIFormatSchemaTest() { + + @ArgumentsSource(JsonFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseJson( + asyncAPIFormatSchemaToCompareWithFilePath: String, + asyncAPIFormatSchema: AsyncAPIFormatSchema + ) { + compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) + } + + @ArgumentsSource(YamlFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseYaml( + asyncAPIFormatSchemaToCompareWithFilePath: String, + asyncAPIFormatSchema: AsyncAPIFormatSchema + ) { + compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) + } + + class JsonFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/arrays.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.1.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/complex-object.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.1.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.1.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.1.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/enumerated-values.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.1.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/person.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.1.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/regex-pattern.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.1.0", + RegexPatternTest().asyncAPISchema() + ) + ), + // + Arguments.of( + "/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/arrays.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.1.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/complex-object.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.1.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.1.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.1.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/enumerated-values.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.1.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/person.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.1.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/regex-pattern.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.1.0", + RegexPatternTest().asyncAPISchema() + ) + ) + ) + } + + } + + class YamlFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.1.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.1.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.1.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.1.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.1.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/person.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.1.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.1.0", + RegexPatternTest().asyncAPISchema() + ) + ), + // + Arguments.of( + "/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/arrays.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.1.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/complex-object.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.1.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.1.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.1.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/enumerated-values.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.1.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/person.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.1.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/regex-pattern.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.1.0", + RegexPatternTest().asyncAPISchema() + ) + ) + ) + } + + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/AsyncAPIFormatSchemaV2_2_0Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/AsyncAPIFormatSchemaV2_2_0Test.kt new file mode 100644 index 00000000..26b9421a --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/AsyncAPIFormatSchemaV2_2_0Test.kt @@ -0,0 +1,248 @@ +package com.asyncapi.schemas.multiformat.asyncapi + +import com.asyncapi.schemas.json.* +import com.asyncapi.schemas.asyncapi.multiformat.AsyncAPIFormatSchema +import org.junit.jupiter.api.extension.ExtensionContext +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.ArgumentsProvider +import org.junit.jupiter.params.provider.ArgumentsSource +import java.util.stream.Stream + +abstract class AsyncAPIFormatSchemaV2_2_0Test: com.asyncapi.schemas.multiformat.asyncapi.AsyncAPIFormatSchemaTest() { + + @ArgumentsSource(com.asyncapi.schemas.multiformat.asyncapi.AsyncAPIFormatSchemaV2_2_0Test.JsonFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseJson( + asyncAPIFormatSchemaToCompareWithFilePath: String, + asyncAPIFormatSchema: AsyncAPIFormatSchema + ) { + compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) + } + + @ArgumentsSource(com.asyncapi.schemas.multiformat.asyncapi.AsyncAPIFormatSchemaV2_2_0Test.YamlFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseYaml( + asyncAPIFormatSchemaToCompareWithFilePath: String, + asyncAPIFormatSchema: AsyncAPIFormatSchema + ) { + compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) + } + + class JsonFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/arrays.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.2.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/complex-object.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.2.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.2.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.2.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/enumerated-values.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.2.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/person.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.2.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/regex-pattern.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.2.0", + RegexPatternTest().asyncAPISchema() + ) + ), + // + Arguments.of( + "/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/arrays.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.2.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/complex-object.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.2.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.2.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.2.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/enumerated-values.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.2.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/person.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.2.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/regex-pattern.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.2.0", + RegexPatternTest().asyncAPISchema() + ) + ) + ) + } + + } + + class YamlFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.2.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.2.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.2.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.2.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.2.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/person.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.2.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.2.0", + RegexPatternTest().asyncAPISchema() + ) + ), + // + Arguments.of( + "/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/arrays.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.2.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/complex-object.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.2.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.2.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.2.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/enumerated-values.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.2.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/person.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.2.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/regex-pattern.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.2.0", + RegexPatternTest().asyncAPISchema() + ) + ) + ) + } + + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/AsyncAPIFormatSchemaV2_3_0Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/AsyncAPIFormatSchemaV2_3_0Test.kt new file mode 100644 index 00000000..af863462 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/AsyncAPIFormatSchemaV2_3_0Test.kt @@ -0,0 +1,248 @@ +package com.asyncapi.schemas.multiformat.asyncapi + +import com.asyncapi.schemas.json.* +import com.asyncapi.schemas.asyncapi.multiformat.AsyncAPIFormatSchema +import org.junit.jupiter.api.extension.ExtensionContext +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.ArgumentsProvider +import org.junit.jupiter.params.provider.ArgumentsSource +import java.util.stream.Stream + +abstract class AsyncAPIFormatSchemaV2_3_0Test: com.asyncapi.schemas.multiformat.asyncapi.AsyncAPIFormatSchemaTest() { + + @ArgumentsSource(com.asyncapi.schemas.multiformat.asyncapi.AsyncAPIFormatSchemaV2_3_0Test.JsonFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseJson( + asyncAPIFormatSchemaToCompareWithFilePath: String, + asyncAPIFormatSchema: AsyncAPIFormatSchema + ) { + compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) + } + + @ArgumentsSource(com.asyncapi.schemas.multiformat.asyncapi.AsyncAPIFormatSchemaV2_3_0Test.YamlFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseYaml( + asyncAPIFormatSchemaToCompareWithFilePath: String, + asyncAPIFormatSchema: AsyncAPIFormatSchema + ) { + compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) + } + + class JsonFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/arrays.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.3.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/complex-object.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.3.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.3.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.3.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/enumerated-values.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.3.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/person.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.3.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/regex-pattern.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.3.0", + RegexPatternTest().asyncAPISchema() + ) + ), + // + Arguments.of( + "/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/arrays.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.3.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/complex-object.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.3.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.3.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.3.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/enumerated-values.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.3.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/person.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.3.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/regex-pattern.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.3.0", + RegexPatternTest().asyncAPISchema() + ) + ) + ) + } + + } + + class YamlFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.3.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.3.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.3.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.3.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.3.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/person.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.3.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.3.0", + RegexPatternTest().asyncAPISchema() + ) + ), + // + Arguments.of( + "/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/arrays.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.3.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/complex-object.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.3.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.3.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.3.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/enumerated-values.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.3.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/person.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.3.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/regex-pattern.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.3.0", + RegexPatternTest().asyncAPISchema() + ) + ) + ) + } + + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/AsyncAPIFormatSchemaV2_4_0Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/AsyncAPIFormatSchemaV2_4_0Test.kt new file mode 100644 index 00000000..7c6b0f7f --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/AsyncAPIFormatSchemaV2_4_0Test.kt @@ -0,0 +1,248 @@ +package com.asyncapi.schemas.multiformat.asyncapi + +import com.asyncapi.schemas.json.* +import com.asyncapi.schemas.asyncapi.multiformat.AsyncAPIFormatSchema +import org.junit.jupiter.api.extension.ExtensionContext +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.ArgumentsProvider +import org.junit.jupiter.params.provider.ArgumentsSource +import java.util.stream.Stream + +abstract class AsyncAPIFormatSchemaV2_4_0Test: AsyncAPIFormatSchemaTest() { + + @ArgumentsSource(JsonFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseJson( + asyncAPIFormatSchemaToCompareWithFilePath: String, + asyncAPIFormatSchema: AsyncAPIFormatSchema + ) { + compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) + } + + @ArgumentsSource(YamlFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseYaml( + asyncAPIFormatSchemaToCompareWithFilePath: String, + asyncAPIFormatSchema: AsyncAPIFormatSchema + ) { + compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) + } + + class JsonFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/arrays.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.4.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/complex-object.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.4.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.4.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.4.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/enumerated-values.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.4.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/person.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.4.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/regex-pattern.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.4.0", + RegexPatternTest().asyncAPISchema() + ) + ), + // + Arguments.of( + "/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/arrays.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.4.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/complex-object.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.4.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.4.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.4.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/enumerated-values.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.4.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/person.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.4.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/regex-pattern.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.4.0", + RegexPatternTest().asyncAPISchema() + ) + ) + ) + } + + } + + class YamlFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.4.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.4.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.4.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.4.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.4.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/person.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.4.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.4.0", + RegexPatternTest().asyncAPISchema() + ) + ), + // + Arguments.of( + "/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/arrays.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.4.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/complex-object.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.4.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.4.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.4.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/enumerated-values.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.4.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/person.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.4.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/regex-pattern.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.4.0", + RegexPatternTest().asyncAPISchema() + ) + ) + ) + } + + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/AsyncAPIFormatSchemaV2_5_0Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/AsyncAPIFormatSchemaV2_5_0Test.kt new file mode 100644 index 00000000..5ff9eaa2 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/AsyncAPIFormatSchemaV2_5_0Test.kt @@ -0,0 +1,248 @@ +package com.asyncapi.schemas.multiformat.asyncapi + +import com.asyncapi.schemas.json.* +import com.asyncapi.schemas.asyncapi.multiformat.AsyncAPIFormatSchema +import org.junit.jupiter.api.extension.ExtensionContext +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.ArgumentsProvider +import org.junit.jupiter.params.provider.ArgumentsSource +import java.util.stream.Stream + +abstract class AsyncAPIFormatSchemaV2_5_0Test: AsyncAPIFormatSchemaTest() { + + @ArgumentsSource(JsonFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseJson( + asyncAPIFormatSchemaToCompareWithFilePath: String, + asyncAPIFormatSchema: AsyncAPIFormatSchema + ) { + compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) + } + + @ArgumentsSource(YamlFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseYaml( + asyncAPIFormatSchemaToCompareWithFilePath: String, + asyncAPIFormatSchema: AsyncAPIFormatSchema + ) { + compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) + } + + class JsonFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/arrays.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.5.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/complex-object.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.5.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.5.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.5.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/enumerated-values.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.5.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/person.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.5.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/regex-pattern.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.5.0", + RegexPatternTest().asyncAPISchema() + ) + ), + // + Arguments.of( + "/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/arrays.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.5.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/complex-object.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.5.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.5.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.5.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/enumerated-values.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.5.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/person.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.5.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/regex-pattern.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.5.0", + RegexPatternTest().asyncAPISchema() + ) + ) + ) + } + + } + + class YamlFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.5.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.5.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.5.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.5.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.5.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/person.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.5.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.5.0", + RegexPatternTest().asyncAPISchema() + ) + ), + // + Arguments.of( + "/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/arrays.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.5.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/complex-object.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.5.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.5.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.5.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/enumerated-values.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.5.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/person.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.5.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/regex-pattern.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.5.0", + RegexPatternTest().asyncAPISchema() + ) + ) + ) + } + + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/AsyncAPIFormatSchemaV2_6_0Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/AsyncAPIFormatSchemaV2_6_0Test.kt new file mode 100644 index 00000000..b41917a8 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/AsyncAPIFormatSchemaV2_6_0Test.kt @@ -0,0 +1,248 @@ +package com.asyncapi.schemas.multiformat.asyncapi + +import com.asyncapi.schemas.json.* +import com.asyncapi.schemas.asyncapi.multiformat.AsyncAPIFormatSchema +import org.junit.jupiter.api.extension.ExtensionContext +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.ArgumentsProvider +import org.junit.jupiter.params.provider.ArgumentsSource +import java.util.stream.Stream + +abstract class AsyncAPIFormatSchemaV2_6_0Test: com.asyncapi.schemas.multiformat.asyncapi.AsyncAPIFormatSchemaTest() { + + @ArgumentsSource(com.asyncapi.schemas.multiformat.asyncapi.AsyncAPIFormatSchemaV2_6_0Test.JsonFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseJson( + asyncAPIFormatSchemaToCompareWithFilePath: String, + asyncAPIFormatSchema: AsyncAPIFormatSchema + ) { + compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) + } + + @ArgumentsSource(com.asyncapi.schemas.multiformat.asyncapi.AsyncAPIFormatSchemaV2_6_0Test.YamlFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseYaml( + asyncAPIFormatSchemaToCompareWithFilePath: String, + asyncAPIFormatSchema: AsyncAPIFormatSchema + ) { + compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) + } + + class JsonFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/arrays.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.6.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/complex-object.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.6.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.6.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.6.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/enumerated-values.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.6.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/person.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.6.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/regex-pattern.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=2.6.0", + RegexPatternTest().asyncAPISchema() + ) + ), + // + Arguments.of( + "/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/arrays.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.6.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/complex-object.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.6.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.6.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.6.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/enumerated-values.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.6.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/person.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.6.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/regex-pattern.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.6.0", + RegexPatternTest().asyncAPISchema() + ) + ) + ) + } + + } + + class YamlFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.6.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.6.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.6.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.6.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.6.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/person.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.6.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=2.6.0", + RegexPatternTest().asyncAPISchema() + ) + ), + // + Arguments.of( + "/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/arrays.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.6.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/complex-object.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.6.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.6.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.6.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/enumerated-values.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.6.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/person.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.6.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/regex-pattern.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=2.6.0", + RegexPatternTest().asyncAPISchema() + ) + ) + ) + } + + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/AsyncAPIFormatSchemaV3_0_0Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/AsyncAPIFormatSchemaV3_0_0Test.kt new file mode 100644 index 00000000..73ce170f --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/AsyncAPIFormatSchemaV3_0_0Test.kt @@ -0,0 +1,248 @@ +package com.asyncapi.schemas.multiformat.asyncapi + +import com.asyncapi.schemas.json.* +import com.asyncapi.schemas.asyncapi.multiformat.AsyncAPIFormatSchema +import org.junit.jupiter.api.extension.ExtensionContext +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.ArgumentsProvider +import org.junit.jupiter.params.provider.ArgumentsSource +import java.util.stream.Stream + +abstract class AsyncAPIFormatSchemaV3_0_0Test: AsyncAPIFormatSchemaTest() { + + @ArgumentsSource(JsonFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseJson( + asyncAPIFormatSchemaToCompareWithFilePath: String, + asyncAPIFormatSchema: AsyncAPIFormatSchema + ) { + compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) + } + + @ArgumentsSource(YamlFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseYaml( + asyncAPIFormatSchemaToCompareWithFilePath: String, + asyncAPIFormatSchema: AsyncAPIFormatSchema + ) { + compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) + } + + class JsonFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/arrays.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/complex-object.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/enumerated-values.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/person.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/regex-pattern.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + RegexPatternTest().asyncAPISchema() + ) + ), + // + Arguments.of( + "/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/arrays.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=3.0.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/complex-object.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=3.0.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=3.0.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=3.0.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/enumerated-values.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=3.0.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/person.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=3.0.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/regex-pattern.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=3.0.0", + RegexPatternTest().asyncAPISchema() + ) + ) + ) + } + + } + + class YamlFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=3.0.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=3.0.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=3.0.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=3.0.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=3.0.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/person.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=3.0.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+yaml;version=3.0.0", + RegexPatternTest().asyncAPISchema() + ) + ), + // + Arguments.of( + "/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/arrays.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=3.0.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/complex-object.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=3.0.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=3.0.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=3.0.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/enumerated-values.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=3.0.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/person.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=3.0.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/regex-pattern.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi;version=3.0.0", + RegexPatternTest().asyncAPISchema() + ) + ) + ) + } + + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/EmptySchemaFormatTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/EmptySchemaFormatTest.kt new file mode 100644 index 00000000..a8820002 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/EmptySchemaFormatTest.kt @@ -0,0 +1,146 @@ +package com.asyncapi.schemas.multiformat.asyncapi + +import com.asyncapi.schemas.json.* +import com.asyncapi.schemas.asyncapi.multiformat.AsyncAPIFormatSchema +import org.junit.jupiter.api.extension.ExtensionContext +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.ArgumentsProvider +import org.junit.jupiter.params.provider.ArgumentsSource +import java.util.stream.Stream + +abstract class EmptySchemaFormatTest: AsyncAPIFormatSchemaTest() { + + @ArgumentsSource(Json::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseJson( + asyncAPIFormatSchemaToCompareWithFilePath: String, + asyncAPIFormatSchema: AsyncAPIFormatSchema + ) { + compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) + } + + @ArgumentsSource(Yaml::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseYaml( + asyncAPIFormatSchemaToCompareWithFilePath: String, + asyncAPIFormatSchema: AsyncAPIFormatSchema + ) { + compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) + } + + class Json: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/schemaFormat is empty/arrays.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of("/schemas/multiformat/schemaFormat is empty/complex-object.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/schemaFormat is empty/conditional-validation-if-else.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/schemaFormat is empty/draft-07-core-schema-meta-schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/schemaFormat is empty/enumerated-values.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/schemaFormat is empty/person.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/schemaFormat is empty/regex-pattern.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + RegexPatternTest().asyncAPISchema() + ) + ) + ) + } + + } + + class Yaml: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/schemaFormat is empty/arrays.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of("/schemas/multiformat/schemaFormat is empty/complex-object.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/schemaFormat is empty/conditional-validation-if-else.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/schemaFormat is empty/draft-07-core-schema-meta-schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/schemaFormat is empty/enumerated-values.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/schemaFormat is empty/person.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/schemaFormat is empty/regex-pattern.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + RegexPatternTest().asyncAPISchema() + ) + ) + ) + } + + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/NullSchemaFormatTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/NullSchemaFormatTest.kt new file mode 100644 index 00000000..8a431ad4 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/NullSchemaFormatTest.kt @@ -0,0 +1,148 @@ +package com.asyncapi.schemas.multiformat.asyncapi + +import com.asyncapi.schemas.json.* +import com.asyncapi.schemas.asyncapi.multiformat.AsyncAPIFormatSchema +import org.junit.jupiter.api.extension.ExtensionContext +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.ArgumentsProvider +import org.junit.jupiter.params.provider.ArgumentsSource +import java.util.stream.Stream + +abstract class NullSchemaFormatTest: com.asyncapi.schemas.multiformat.asyncapi.AsyncAPIFormatSchemaTest() { + + @ArgumentsSource(com.asyncapi.schemas.multiformat.asyncapi.NullSchemaFormatTest.Json::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseJson( + asyncAPIFormatSchemaToCompareWithFilePath: String, + asyncAPIFormatSchema: AsyncAPIFormatSchema + ) { + compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) + } + + @ArgumentsSource(com.asyncapi.schemas.multiformat.asyncapi.NullSchemaFormatTest.Yaml::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseYaml( + asyncAPIFormatSchemaToCompareWithFilePath: String, + asyncAPIFormatSchema: AsyncAPIFormatSchema + ) { + compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) + } + + class Json: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/schemaFormat is null/arrays.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/schemaFormat is null/complex-object.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/schemaFormat is null/conditional-validation-if-else.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/schemaFormat is null/draft-07-core-schema-meta-schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/schemaFormat is null/enumerated-values.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/schemaFormat is null/person.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/schemaFormat is null/regex-pattern.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + RegexPatternTest().asyncAPISchema() + ) + ) + ) + } + + } + + class Yaml: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/schemaFormat is null/arrays.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/schemaFormat is null/complex-object.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/schemaFormat is null/conditional-validation-if-else.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/schemaFormat is null/draft-07-core-schema-meta-schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/schemaFormat is null/enumerated-values.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/schemaFormat is null/person.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/schemaFormat is null/regex-pattern.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + RegexPatternTest().asyncAPISchema() + ) + ) + ) + } + + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/WithoutSchemaFormatTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/WithoutSchemaFormatTest.kt new file mode 100644 index 00000000..7658e720 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/asyncapi/WithoutSchemaFormatTest.kt @@ -0,0 +1,148 @@ +package com.asyncapi.schemas.multiformat.asyncapi + +import com.asyncapi.schemas.json.* +import com.asyncapi.schemas.asyncapi.multiformat.AsyncAPIFormatSchema +import org.junit.jupiter.api.extension.ExtensionContext +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.ArgumentsProvider +import org.junit.jupiter.params.provider.ArgumentsSource +import java.util.stream.Stream + +abstract class WithoutSchemaFormatTest: com.asyncapi.schemas.multiformat.asyncapi.AsyncAPIFormatSchemaTest() { + + @ArgumentsSource(com.asyncapi.schemas.multiformat.asyncapi.WithoutSchemaFormatTest.Json::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseJson( + asyncAPIFormatSchemaToCompareWithFilePath: String, + asyncAPIFormatSchema: AsyncAPIFormatSchema + ) { + compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) + } + + @ArgumentsSource(com.asyncapi.schemas.multiformat.asyncapi.WithoutSchemaFormatTest.Yaml::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseYaml( + asyncAPIFormatSchemaToCompareWithFilePath: String, + asyncAPIFormatSchema: AsyncAPIFormatSchema + ) { + compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) + } + + class Json: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/without schemaFormat/arrays.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/without schemaFormat/complex-object.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/without schemaFormat/conditional-validation-if-else.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/without schemaFormat/draft-07-core-schema-meta-schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/without schemaFormat/enumerated-values.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/without schemaFormat/person.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/without schemaFormat/regex-pattern.schema.json", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + RegexPatternTest().asyncAPISchema() + ) + ) + ) + } + + } + + class Yaml: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/without schemaFormat/arrays.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + ArraysSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/without schemaFormat/complex-object.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + ComplexObjectTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/without schemaFormat/conditional-validation-if-else.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + ConditionalValidationIfElse().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/without schemaFormat/draft-07-core-schema-meta-schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + Draft07CoreSchemaMetaSchemaTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/without schemaFormat/enumerated-values.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + EnumeratedValuesTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/without schemaFormat/person.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + PersonTest().asyncAPISchema() + ) + ), + Arguments.of( + "/schemas/multiformat/without schemaFormat/regex-pattern.schema.yaml", + AsyncAPIFormatSchema( + "application/vnd.aai.asyncapi+json;version=3.0.0", + RegexPatternTest().asyncAPISchema() + ) + ) + ) + } + + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/avro/AvroFormatSchemaTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/avro/AvroFormatSchemaTest.kt similarity index 90% rename from asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/avro/AvroFormatSchemaTest.kt rename to asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/avro/AvroFormatSchemaTest.kt index af4a4912..b065b3de 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/avro/AvroFormatSchemaTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/avro/AvroFormatSchemaTest.kt @@ -1,7 +1,7 @@ -package com.asyncapi.v3.schema.multiformat.avro +package com.asyncapi.schemas.multiformat.avro import com.asyncapi.v3.ClasspathUtils -import com.asyncapi.v3.schema.multiformat.AvroFormatSchema +import com.asyncapi.schemas.asyncapi.multiformat.AvroFormatSchema import com.fasterxml.jackson.annotation.JsonInclude import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.dataformat.yaml.YAMLFactory diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/avro/AvroSchemaFormatSchemaV1_10_0Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/avro/AvroSchemaFormatSchemaV1_10_0Test.kt new file mode 100644 index 00000000..8c5a3f02 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/avro/AvroSchemaFormatSchemaV1_10_0Test.kt @@ -0,0 +1,556 @@ +package com.asyncapi.schemas.multiformat.avro + +import com.asyncapi.schemas.avro.AvroSchemasProvider +import com.asyncapi.schemas.asyncapi.multiformat.AvroFormatSchema +import org.junit.jupiter.api.extension.ExtensionContext +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.ArgumentsProvider +import org.junit.jupiter.params.provider.ArgumentsSource +import java.util.stream.Stream + +abstract class AvroFormatSchemaV1_10_0Test: AvroFormatSchemaTest() { + + @ArgumentsSource(JsonFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseJson( + avroFormatSchemaToCompareWithFilePath: String, + avroFormatSchema: AvroFormatSchema + ) { + compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) + } + + @ArgumentsSource(YamlFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseYaml( + avroFormatSchemaToCompareWithFilePath: String, + avroFormatSchema: AvroFormatSchema + ) { + compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) + } + + class JsonFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/ApplicationEvent.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.0", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/DocumentInfo.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.0", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/foo.Bar.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.0", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/full_record_v1.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.0", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/full_record_v2.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.0", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/logical-uuid.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.0", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/logical_types_with_multiple_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.0", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/MyResponse.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.0", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/regression_error_field_in_record.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.0", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/schema-location.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.0", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/schema-location-read.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.0", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/schema-location-write.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.0", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/SchemaBuilder.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.0", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/simple_record.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.0", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/TestRecordWithLogicalTypes.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.0", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.0", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/TestUnionRecord.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.0", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/union_and_fixed_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.0", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/ApplicationEvent.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/DocumentInfo.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/foo.Bar.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/full_record_v1.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/full_record_v2.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/logical-uuid.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/logical_types_with_multiple_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/MyResponse.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/regression_error_field_in_record.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/schema-location.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/schema-location-read.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/schema-location-write.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/SchemaBuilder.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/simple_record.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/TestRecordWithLogicalTypes.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/TestRecordWithMapsAndArrays.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/TestUnionRecord.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/union_and_fixed_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + ) + } + + } + + class YamlFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/ApplicationEvent.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.0", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/DocumentInfo.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.0", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/foo.Bar.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.0", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/full_record_v1.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.0", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/full_record_v2.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.0", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/logical-uuid.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.0", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.0", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/MyResponse.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.0", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/regression_error_field_in_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.0", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/schema-location.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.0", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/schema-location-read.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.0", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/schema-location-write.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.0", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/SchemaBuilder.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.0", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/simple_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.0", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.0", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.0", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/TestUnionRecord.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.0", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/union_and_fixed_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.0", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/ApplicationEvent.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/DocumentInfo.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/foo.Bar.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/full_record_v1.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/full_record_v2.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/logical-uuid.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/logical_types_with_multiple_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/MyResponse.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/regression_error_field_in_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/schema-location.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/schema-location-read.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/schema-location-write.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/SchemaBuilder.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/simple_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/TestRecordWithLogicalTypes.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/TestUnionRecord.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.0/vnd.apache.avro/union_and_fixed_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.0", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + ) + } + + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/avro/AvroSchemaFormatSchemaV1_10_1Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/avro/AvroSchemaFormatSchemaV1_10_1Test.kt new file mode 100644 index 00000000..235a9c1f --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/avro/AvroSchemaFormatSchemaV1_10_1Test.kt @@ -0,0 +1,556 @@ +package com.asyncapi.schemas.multiformat.avro + +import com.asyncapi.schemas.avro.AvroSchemasProvider +import com.asyncapi.schemas.asyncapi.multiformat.AvroFormatSchema +import org.junit.jupiter.api.extension.ExtensionContext +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.ArgumentsProvider +import org.junit.jupiter.params.provider.ArgumentsSource +import java.util.stream.Stream + +abstract class AvroFormatSchemaV1_10_1Test: AvroFormatSchemaTest() { + + @ArgumentsSource(JsonFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseJson( + avroFormatSchemaToCompareWithFilePath: String, + avroFormatSchema: AvroFormatSchema + ) { + compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) + } + + @ArgumentsSource(YamlFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseYaml( + avroFormatSchemaToCompareWithFilePath: String, + avroFormatSchema: AvroFormatSchema + ) { + compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) + } + + class JsonFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/ApplicationEvent.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.1", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/DocumentInfo.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.1", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/foo.Bar.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.1", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/full_record_v1.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.1", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/full_record_v2.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.1", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/logical-uuid.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.1", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/logical_types_with_multiple_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.1", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/MyResponse.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.1", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/regression_error_field_in_record.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.1", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/schema-location.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.1", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/schema-location-read.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.1", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/schema-location-write.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.1", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/SchemaBuilder.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.1", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/simple_record.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.1", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/TestRecordWithLogicalTypes.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.1", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.1", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/TestUnionRecord.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.1", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/union_and_fixed_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.1", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/ApplicationEvent.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/DocumentInfo.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/foo.Bar.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/full_record_v1.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/full_record_v2.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/logical-uuid.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/logical_types_with_multiple_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/MyResponse.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/regression_error_field_in_record.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/schema-location.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/schema-location-read.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/schema-location-write.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/SchemaBuilder.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/simple_record.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/TestRecordWithLogicalTypes.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/TestRecordWithMapsAndArrays.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/TestUnionRecord.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/union_and_fixed_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + ) + } + + } + + class YamlFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/ApplicationEvent.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.1", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/DocumentInfo.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.1", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/foo.Bar.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.1", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/full_record_v1.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.1", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/full_record_v2.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.1", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/logical-uuid.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.1", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.1", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/MyResponse.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.1", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/regression_error_field_in_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.1", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/schema-location.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.1", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/schema-location-read.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.1", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/schema-location-write.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.1", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/SchemaBuilder.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.1", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/simple_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.1", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.1", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.1", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/TestUnionRecord.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.1", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/union_and_fixed_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.1", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/ApplicationEvent.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/DocumentInfo.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/foo.Bar.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/full_record_v1.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/full_record_v2.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/logical-uuid.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/logical_types_with_multiple_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/MyResponse.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/regression_error_field_in_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/schema-location.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/schema-location-read.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/schema-location-write.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/SchemaBuilder.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/simple_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/TestRecordWithLogicalTypes.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/TestUnionRecord.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.1/vnd.apache.avro/union_and_fixed_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.1", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + ) + } + + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/avro/AvroSchemaFormatSchemaV1_10_2Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/avro/AvroSchemaFormatSchemaV1_10_2Test.kt new file mode 100644 index 00000000..04c63323 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/avro/AvroSchemaFormatSchemaV1_10_2Test.kt @@ -0,0 +1,556 @@ +package com.asyncapi.schemas.multiformat.avro + +import com.asyncapi.schemas.avro.AvroSchemasProvider +import com.asyncapi.schemas.asyncapi.multiformat.AvroFormatSchema +import org.junit.jupiter.api.extension.ExtensionContext +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.ArgumentsProvider +import org.junit.jupiter.params.provider.ArgumentsSource +import java.util.stream.Stream + +abstract class AvroFormatSchemaV1_10_2Test: com.asyncapi.schemas.multiformat.avro.AvroFormatSchemaTest() { + + @ArgumentsSource(com.asyncapi.schemas.multiformat.avro.AvroFormatSchemaV1_10_2Test.JsonFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseJson( + avroFormatSchemaToCompareWithFilePath: String, + avroFormatSchema: AvroFormatSchema + ) { + compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) + } + + @ArgumentsSource(com.asyncapi.schemas.multiformat.avro.AvroFormatSchemaV1_10_2Test.YamlFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseYaml( + avroFormatSchemaToCompareWithFilePath: String, + avroFormatSchema: AvroFormatSchema + ) { + compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) + } + + class JsonFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/ApplicationEvent.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.2", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/DocumentInfo.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.2", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/foo.Bar.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.2", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/full_record_v1.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.2", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/full_record_v2.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.2", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/logical-uuid.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.2", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/logical_types_with_multiple_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.2", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/MyResponse.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.2", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/regression_error_field_in_record.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.2", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/schema-location.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.2", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/schema-location-read.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.2", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/schema-location-write.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.2", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/SchemaBuilder.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.2", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/simple_record.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.2", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/TestRecordWithLogicalTypes.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.2", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.2", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/TestUnionRecord.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.2", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/union_and_fixed_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.10.2", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/ApplicationEvent.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/DocumentInfo.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/foo.Bar.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/full_record_v1.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/full_record_v2.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/logical-uuid.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/logical_types_with_multiple_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/MyResponse.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/regression_error_field_in_record.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/schema-location.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/schema-location-read.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/schema-location-write.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/SchemaBuilder.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/simple_record.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/TestRecordWithLogicalTypes.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/TestRecordWithMapsAndArrays.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/TestUnionRecord.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/union_and_fixed_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + ) + } + + } + + class YamlFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/ApplicationEvent.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.2", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/DocumentInfo.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.2", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/foo.Bar.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.2", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/full_record_v1.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.2", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/full_record_v2.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.2", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/logical-uuid.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.2", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.2", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/MyResponse.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.2", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/regression_error_field_in_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.2", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/schema-location.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.2", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/schema-location-read.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.2", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/schema-location-write.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.2", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/SchemaBuilder.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.2", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/simple_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.2", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.2", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.2", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/TestUnionRecord.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.2", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/union_and_fixed_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.10.2", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/ApplicationEvent.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/DocumentInfo.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/foo.Bar.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/full_record_v1.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/full_record_v2.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/logical-uuid.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/logical_types_with_multiple_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/MyResponse.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/regression_error_field_in_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/schema-location.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/schema-location-read.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/schema-location-write.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/SchemaBuilder.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/simple_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/TestRecordWithLogicalTypes.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/TestUnionRecord.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.10.2/vnd.apache.avro/union_and_fixed_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.10.2", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + ) + } + + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/avro/AvroSchemaFormatSchemaV1_11_0Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/avro/AvroSchemaFormatSchemaV1_11_0Test.kt new file mode 100644 index 00000000..b6d94b7d --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/avro/AvroSchemaFormatSchemaV1_11_0Test.kt @@ -0,0 +1,556 @@ +package com.asyncapi.schemas.multiformat.avro + +import com.asyncapi.schemas.avro.AvroSchemasProvider +import com.asyncapi.schemas.asyncapi.multiformat.AvroFormatSchema +import org.junit.jupiter.api.extension.ExtensionContext +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.ArgumentsProvider +import org.junit.jupiter.params.provider.ArgumentsSource +import java.util.stream.Stream + +abstract class AvroFormatSchemaV1_11_0Test: com.asyncapi.schemas.multiformat.avro.AvroFormatSchemaTest() { + + @ArgumentsSource(com.asyncapi.schemas.multiformat.avro.AvroFormatSchemaV1_11_0Test.JsonFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseJson( + avroFormatSchemaToCompareWithFilePath: String, + avroFormatSchema: AvroFormatSchema + ) { + compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) + } + + @ArgumentsSource(com.asyncapi.schemas.multiformat.avro.AvroFormatSchemaV1_11_0Test.YamlFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseYaml( + avroFormatSchemaToCompareWithFilePath: String, + avroFormatSchema: AvroFormatSchema + ) { + compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) + } + + class JsonFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/ApplicationEvent.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.0", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/DocumentInfo.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.0", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/foo.Bar.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.0", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/full_record_v1.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.0", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/full_record_v2.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.0", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/logical-uuid.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.0", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/logical_types_with_multiple_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.0", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/MyResponse.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.0", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/regression_error_field_in_record.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.0", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/schema-location.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.0", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/schema-location-read.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.0", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/schema-location-write.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.0", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/SchemaBuilder.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.0", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/simple_record.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.0", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/TestRecordWithLogicalTypes.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.0", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.0", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/TestUnionRecord.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.0", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/union_and_fixed_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.0", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/ApplicationEvent.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/DocumentInfo.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/foo.Bar.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/full_record_v1.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/full_record_v2.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/logical-uuid.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/logical_types_with_multiple_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/MyResponse.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/regression_error_field_in_record.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/schema-location.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/schema-location-read.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/schema-location-write.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/SchemaBuilder.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/simple_record.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/TestRecordWithLogicalTypes.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/TestRecordWithMapsAndArrays.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/TestUnionRecord.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/union_and_fixed_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + ) + } + + } + + class YamlFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/ApplicationEvent.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.0", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/DocumentInfo.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.0", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/foo.Bar.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.0", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/full_record_v1.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.0", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/full_record_v2.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.0", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/logical-uuid.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.0", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.0", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/MyResponse.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.0", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/regression_error_field_in_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.0", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/schema-location.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.0", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/schema-location-read.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.0", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/schema-location-write.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.0", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/SchemaBuilder.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.0", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/simple_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.0", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.0", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.0", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/TestUnionRecord.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.0", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/union_and_fixed_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.0", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/ApplicationEvent.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/DocumentInfo.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/foo.Bar.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/full_record_v1.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/full_record_v2.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/logical-uuid.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/logical_types_with_multiple_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/MyResponse.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/regression_error_field_in_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/schema-location.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/schema-location-read.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/schema-location-write.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/SchemaBuilder.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/simple_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/TestRecordWithLogicalTypes.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/TestUnionRecord.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.0/vnd.apache.avro/union_and_fixed_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.0", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + ) + } + + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/avro/AvroSchemaFormatSchemaV1_11_1Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/avro/AvroSchemaFormatSchemaV1_11_1Test.kt new file mode 100644 index 00000000..b01ffa25 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/avro/AvroSchemaFormatSchemaV1_11_1Test.kt @@ -0,0 +1,556 @@ +package com.asyncapi.schemas.multiformat.avro + +import com.asyncapi.schemas.avro.AvroSchemasProvider +import com.asyncapi.schemas.asyncapi.multiformat.AvroFormatSchema +import org.junit.jupiter.api.extension.ExtensionContext +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.ArgumentsProvider +import org.junit.jupiter.params.provider.ArgumentsSource +import java.util.stream.Stream + +abstract class AvroFormatSchemaV1_11_1Test: AvroFormatSchemaTest() { + + @ArgumentsSource(JsonFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseJson( + avroFormatSchemaToCompareWithFilePath: String, + avroFormatSchema: AvroFormatSchema + ) { + compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) + } + + @ArgumentsSource(YamlFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseYaml( + avroFormatSchemaToCompareWithFilePath: String, + avroFormatSchema: AvroFormatSchema + ) { + compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) + } + + class JsonFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/ApplicationEvent.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.1", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/DocumentInfo.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.1", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/foo.Bar.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.1", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/full_record_v1.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.1", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/full_record_v2.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.1", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/logical-uuid.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.1", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/logical_types_with_multiple_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.1", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/MyResponse.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.1", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/regression_error_field_in_record.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.1", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/schema-location.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.1", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/schema-location-read.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.1", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/schema-location-write.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.1", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/SchemaBuilder.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.1", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/simple_record.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.1", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/TestRecordWithLogicalTypes.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.1", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.1", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/TestUnionRecord.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.1", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/union_and_fixed_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.11.1", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/ApplicationEvent.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/DocumentInfo.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/foo.Bar.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/full_record_v1.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/full_record_v2.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/logical-uuid.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/logical_types_with_multiple_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/MyResponse.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/regression_error_field_in_record.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/schema-location.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/schema-location-read.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/schema-location-write.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/SchemaBuilder.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/simple_record.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/TestRecordWithLogicalTypes.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/TestRecordWithMapsAndArrays.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/TestUnionRecord.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/union_and_fixed_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + ) + } + + } + + class YamlFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/ApplicationEvent.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.1", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/DocumentInfo.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.1", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/foo.Bar.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.1", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/full_record_v1.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.1", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/full_record_v2.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.1", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/logical-uuid.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.1", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.1", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/MyResponse.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.1", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/regression_error_field_in_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.1", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/schema-location.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.1", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/schema-location-read.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.1", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/schema-location-write.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.1", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/SchemaBuilder.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.1", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/simple_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.1", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.1", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.1", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/TestUnionRecord.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.1", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/union_and_fixed_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.11.1", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/ApplicationEvent.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/DocumentInfo.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/foo.Bar.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/full_record_v1.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/full_record_v2.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/logical-uuid.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/logical_types_with_multiple_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/MyResponse.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/regression_error_field_in_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/schema-location.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/schema-location-read.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/schema-location-write.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/SchemaBuilder.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/simple_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/TestRecordWithLogicalTypes.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/TestUnionRecord.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.11.1/vnd.apache.avro/union_and_fixed_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.11.1", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + ) + } + + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/avro/AvroSchemaFormatSchemaV1_9_0Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/avro/AvroSchemaFormatSchemaV1_9_0Test.kt new file mode 100644 index 00000000..bc130304 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/avro/AvroSchemaFormatSchemaV1_9_0Test.kt @@ -0,0 +1,556 @@ +package com.asyncapi.schemas.multiformat.avro + +import com.asyncapi.schemas.avro.AvroSchemasProvider +import com.asyncapi.schemas.asyncapi.multiformat.AvroFormatSchema +import org.junit.jupiter.api.extension.ExtensionContext +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.ArgumentsProvider +import org.junit.jupiter.params.provider.ArgumentsSource +import java.util.stream.Stream + +abstract class AvroFormatSchemaV1_9_0Test: com.asyncapi.schemas.multiformat.avro.AvroFormatSchemaTest() { + + @ArgumentsSource(com.asyncapi.schemas.multiformat.avro.AvroFormatSchemaV1_9_0Test.JsonFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseJson( + avroFormatSchemaToCompareWithFilePath: String, + avroFormatSchema: AvroFormatSchema + ) { + compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) + } + + @ArgumentsSource(com.asyncapi.schemas.multiformat.avro.AvroFormatSchemaV1_9_0Test.YamlFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseYaml( + avroFormatSchemaToCompareWithFilePath: String, + avroFormatSchema: AvroFormatSchema + ) { + compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) + } + + class JsonFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/ApplicationEvent.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.0", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/DocumentInfo.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.0", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/foo.Bar.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.0", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/full_record_v1.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.0", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/full_record_v2.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.0", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/logical-uuid.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.0", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/logical_types_with_multiple_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.0", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/MyResponse.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.0", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/regression_error_field_in_record.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.0", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/schema-location.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.0", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/schema-location-read.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.0", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/schema-location-write.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.0", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/SchemaBuilder.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.0", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/simple_record.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.0", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/TestRecordWithLogicalTypes.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.0", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.0", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/TestUnionRecord.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.0", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/union_and_fixed_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.0", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/ApplicationEvent.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/DocumentInfo.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/foo.Bar.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/full_record_v1.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/full_record_v2.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/logical-uuid.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/logical_types_with_multiple_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/MyResponse.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/regression_error_field_in_record.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/schema-location.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/schema-location-read.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/schema-location-write.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/SchemaBuilder.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/simple_record.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/TestRecordWithLogicalTypes.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/TestRecordWithMapsAndArrays.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/TestUnionRecord.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/union_and_fixed_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + ) + } + + } + + class YamlFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/ApplicationEvent.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.0", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/DocumentInfo.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.0", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/foo.Bar.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.0", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/full_record_v1.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.0", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/full_record_v2.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.0", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/logical-uuid.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.0", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.0", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/MyResponse.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.0", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/regression_error_field_in_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.0", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/schema-location.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.0", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/schema-location-read.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.0", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/schema-location-write.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.0", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/SchemaBuilder.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.0", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/simple_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.0", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.0", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.0", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/TestUnionRecord.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.0", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/union_and_fixed_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.0", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/ApplicationEvent.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/DocumentInfo.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/foo.Bar.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/full_record_v1.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/full_record_v2.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/logical-uuid.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/logical_types_with_multiple_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/MyResponse.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/regression_error_field_in_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/schema-location.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/schema-location-read.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/schema-location-write.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/SchemaBuilder.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/simple_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/TestRecordWithLogicalTypes.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/TestUnionRecord.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.0/vnd.apache.avro/union_and_fixed_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.0", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + ) + } + + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/avro/AvroSchemaFormatSchemaV1_9_1Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/avro/AvroSchemaFormatSchemaV1_9_1Test.kt new file mode 100644 index 00000000..94589241 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/avro/AvroSchemaFormatSchemaV1_9_1Test.kt @@ -0,0 +1,556 @@ +package com.asyncapi.schemas.multiformat.avro + +import com.asyncapi.schemas.avro.AvroSchemasProvider +import com.asyncapi.schemas.asyncapi.multiformat.AvroFormatSchema +import org.junit.jupiter.api.extension.ExtensionContext +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.ArgumentsProvider +import org.junit.jupiter.params.provider.ArgumentsSource +import java.util.stream.Stream + +abstract class AvroFormatSchemaV1_9_1Test: com.asyncapi.schemas.multiformat.avro.AvroFormatSchemaTest() { + + @ArgumentsSource(com.asyncapi.schemas.multiformat.avro.AvroFormatSchemaV1_9_1Test.JsonFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseJson( + avroFormatSchemaToCompareWithFilePath: String, + avroFormatSchema: AvroFormatSchema + ) { + compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) + } + + @ArgumentsSource(com.asyncapi.schemas.multiformat.avro.AvroFormatSchemaV1_9_1Test.YamlFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseYaml( + avroFormatSchemaToCompareWithFilePath: String, + avroFormatSchema: AvroFormatSchema + ) { + compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) + } + + class JsonFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/ApplicationEvent.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.1", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/DocumentInfo.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.1", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/foo.Bar.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.1", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/full_record_v1.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.1", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/full_record_v2.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.1", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/logical-uuid.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.1", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/logical_types_with_multiple_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.1", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/MyResponse.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.1", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/regression_error_field_in_record.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.1", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/schema-location.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.1", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/schema-location-read.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.1", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/schema-location-write.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.1", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/SchemaBuilder.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.1", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/simple_record.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.1", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/TestRecordWithLogicalTypes.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.1", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.1", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/TestUnionRecord.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.1", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/union_and_fixed_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.1", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/ApplicationEvent.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/DocumentInfo.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/foo.Bar.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/full_record_v1.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/full_record_v2.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/logical-uuid.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/logical_types_with_multiple_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/MyResponse.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/regression_error_field_in_record.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/schema-location.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/schema-location-read.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/schema-location-write.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/SchemaBuilder.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/simple_record.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/TestRecordWithLogicalTypes.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/TestRecordWithMapsAndArrays.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/TestUnionRecord.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/union_and_fixed_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + ) + } + + } + + class YamlFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/ApplicationEvent.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.1", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/DocumentInfo.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.1", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/foo.Bar.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.1", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/full_record_v1.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.1", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/full_record_v2.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.1", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/logical-uuid.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.1", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.1", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/MyResponse.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.1", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/regression_error_field_in_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.1", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/schema-location.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.1", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/schema-location-read.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.1", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/schema-location-write.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.1", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/SchemaBuilder.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.1", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/simple_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.1", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.1", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.1", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/TestUnionRecord.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.1", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/union_and_fixed_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.1", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/ApplicationEvent.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/DocumentInfo.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/foo.Bar.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/full_record_v1.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/full_record_v2.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/logical-uuid.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/logical_types_with_multiple_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/MyResponse.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/regression_error_field_in_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/schema-location.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/schema-location-read.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/schema-location-write.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/SchemaBuilder.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/simple_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/TestRecordWithLogicalTypes.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/TestUnionRecord.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.1/vnd.apache.avro/union_and_fixed_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.1", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + ) + } + + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/avro/AvroSchemaFormatSchemaV1_9_2Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/avro/AvroSchemaFormatSchemaV1_9_2Test.kt new file mode 100644 index 00000000..73b0e666 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/avro/AvroSchemaFormatSchemaV1_9_2Test.kt @@ -0,0 +1,556 @@ +package com.asyncapi.schemas.multiformat.avro + +import com.asyncapi.schemas.avro.AvroSchemasProvider +import com.asyncapi.schemas.asyncapi.multiformat.AvroFormatSchema +import org.junit.jupiter.api.extension.ExtensionContext +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.ArgumentsProvider +import org.junit.jupiter.params.provider.ArgumentsSource +import java.util.stream.Stream + +abstract class AvroFormatSchemaV1_9_2Test: AvroFormatSchemaTest() { + + @ArgumentsSource(JsonFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseJson( + avroFormatSchemaToCompareWithFilePath: String, + avroFormatSchema: AvroFormatSchema + ) { + compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) + } + + @ArgumentsSource(YamlFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseYaml( + avroFormatSchemaToCompareWithFilePath: String, + avroFormatSchema: AvroFormatSchema + ) { + compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) + } + + class JsonFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/ApplicationEvent.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.2", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/DocumentInfo.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.2", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/foo.Bar.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.2", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/full_record_v1.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.2", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/full_record_v2.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.2", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/logical-uuid.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.2", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/logical_types_with_multiple_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.2", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/MyResponse.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.2", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/regression_error_field_in_record.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.2", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/schema-location.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.2", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/schema-location-read.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.2", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/schema-location-write.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.2", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/SchemaBuilder.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.2", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/simple_record.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.2", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/TestRecordWithLogicalTypes.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.2", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.2", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/TestUnionRecord.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.2", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/union_and_fixed_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro+json;version=1.9.2", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/ApplicationEvent.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/DocumentInfo.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/foo.Bar.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/full_record_v1.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/full_record_v2.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/logical-uuid.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/logical_types_with_multiple_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/MyResponse.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/regression_error_field_in_record.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/schema-location.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/schema-location-read.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/schema-location-write.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/SchemaBuilder.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/simple_record.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/TestRecordWithLogicalTypes.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/TestRecordWithMapsAndArrays.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/TestUnionRecord.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/union_and_fixed_fields.json", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + ) + } + + } + + class YamlFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/ApplicationEvent.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.2", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/DocumentInfo.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.2", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/foo.Bar.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.2", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/full_record_v1.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.2", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/full_record_v2.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.2", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/logical-uuid.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.2", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.2", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/MyResponse.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.2", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/regression_error_field_in_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.2", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/schema-location.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.2", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/schema-location-read.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.2", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/schema-location-write.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.2", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/SchemaBuilder.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.2", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/simple_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.2", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.2", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.2", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/TestUnionRecord.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.2", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/union_and_fixed_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro+yaml;version=1.9.2", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/ApplicationEvent.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().applicationEventTest() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/DocumentInfo.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().documentInfo() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/foo.Bar.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().fooBar() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/full_record_v1.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().fullRecordV1() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/full_record_v2.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().fullRecordV2() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/logical-uuid.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().logicalUUID() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/logical_types_with_multiple_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().logicalTypesWithMultipleFields() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/MyResponse.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().myResponse() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/regression_error_field_in_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().regressionErrorFieldInRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/schema-location.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().schemaLocation() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/schema-location-read.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().schemaLocationRead() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/schema-location-write.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().schemaLocationWrite() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/SchemaBuilder.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().schemaBuilder() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/simple_record.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().simpleRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/TestRecordWithLogicalTypes.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().testRecordWithLogicalTypes() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().testRecordWithMapsAndArrays() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/TestUnionRecord.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().testUnionRecord() + ) + ), + Arguments.of( + "/schemas/multiformat/avro/1.9.2/vnd.apache.avro/union_and_fixed_fields.yaml", + AvroFormatSchema( + "application/vnd.apache.avro;version=1.9.2", + AvroSchemasProvider().unionAndFixedFields() + ) + ), + ) + } + + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/json/JsonFormatSchemaTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/json/JsonFormatSchemaTest.kt new file mode 100644 index 00000000..49f4b56a --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/json/JsonFormatSchemaTest.kt @@ -0,0 +1,151 @@ +package com.asyncapi.schemas.multiformat.json + +import com.asyncapi.schemas.json.* +import com.asyncapi.v3.ClasspathUtils +import com.asyncapi.schemas.asyncapi.multiformat.JsonFormatSchema +import com.fasterxml.jackson.annotation.JsonInclude +import com.fasterxml.jackson.databind.ObjectMapper +import com.fasterxml.jackson.dataformat.yaml.YAMLFactory +import org.junit.jupiter.api.Assertions +import org.junit.jupiter.api.extension.ExtensionContext +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.ArgumentsProvider +import org.junit.jupiter.params.provider.ArgumentsSource +import java.util.stream.Stream + +abstract class JsonFormatSchemaTest { + + private val objectMapper: ObjectMapper = ObjectMapper(YAMLFactory()) + .setSerializationInclusion(JsonInclude.Include.NON_NULL) + .findAndRegisterModules() + + fun compareSchemas( + jsonFormatSchemaToCompareWithFilePath: String, + schemaToCheck: JsonFormatSchema + ) { + val schemaAsJson = ClasspathUtils.readAsString(jsonFormatSchemaToCompareWithFilePath) + val schema = objectMapper.readValue(schemaAsJson, JsonFormatSchema::class.java) + + Assertions.assertEquals(schema, schemaToCheck) + } + + @ArgumentsSource(com.asyncapi.schemas.multiformat.json.JsonFormatSchemaTest.Json::class) + @ParameterizedTest(name = "Read: {0}") + fun parseJson( + jsonFormatSchemaToCompareWithFilePath: String, + jsonFormatSchema: JsonFormatSchema + ) { + compareSchemas(jsonFormatSchemaToCompareWithFilePath, jsonFormatSchema) + + } + + @ArgumentsSource(com.asyncapi.schemas.multiformat.json.JsonFormatSchemaTest.Yaml::class) + @ParameterizedTest(name = "Read: {0}") + fun parseYaml( + jsonFormatSchemaToCompareWithFilePath: String, + jsonFormatSchema: JsonFormatSchema + ) { + compareSchemas(jsonFormatSchemaToCompareWithFilePath, jsonFormatSchema) + } + + class Json: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/json/schema+json/arrays.schema.json", + JsonFormatSchema(ArraysSchemaTest().jsonSchema()) + ), + Arguments.of( + "/schemas/multiformat/json/schema+json/complex-object.schema.json", + JsonFormatSchema(ComplexObjectTest().jsonSchema()) + ), + Arguments.of( + "/schemas/multiformat/json/schema+json/conditional-validation-if-else.schema.json", + JsonFormatSchema( + ConditionalValidationIfElse().jsonSchema() + ) + ), + Arguments.of( + "/schemas/multiformat/json/schema+json/draft-07-core-schema-meta-schema.json", + JsonFormatSchema( + Draft07CoreSchemaMetaSchemaTest().jsonSchema() + ) + ), + Arguments.of( + "/schemas/multiformat/json/schema+json/enumerated-values.schema.json", + JsonFormatSchema(EnumeratedValuesTest().jsonSchema()) + ), + Arguments.of( + "/schemas/multiformat/json/schema+json/person.schema.json", + JsonFormatSchema(PersonTest().jsonSchema()) + ), + Arguments.of( + "/schemas/multiformat/json/schema+json/regex-pattern.schema.json", + JsonFormatSchema(RegexPatternTest().jsonSchema()) + ) + ) + } + + } + + class Yaml: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of( + "/schemas/multiformat/json/schema+yaml/arrays.schema.yaml", + JsonFormatSchema( + "application/schema+yaml;version=draft-07", + ArraysSchemaTest().jsonSchema() + ) + ), + Arguments.of( + "/schemas/multiformat/json/schema+yaml/complex-object.schema.yaml", + JsonFormatSchema( + "application/schema+yaml;version=draft-07", + ComplexObjectTest().jsonSchema() + ) + ), + Arguments.of( + "/schemas/multiformat/json/schema+yaml/conditional-validation-if-else.schema.yaml", + JsonFormatSchema( + "application/schema+yaml;version=draft-07", + ConditionalValidationIfElse().jsonSchema() + ) + ), + Arguments.of( + "/schemas/multiformat/json/schema+yaml/draft-07-core-schema-meta-schema.yaml", + JsonFormatSchema( + "application/schema+yaml;version=draft-07", + Draft07CoreSchemaMetaSchemaTest().jsonSchema() + ) + ), + Arguments.of( + "/schemas/multiformat/json/schema+yaml/enumerated-values.schema.yaml", + JsonFormatSchema( + "application/schema+yaml;version=draft-07", + EnumeratedValuesTest().jsonSchema() + ) + ), + Arguments.of( + "/schemas/multiformat/json/schema+yaml/person.schema.yaml", + JsonFormatSchema( + "application/schema+yaml;version=draft-07", + PersonTest().jsonSchema() + ) + ), + Arguments.of( + "/schemas/multiformat/json/schema+yaml/regex-pattern.schema.yaml", + JsonFormatSchema( + "application/schema+yaml;version=draft-07", + RegexPatternTest().jsonSchema() + ) + ) + ) + } + + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/openapi/OpenAPIFormatSchemaTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/openapi/OpenAPIFormatSchemaTest.kt similarity index 90% rename from asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/openapi/OpenAPIFormatSchemaTest.kt rename to asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/openapi/OpenAPIFormatSchemaTest.kt index 8acfbc49..3f05181e 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/openapi/OpenAPIFormatSchemaTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/openapi/OpenAPIFormatSchemaTest.kt @@ -1,7 +1,7 @@ -package com.asyncapi.v3.schema.multiformat.openapi +package com.asyncapi.schemas.multiformat.openapi import com.asyncapi.v3.ClasspathUtils -import com.asyncapi.v3.schema.multiformat.OpenAPIFormatSchema +import com.asyncapi.schemas.asyncapi.multiformat.OpenAPIFormatSchema import com.fasterxml.jackson.annotation.JsonInclude import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.dataformat.yaml.YAMLFactory diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/openapi/OpenAPIFormatSchemaV3_0_0Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/openapi/OpenAPIFormatSchemaV3_0_0Test.kt new file mode 100644 index 00000000..4a42ac1a --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/openapi/OpenAPIFormatSchemaV3_0_0Test.kt @@ -0,0 +1,74 @@ +package com.asyncapi.schemas.multiformat.openapi + +import com.asyncapi.schemas.asyncapi.multiformat.OpenAPIFormatSchema +import com.asyncapi.schemas.openapi.v3._0_0.SchemaTest +import org.junit.jupiter.api.extension.ExtensionContext +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.ArgumentsProvider +import org.junit.jupiter.params.provider.ArgumentsSource +import java.util.stream.Stream + +abstract class OpenAPIFormatSchemaV3_0_0Test: OpenAPIFormatSchemaTest() { + + @ArgumentsSource(JsonFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseJson( + openAPIFormatSchemaToCompareWithFilePath: String, + openAPIFormatSchema: OpenAPIFormatSchema + ) { + compareSchemas(openAPIFormatSchemaToCompareWithFilePath, openAPIFormatSchema) + } + + @ArgumentsSource(YamlFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseYaml( + openAPIFormatSchemaToCompareWithFilePath: String, + openAPIFormatSchema: OpenAPIFormatSchema + ) { + compareSchemas(openAPIFormatSchemaToCompareWithFilePath, openAPIFormatSchema) + } + + class JsonFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of("/schemas/multiformat/openapi/3.0.0/vnd.oai.openapi/schema.json", + OpenAPIFormatSchema( + "application/vnd.oai.openapi;version=3.0.0", + SchemaTest().openAPISchema() + ) + ), + Arguments.of("/schemas/multiformat/openapi/3.0.0/vnd.oai.openapi+json/schema.json", + OpenAPIFormatSchema( + "application/vnd.oai.openapi+json;version=3.0.0", + SchemaTest().openAPISchema() + ) + ) + ) + } + + } + + class YamlFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of("/schemas/multiformat/openapi/3.0.0/vnd.oai.openapi/schema.yaml", + OpenAPIFormatSchema( + "application/vnd.oai.openapi;version=3.0.0", + SchemaTest().openAPISchema() + ) + ), + Arguments.of("/schemas/multiformat/openapi/3.0.0/vnd.oai.openapi+yaml/schema.yaml", + OpenAPIFormatSchema( + "application/vnd.oai.openapi+yaml;version=3.0.0", + SchemaTest().openAPISchema() + ) + ) + ) + } + + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/openapi/OpenAPIFormatSchemaV3_0_1Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/openapi/OpenAPIFormatSchemaV3_0_1Test.kt new file mode 100644 index 00000000..391f10a7 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/openapi/OpenAPIFormatSchemaV3_0_1Test.kt @@ -0,0 +1,74 @@ +package com.asyncapi.schemas.multiformat.openapi + +import com.asyncapi.schemas.asyncapi.multiformat.OpenAPIFormatSchema +import com.asyncapi.schemas.openapi.v3._0_0.SchemaTest +import org.junit.jupiter.api.extension.ExtensionContext +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.ArgumentsProvider +import org.junit.jupiter.params.provider.ArgumentsSource +import java.util.stream.Stream + +abstract class OpenAPIFormatSchemaV3_0_1Test: OpenAPIFormatSchemaTest() { + + @ArgumentsSource(JsonFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseJson( + openAPIFormatSchemaToCompareWithFilePath: String, + openAPIFormatSchema: OpenAPIFormatSchema + ) { + compareSchemas(openAPIFormatSchemaToCompareWithFilePath, openAPIFormatSchema) + } + + @ArgumentsSource(YamlFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseYaml( + openAPIFormatSchemaToCompareWithFilePath: String, + openAPIFormatSchema: OpenAPIFormatSchema + ) { + compareSchemas(openAPIFormatSchemaToCompareWithFilePath, openAPIFormatSchema) + } + + class JsonFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of("/schemas/multiformat/openapi/3.0.1/vnd.oai.openapi/schema.json", + OpenAPIFormatSchema( + "application/vnd.oai.openapi;version=3.0.1", + SchemaTest().openAPISchema() + ) + ), + Arguments.of("/schemas/multiformat/openapi/3.0.1/vnd.oai.openapi+json/schema.json", + OpenAPIFormatSchema( + "application/vnd.oai.openapi+json;version=3.0.1", + SchemaTest().openAPISchema() + ) + ) + ) + } + + } + + class YamlFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of("/schemas/multiformat/openapi/3.0.1/vnd.oai.openapi/schema.yaml", + OpenAPIFormatSchema( + "application/vnd.oai.openapi;version=3.0.1", + SchemaTest().openAPISchema() + ) + ), + Arguments.of("/schemas/multiformat/openapi/3.0.1/vnd.oai.openapi+yaml/schema.yaml", + OpenAPIFormatSchema( + "application/vnd.oai.openapi+yaml;version=3.0.1", + SchemaTest().openAPISchema() + ) + ) + ) + } + + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/openapi/OpenAPIFormatSchemaV3_0_2Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/openapi/OpenAPIFormatSchemaV3_0_2Test.kt new file mode 100644 index 00000000..1474951d --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/openapi/OpenAPIFormatSchemaV3_0_2Test.kt @@ -0,0 +1,74 @@ +package com.asyncapi.schemas.multiformat.openapi + +import com.asyncapi.schemas.asyncapi.multiformat.OpenAPIFormatSchema +import com.asyncapi.schemas.openapi.v3._0_0.SchemaTest +import org.junit.jupiter.api.extension.ExtensionContext +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.ArgumentsProvider +import org.junit.jupiter.params.provider.ArgumentsSource +import java.util.stream.Stream + +abstract class OpenAPIFormatSchemaV3_0_2Test: OpenAPIFormatSchemaTest() { + + @ArgumentsSource(JsonFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseJson( + openAPIFormatSchemaToCompareWithFilePath: String, + openAPIFormatSchema: OpenAPIFormatSchema + ) { + compareSchemas(openAPIFormatSchemaToCompareWithFilePath, openAPIFormatSchema) + } + + @ArgumentsSource(YamlFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseYaml( + openAPIFormatSchemaToCompareWithFilePath: String, + openAPIFormatSchema: OpenAPIFormatSchema + ) { + compareSchemas(openAPIFormatSchemaToCompareWithFilePath, openAPIFormatSchema) + } + + class JsonFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of("/schemas/multiformat/openapi/3.0.2/vnd.oai.openapi/schema.json", + OpenAPIFormatSchema( + "application/vnd.oai.openapi;version=3.0.2", + SchemaTest().openAPISchema() + ) + ), + Arguments.of("/schemas/multiformat/openapi/3.0.2/vnd.oai.openapi+json/schema.json", + OpenAPIFormatSchema( + "application/vnd.oai.openapi+json;version=3.0.2", + SchemaTest().openAPISchema() + ) + ) + ) + } + + } + + class YamlFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of("/schemas/multiformat/openapi/3.0.2/vnd.oai.openapi/schema.yaml", + OpenAPIFormatSchema( + "application/vnd.oai.openapi;version=3.0.2", + SchemaTest().openAPISchema() + ) + ), + Arguments.of("/schemas/multiformat/openapi/3.0.2/vnd.oai.openapi+yaml/schema.yaml", + OpenAPIFormatSchema( + "application/vnd.oai.openapi+yaml;version=3.0.2", + SchemaTest().openAPISchema() + ) + ) + ) + } + + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/openapi/OpenAPIFormatSchemaV3_0_3Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/openapi/OpenAPIFormatSchemaV3_0_3Test.kt new file mode 100644 index 00000000..e4530421 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/multiformat/openapi/OpenAPIFormatSchemaV3_0_3Test.kt @@ -0,0 +1,74 @@ +package com.asyncapi.schemas.multiformat.openapi + +import com.asyncapi.schemas.asyncapi.multiformat.OpenAPIFormatSchema +import com.asyncapi.schemas.openapi.v3._0_0.SchemaTest +import org.junit.jupiter.api.extension.ExtensionContext +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.Arguments +import org.junit.jupiter.params.provider.ArgumentsProvider +import org.junit.jupiter.params.provider.ArgumentsSource +import java.util.stream.Stream + +abstract class OpenAPIFormatSchemaV3_0_3Test: OpenAPIFormatSchemaTest() { + + @ArgumentsSource(JsonFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseJson( + openAPIFormatSchemaToCompareWithFilePath: String, + openAPIFormatSchema: OpenAPIFormatSchema + ) { + compareSchemas(openAPIFormatSchemaToCompareWithFilePath, openAPIFormatSchema) + } + + @ArgumentsSource(YamlFormat::class) + @ParameterizedTest(name = "Read: {0}") + override fun parseYaml( + openAPIFormatSchemaToCompareWithFilePath: String, + openAPIFormatSchema: OpenAPIFormatSchema + ) { + compareSchemas(openAPIFormatSchemaToCompareWithFilePath, openAPIFormatSchema) + } + + class JsonFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of("/schemas/multiformat/openapi/3.0.3/vnd.oai.openapi/schema.json", + OpenAPIFormatSchema( + "application/vnd.oai.openapi;version=3.0.3", + SchemaTest().openAPISchema() + ) + ), + Arguments.of("/schemas/multiformat/openapi/3.0.3/vnd.oai.openapi+json/schema.json", + OpenAPIFormatSchema( + "application/vnd.oai.openapi+json;version=3.0.3", + SchemaTest().openAPISchema() + ) + ) + ) + } + + } + + class YamlFormat: ArgumentsProvider { + + override fun provideArguments(context: ExtensionContext?): Stream { + return Stream.of( + Arguments.of("/schemas/multiformat/openapi/3.0.3/vnd.oai.openapi/schema.yaml", + OpenAPIFormatSchema( + "application/vnd.oai.openapi;version=3.0.3", + SchemaTest().openAPISchema() + ) + ), + Arguments.of("/schemas/multiformat/openapi/3.0.3/vnd.oai.openapi+yaml/schema.yaml", + OpenAPIFormatSchema( + "application/vnd.oai.openapi+yaml;version=3.0.3", + SchemaTest().openAPISchema() + ) + ) + ) + } + + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/openapi/v3/_0_0/OpenAPISchemaTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/openapi/v3/_0_0/OpenAPISchemaTest.kt similarity index 75% rename from asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/openapi/v3/_0_0/OpenAPISchemaTest.kt rename to asyncapi-core/src/test/kotlin/com/asyncapi/schemas/openapi/v3/_0_0/OpenAPISchemaTest.kt index b3e92b4f..15dcb4c0 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/openapi/v3/_0_0/OpenAPISchemaTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/openapi/v3/_0_0/OpenAPISchemaTest.kt @@ -1,8 +1,8 @@ -package com.asyncapi.v3.schema.openapi.v3._0_0 +package com.asyncapi.schemas.openapi.v3._0_0 import com.asyncapi.v3.ClasspathUtils -import com.asyncapi.v3.schema.SchemaProvider -import com.asyncapi.v3.schema.openapi.v3._0_0.properties.* +import com.asyncapi.schemas.SchemaProvider +import com.asyncapi.schemas.openapi.v3._0_0.properties.* import com.fasterxml.jackson.annotation.JsonInclude import com.fasterxml.jackson.databind.ObjectMapper import org.junit.jupiter.api.Assertions @@ -84,14 +84,14 @@ class OpenAPISchemaTest { extendedXML.extensions = mapOf(Pair("x-extension-property", "value")) return Stream.of( - Arguments.of("/json/v3/schema/openapi/xml.json", extendedXML), - Arguments.of("/json/v3/schema/openapi/xml-attribute.json", XML.builder().attribute(true).build()), - Arguments.of("/json/v3/schema/openapi/xml-name-replacement.json", XML.builder().name("animal").build()), - Arguments.of("/json/v3/schema/openapi/xml-prefix-and-namespace.json", XML.builder() + Arguments.of("/schemas/openapi/xml.json", extendedXML), + Arguments.of("/schemas/openapi/xml-attribute.json", XML.builder().attribute(true).build()), + Arguments.of("/schemas/openapi/xml-name-replacement.json", XML.builder().name("animal").build()), + Arguments.of("/schemas/openapi/xml-prefix-and-namespace.json", XML.builder() .namespace("http://example.com/schema/sample") .prefix("sample").build() ), - Arguments.of("/json/v3/schema/openapi/xml-wrapped.json", XML.builder().wrapped(true).build()), + Arguments.of("/schemas/openapi/xml-wrapped.json", XML.builder().wrapped(true).build()), ) } @@ -101,14 +101,14 @@ class OpenAPISchemaTest { override fun provideArguments(context: ExtensionContext?): Stream { return Stream.of( - Arguments.of("/json/v3/schema/openapi/discriminator.json", Discriminator.builder() + Arguments.of("/schemas/openapi/discriminator.json", Discriminator.builder() .propertyName("pet_type") .mapping(mapOf( Pair("dog", "#/components/schemas/Dog"), Pair("monster", "https://gigantic-server.com/schemas/Monster/schema.json"), )).build() ), - Arguments.of("/json/v3/schema/openapi/discriminator-propertyname.json", Discriminator.builder().propertyName("pet_type").build()), + Arguments.of("/schemas/openapi/discriminator-propertyname.json", Discriminator.builder().propertyName("pet_type").build()), ) } @@ -121,8 +121,8 @@ class OpenAPISchemaTest { extendedExternalDocumentation.extensions = mapOf(Pair("x-extension-property", "value")) return Stream.of( - Arguments.of("/json/v3/schema/openapi/externaldocumentation.json", extendedExternalDocumentation), - Arguments.of("/json/v3/schema/openapi/externaldocumentation-url.json", ExternalDocumentation( + Arguments.of("/schemas/openapi/externaldocumentation.json", extendedExternalDocumentation), + Arguments.of("/schemas/openapi/externaldocumentation-url.json", ExternalDocumentation( null, "https://example.com" )), ) @@ -134,9 +134,9 @@ class OpenAPISchemaTest { override fun provideArguments(context: ExtensionContext?): Stream { return Stream.of( - Arguments.of("/json/v3/schema/openapi/schema.json", SchemaTest()), - Arguments.of("/json/v3/schema/openapi/properties/array.json", ExampleEnumDefaultArrayTest()), - Arguments.of("/json/v3/schema/openapi/properties/null.json", ExampleEnumDefaultNullTest()), + Arguments.of("/schemas/openapi/schema.json", SchemaTest()), + Arguments.of("/schemas/openapi/properties/array.json", ExampleEnumDefaultArrayTest()), + Arguments.of("/schemas/openapi/properties/null.json", ExampleEnumDefaultNullTest()), ) } diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/openapi/v3/_0_0/SchemaTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/openapi/v3/_0_0/SchemaTest.kt similarity index 91% rename from asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/openapi/v3/_0_0/SchemaTest.kt rename to asyncapi-core/src/test/kotlin/com/asyncapi/schemas/openapi/v3/_0_0/SchemaTest.kt index 5e8f9532..fa827c4f 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/openapi/v3/_0_0/SchemaTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/openapi/v3/_0_0/SchemaTest.kt @@ -1,9 +1,9 @@ -package com.asyncapi.v3.schema.openapi.v3._0_0 +package com.asyncapi.schemas.openapi.v3._0_0 -import com.asyncapi.v3.schema.SchemaProvider -import com.asyncapi.v3.schema.openapi.v3._0_0.properties.Discriminator -import com.asyncapi.v3.schema.openapi.v3._0_0.properties.ExternalDocumentation -import com.asyncapi.v3.schema.openapi.v3._0_0.properties.XML +import com.asyncapi.schemas.SchemaProvider +import com.asyncapi.schemas.openapi.v3._0_0.properties.Discriminator +import com.asyncapi.schemas.openapi.v3._0_0.properties.ExternalDocumentation +import com.asyncapi.schemas.openapi.v3._0_0.properties.XML import java.math.BigDecimal class SchemaTest: SchemaProvider { @@ -87,7 +87,8 @@ class SchemaTest: SchemaProvider { .required(listOf("pet_type")) .build() )) - .not(OpenAPISchema.builder() + .not( + OpenAPISchema.builder() .name("Pet by type") .type("object") .properties(mapOf( @@ -112,7 +113,8 @@ class SchemaTest: SchemaProvider { .build() ) )) - .additionalProperties(OpenAPISchema.builder() + .additionalProperties( + OpenAPISchema.builder() .properties(mapOf( Pair("pet_type", OpenAPISchema.builder() .type("string") @@ -121,7 +123,8 @@ class SchemaTest: SchemaProvider { .build() ) )) - .additionalProperties(OpenAPISchema.builder() + .additionalProperties( + OpenAPISchema.builder() .properties(mapOf( Pair("hunts", OpenAPISchema.builder() .type("boolean") @@ -138,7 +141,8 @@ class SchemaTest: SchemaProvider { .nullable(true) .readOnly(true) .writeOnly(true) - .example(OpenAPISchema.builder() + .example( + OpenAPISchema.builder() .type("string") .enumValue(listOf("approved", "pending", "closed", "new")) .example("approved") diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/openapi/v3/_0_0/properties/ExampleEnumDefaultArrayTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/openapi/v3/_0_0/properties/ExampleEnumDefaultArrayTest.kt similarity index 84% rename from asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/openapi/v3/_0_0/properties/ExampleEnumDefaultArrayTest.kt rename to asyncapi-core/src/test/kotlin/com/asyncapi/schemas/openapi/v3/_0_0/properties/ExampleEnumDefaultArrayTest.kt index 3c1c877e..ab6cdddb 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/openapi/v3/_0_0/properties/ExampleEnumDefaultArrayTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/openapi/v3/_0_0/properties/ExampleEnumDefaultArrayTest.kt @@ -1,7 +1,7 @@ -package com.asyncapi.v3.schema.openapi.v3._0_0.properties +package com.asyncapi.schemas.openapi.v3._0_0.properties -import com.asyncapi.v3.schema.SchemaProvider -import com.asyncapi.v3.schema.openapi.v3._0_0.OpenAPISchema +import com.asyncapi.schemas.SchemaProvider +import com.asyncapi.schemas.openapi.v3._0_0.OpenAPISchema class ExampleEnumDefaultArrayTest: SchemaProvider { diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/openapi/v3/_0_0/properties/ExampleEnumDefaultNullTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/openapi/v3/_0_0/properties/ExampleEnumDefaultNullTest.kt new file mode 100644 index 00000000..1b4bf7d2 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/openapi/v3/_0_0/properties/ExampleEnumDefaultNullTest.kt @@ -0,0 +1,18 @@ +package com.asyncapi.schemas.openapi.v3._0_0.properties + +import com.asyncapi.schemas.SchemaProvider +import com.asyncapi.schemas.openapi.v3._0_0.OpenAPISchema + +class ExampleEnumDefaultNullTest: SchemaProvider { + + private val value = null + + override fun openAPISchema(): OpenAPISchema { + return OpenAPISchema.builder() + .example(value) + .enumValue(value) + .defaultValue(value) + .build() + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/ApiKeySecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/ApiKeySecuritySchemeTest.kt new file mode 100644 index 00000000..47d3679c --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/ApiKeySecuritySchemeTest.kt @@ -0,0 +1,27 @@ +package com.asyncapi.schemas.security.v2 + +import com.asyncapi.schemas.asyncapi.security.v2.ApiKeySecurityScheme +import com.asyncapi.schemas.asyncapi.security.v2.SecurityScheme +import com.asyncapi.v2.SerDeTest + +/** + * @author Pavel Bodiachevskii + */ +class ApiKeySecuritySchemeTest: SerDeTest() { + + override fun objectClass() = ApiKeySecurityScheme::class.java + + override fun baseObjectJson() = "/schemas/security/v2/apiKey.json" + + override fun extendedObjectJson() = "/schemas/security/v2/apiKey - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v2/apiKey - wrongly extended.json" + + override fun build(): SecurityScheme { + return ApiKeySecurityScheme.apiKeyBuilder() + .description("apiKey") + .`in`(ApiKeySecurityScheme.ApiKeyLocation.USER) + .build() + } + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/AsymmetricEncryptionSecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/AsymmetricEncryptionSecuritySchemeTest.kt new file mode 100644 index 00000000..491118e8 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/AsymmetricEncryptionSecuritySchemeTest.kt @@ -0,0 +1,26 @@ +package com.asyncapi.schemas.security.v2 + +import com.asyncapi.schemas.asyncapi.security.v2.SecurityScheme +import com.asyncapi.v2.SerDeTest + +/** + * @author Pavel Bodiachevskii + */ +class AsymmetricEncryptionSecuritySchemeTest: SerDeTest() { + + override fun objectClass() = SecurityScheme::class.java + + override fun baseObjectJson() = "/schemas/security/v2/asymmetricEncryption.json" + + override fun extendedObjectJson() = "/schemas/security/v2/asymmetricEncryption - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v2/asymmetricEncryption - wrongly extended.json" + + override fun build(): SecurityScheme { + return SecurityScheme.builder() + .type(SecurityScheme.Type.ASYMMETRIC_ENCRYPTION) + .description("asymmetricEncryption") + .build() + } + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/GssapiSecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/GssapiSecuritySchemeTest.kt new file mode 100644 index 00000000..787e4b3a --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/GssapiSecuritySchemeTest.kt @@ -0,0 +1,26 @@ +package com.asyncapi.schemas.security.v2 + +import com.asyncapi.schemas.asyncapi.security.v2.SecurityScheme +import com.asyncapi.v2.SerDeTest + +/** + * @author Pavel Bodiachevskii + */ +class GssapiSecuritySchemeTest: SerDeTest() { + + override fun objectClass() = SecurityScheme::class.java + + override fun baseObjectJson() = "/schemas/security/v2/gssapi.json" + + override fun extendedObjectJson() = "/schemas/security/v2/gssapi - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v2/gssapi - wrongly extended.json" + + override fun build(): SecurityScheme { + return SecurityScheme.builder() + .type(SecurityScheme.Type.GSSAPI) + .description("gssapi") + .build() + } + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/OpenIdConnectSecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/OpenIdConnectSecuritySchemeTest.kt new file mode 100644 index 00000000..60ff0bd1 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/OpenIdConnectSecuritySchemeTest.kt @@ -0,0 +1,27 @@ +package com.asyncapi.schemas.security.v2 + +import com.asyncapi.schemas.asyncapi.security.v2.OpenIdConnectSecurityScheme +import com.asyncapi.schemas.asyncapi.security.v2.SecurityScheme +import com.asyncapi.v2.SerDeTest + +/** + * @author Pavel Bodiachevskii + */ +class OpenIdConnectSecuritySchemeTest: SerDeTest() { + + override fun objectClass() = OpenIdConnectSecurityScheme::class.java + + override fun baseObjectJson() = "/schemas/security/v2/openIdConnect.json" + + override fun extendedObjectJson() = "/schemas/security/v2/openIdConnect - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v2/openIdConnect - wrongly extended.json" + + override fun build(): SecurityScheme { + return OpenIdConnectSecurityScheme.openIdBuilder() + .description("openIdConnect") + .openIdConnectUrl("https://server.com/.well-known/openid-configuration") + .build() + } + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/PlainSecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/PlainSecuritySchemeTest.kt new file mode 100644 index 00000000..cc9d72c8 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/PlainSecuritySchemeTest.kt @@ -0,0 +1,26 @@ +package com.asyncapi.schemas.security.v2 + +import com.asyncapi.schemas.asyncapi.security.v2.SecurityScheme +import com.asyncapi.v2.SerDeTest + +/** + * @author Pavel Bodiachevskii + */ +class PlainSecuritySchemeTest: SerDeTest() { + + override fun objectClass() = SecurityScheme::class.java + + override fun baseObjectJson() = "/schemas/security/v2/plain.json" + + override fun extendedObjectJson() = "/schemas/security/v2/plain - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v2/plain - wrongly extended.json" + + override fun build(): SecurityScheme { + return SecurityScheme.builder() + .type(SecurityScheme.Type.PLAIN) + .description("plain") + .build() + } + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/ScramSha256SecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/ScramSha256SecuritySchemeTest.kt new file mode 100644 index 00000000..780854db --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/ScramSha256SecuritySchemeTest.kt @@ -0,0 +1,26 @@ +package com.asyncapi.schemas.security.v2 + +import com.asyncapi.schemas.asyncapi.security.v2.SecurityScheme +import com.asyncapi.v2.SerDeTest + +/** + * @author Pavel Bodiachevskii + */ +class ScramSha256SecuritySchemeTest: SerDeTest() { + + override fun objectClass() = SecurityScheme::class.java + + override fun baseObjectJson() = "/schemas/security/v2/scramSha256.json" + + override fun extendedObjectJson() = "/schemas/security/v2/scramSha256 - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v2/scramSha256 - wrongly extended.json" + + override fun build(): SecurityScheme { + return SecurityScheme.builder() + .type(SecurityScheme.Type.SCRAM_SHA256) + .description("scramSha256") + .build() + } + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/ScramSha512SecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/ScramSha512SecuritySchemeTest.kt new file mode 100644 index 00000000..ec4127a8 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/ScramSha512SecuritySchemeTest.kt @@ -0,0 +1,26 @@ +package com.asyncapi.schemas.security.v2 + +import com.asyncapi.schemas.asyncapi.security.v2.SecurityScheme +import com.asyncapi.v2.SerDeTest + +/** + * @author Pavel Bodiachevskii + */ +class ScramSha512SecuritySchemeTest: SerDeTest() { + + override fun objectClass() = SecurityScheme::class.java + + override fun baseObjectJson() = "/schemas/security/v2/scramSha512.json" + + override fun extendedObjectJson() = "/schemas/security/v2/scramSha512 - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v2/scramSha512 - wrongly extended.json" + + override fun build(): SecurityScheme { + return SecurityScheme.builder() + .type(SecurityScheme.Type.SCRAM_SHA512) + .description("scramSha512") + .build() + } + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/SymmetricEncryptionSecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/SymmetricEncryptionSecuritySchemeTest.kt new file mode 100644 index 00000000..3dad068f --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/SymmetricEncryptionSecuritySchemeTest.kt @@ -0,0 +1,26 @@ +package com.asyncapi.schemas.security.v2 + +import com.asyncapi.schemas.asyncapi.security.v2.SecurityScheme +import com.asyncapi.v2.SerDeTest + +/** + * @author Pavel Bodiachevskii + */ +class SymmetricEncryptionSecuritySchemeTest: SerDeTest() { + + override fun objectClass() = SecurityScheme::class.java + + override fun baseObjectJson() = "/schemas/security/v2/symmetricEncryption.json" + + override fun extendedObjectJson() = "/schemas/security/v2/symmetricEncryption - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v2/symmetricEncryption - wrongly extended.json" + + override fun build(): SecurityScheme { + return SecurityScheme.builder() + .type(SecurityScheme.Type.SYMMETRIC_ENCRYPTION) + .description("symmetricEncryption") + .build() + } + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/UserPasswordSecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/UserPasswordSecuritySchemeTest.kt new file mode 100644 index 00000000..e0262a45 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/UserPasswordSecuritySchemeTest.kt @@ -0,0 +1,26 @@ +package com.asyncapi.schemas.security.v2 + +import com.asyncapi.schemas.asyncapi.security.v2.SecurityScheme +import com.asyncapi.v2.SerDeTest + +/** + * @author Pavel Bodiachevskii + */ +class UserPasswordSecuritySchemeTest: SerDeTest() { + + override fun objectClass() = SecurityScheme::class.java + + override fun baseObjectJson() = "/schemas/security/v2/userPassword.json" + + override fun extendedObjectJson() = "/schemas/security/v2/userPassword - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v2/userPassword - wrongly extended.json" + + override fun build(): SecurityScheme { + return SecurityScheme.builder() + .type(SecurityScheme.Type.USER_PASSWORD) + .description("userPassword") + .build() + } + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/X509SecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/X509SecuritySchemeTest.kt new file mode 100644 index 00000000..66c82216 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/X509SecuritySchemeTest.kt @@ -0,0 +1,26 @@ +package com.asyncapi.schemas.security.v2 + +import com.asyncapi.schemas.asyncapi.security.v2.SecurityScheme +import com.asyncapi.v2.SerDeTest + +/** + * @author Pavel Bodiachevskii + */ +class X509SecuritySchemeTest: SerDeTest() { + + override fun objectClass() = SecurityScheme::class.java + + override fun baseObjectJson() = "/schemas/security/v2/X509.json" + + override fun extendedObjectJson() = "/schemas/security/v2/X509 - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v2/X509 - wrongly extended.json" + + override fun build(): SecurityScheme { + return SecurityScheme.builder() + .type(SecurityScheme.Type.X509) + .description("X509") + .build() + } + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/http/HttpApiKeySecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/http/HttpApiKeySecuritySchemeTest.kt new file mode 100644 index 00000000..3ed1cf3c --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/http/HttpApiKeySecuritySchemeTest.kt @@ -0,0 +1,24 @@ +package com.asyncapi.schemas.security.v2.http + +import com.asyncapi.schemas.asyncapi.security.v2.http.HttpApiKeySecurityScheme +import com.asyncapi.v2.SerDeTest + +class HttpApiKeySecuritySchemeTest: SerDeTest() { + + override fun objectClass() = HttpApiKeySecurityScheme::class.java + + override fun baseObjectJson() = "/schemas/security/v2/http/httpApiKey.json" + + override fun extendedObjectJson() = "/schemas/security/v2/http/httpApiKey - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v2/http/httpApiKey - wrongly extended.json" + + override fun build(): HttpApiKeySecurityScheme { + return HttpApiKeySecurityScheme.httpApiKeyBuilder() + .description("httpApiKey") + .name("api_key") + .`in`(HttpApiKeySecurityScheme.ApiKeyLocation.HEADER) + .build() + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/http/HttpSecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/http/HttpSecuritySchemeTest.kt new file mode 100644 index 00000000..e308cb1c --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/http/HttpSecuritySchemeTest.kt @@ -0,0 +1,43 @@ +package com.asyncapi.schemas.security.v2.http + +import com.asyncapi.schemas.asyncapi.security.v2.http.HttpSecurityScheme +import com.asyncapi.v2.SerDeTest + +class HttpSecuritySchemeBasicTest: SerDeTest() { + + override fun objectClass() = HttpSecurityScheme::class.java + + override fun baseObjectJson() = "/schemas/security/v2/http/httpBasic.json" + + override fun extendedObjectJson() = "/schemas/security/v2/http/httpBasic - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v2/http/httpBasic - wrongly extended.json" + + override fun build(): HttpSecurityScheme { + return HttpSecurityScheme.httpBuilder() + .description("http") + .scheme("basic") + .build() + } + +} + +class HttpSecuritySchemeBearerTest: SerDeTest() { + + override fun objectClass() = HttpSecurityScheme::class.java + + override fun baseObjectJson() = "/schemas/security/v2/http/httpBearer.json" + + override fun extendedObjectJson() = "/schemas/security/v2/http/httpBearer - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v2/http/httpBearer - wrongly extended.json" + + override fun build(): HttpSecurityScheme { + return HttpSecurityScheme.httpBuilder() + .description("http") + .scheme("bearer") + .bearerFormat("JWT") + .build() + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/oauth2/OAuth2SecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/oauth2/OAuth2SecuritySchemeTest.kt new file mode 100644 index 00000000..d87432ce --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/oauth2/OAuth2SecuritySchemeTest.kt @@ -0,0 +1,27 @@ +package com.asyncapi.schemas.security.v2.oauth2 + +import com.asyncapi.v2.SerDeTest +import com.asyncapi.schemas.asyncapi.security.v2.SecurityScheme +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.OAuth2SecurityScheme + +/** + * @author Pavel Bodiachevskii + */ +class OAuth2SecuritySchemeTest: SerDeTest() { + + override fun objectClass() = OAuth2SecurityScheme::class.java + + override fun baseObjectJson() = "/schemas/security/v2/oauth2/oauth2.json" + + override fun extendedObjectJson() = "/schemas/security/v2/oauth2/oauth2 - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v2/oauth2/oauth2 - wrongly extended.json" + + override fun build(): SecurityScheme { + return OAuth2SecurityScheme.oauth2Builder() + .description("oauth2") + .flows(OAuthFlowTest().build()) + .build() + } + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/oauth2/OAuthFlowTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/oauth2/OAuthFlowTest.kt new file mode 100644 index 00000000..2330c18c --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/oauth2/OAuthFlowTest.kt @@ -0,0 +1,29 @@ +package com.asyncapi.schemas.security.v2.oauth2 + +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.OAuthFlows +import com.asyncapi.v2.SerDeTest +import com.asyncapi.schemas.security.v2.oauth2.flow.* + +/** + * @author Pavel Bodiachevskii + */ +class OAuthFlowTest: SerDeTest() { + + override fun objectClass() = OAuthFlows::class.java + + override fun baseObjectJson() = "/schemas/security/v2/oauth2/oauthFlows.json" + + override fun extendedObjectJson() = "/schemas/security/v2/oauth2/oauthFlows - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v2/oauth2/oauthFlows - wrongly extended.json" + + override fun build(): OAuthFlows { + return OAuthFlows.builder() + .authorizationCode(AuthorizationCodeOAuthFlowTest().build()) + .clientCredentials(ClientCredentialsOAuthFlowTest().build()) + .implicit(ImplicitOAuthFlowTest().build()) + .password(PasswordOAuthFlowTest().build()) + .build() + } + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/oauth2/flow/AuthorizationCodeOAuthFlowTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/oauth2/flow/AuthorizationCodeOAuthFlowTest.kt new file mode 100644 index 00000000..7c3ab64a --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/oauth2/flow/AuthorizationCodeOAuthFlowTest.kt @@ -0,0 +1,28 @@ +package com.asyncapi.schemas.security.v2.oauth2.flow + +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow.AuthorizationCodeOAuthFlow +import com.asyncapi.v2.SerDeTest + +class AuthorizationCodeOAuthFlowTest: SerDeTest() { + + override fun objectClass() = AuthorizationCodeOAuthFlow::class.java + + override fun baseObjectJson() = "/schemas/security/v2/oauth2/flow/authorizationCodeOAuthFlow.json" + + override fun extendedObjectJson() = "/schemas/security/v2/oauth2/flow/authorizationCodeOAuthFlow - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v2/oauth2/flow/authorizationCodeOAuthFlow - wrongly extended.json" + + override fun build(): AuthorizationCodeOAuthFlow { + return AuthorizationCodeOAuthFlow.authorizationCodeBuilder() + .authorizationUrl("https://example.com/api/oauth/dialog") + .tokenUrl("https://example.com/api/oauth/token") + .refreshUrl("https://example.com/api/oauth/refresh") + .scopes(mapOf( + Pair("write:pets", "modify pets in your account"), + Pair("read:pets", "read your pets") + )) + .build() + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/oauth2/flow/ClientCredentialsOAuthFlowTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/oauth2/flow/ClientCredentialsOAuthFlowTest.kt new file mode 100644 index 00000000..6647378f --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/oauth2/flow/ClientCredentialsOAuthFlowTest.kt @@ -0,0 +1,27 @@ +package com.asyncapi.schemas.security.v2.oauth2.flow + +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow.ClientCredentialsOAuthFlow +import com.asyncapi.v2.SerDeTest + +class ClientCredentialsOAuthFlowTest: SerDeTest() { + + override fun objectClass() = ClientCredentialsOAuthFlow::class.java + + override fun baseObjectJson() = "/schemas/security/v2/oauth2/flow/clientCredentialsOAuthFlow.json" + + override fun extendedObjectJson() = "/schemas/security/v2/oauth2/flow/clientCredentialsOAuthFlow - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v2/oauth2/flow/clientCredentialsOAuthFlow - wrongly extended.json" + + override fun build(): ClientCredentialsOAuthFlow { + return ClientCredentialsOAuthFlow.clientCredentialsBuilder() + .tokenUrl("https://example.com/api/oauth/token") + .refreshUrl("https://example.com/api/oauth/refresh") + .scopes(mapOf( + Pair("write:pets", "modify pets in your account"), + Pair("read:pets", "read your pets") + )) + .build() + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/oauth2/flow/ImplicitOAuthFlowTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/oauth2/flow/ImplicitOAuthFlowTest.kt new file mode 100644 index 00000000..147a5a60 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/oauth2/flow/ImplicitOAuthFlowTest.kt @@ -0,0 +1,27 @@ +package com.asyncapi.schemas.security.v2.oauth2.flow + +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow.ImplicitOAuthFlow +import com.asyncapi.v2.SerDeTest + +class ImplicitOAuthFlowTest: SerDeTest() { + + override fun objectClass() = ImplicitOAuthFlow::class.java + + override fun baseObjectJson() = "/schemas/security/v2/oauth2/flow/implicitOAuthFlow.json" + + override fun extendedObjectJson() = "/schemas/security/v2/oauth2/flow/implicitOAuthFlow - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v2/oauth2/flow/implicitOAuthFlow - wrongly extended.json" + + override fun build(): ImplicitOAuthFlow { + return ImplicitOAuthFlow.implicitBuilder() + .authorizationUrl("https://example.com/api/oauth/dialog") + .refreshUrl("https://example.com/api/oauth/refresh") + .scopes(mapOf( + Pair("write:pets", "modify pets in your account"), + Pair("read:pets", "read your pets") + )) + .build() + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/oauth2/flow/OAuthFlowTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/oauth2/flow/OAuthFlowTest.kt new file mode 100644 index 00000000..3dc21928 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/oauth2/flow/OAuthFlowTest.kt @@ -0,0 +1,26 @@ +package com.asyncapi.schemas.security.v2.oauth2.flow + +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow.OAuthFlow +import com.asyncapi.v2.SerDeTest + +class OAuthFlowTest: SerDeTest() { + + override fun objectClass() = OAuthFlow::class.java + + override fun baseObjectJson() = "/schemas/security/v2/oauth2/flow/oauthFlow.json" + + override fun extendedObjectJson() = "/schemas/security/v2/oauth2/flow/oauthFlow - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v2/oauth2/flow/oauthFlow - wrongly extended.json" + + override fun build(): OAuthFlow { + return OAuthFlow.builder() + .refreshUrl("https://example.com/api/oauth/refresh") + .scopes(mapOf( + Pair("write:pets", "modify pets in your account"), + Pair("read:pets", "read your pets") + )) + .build() + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/oauth2/flow/PasswordOAuthFlowTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/oauth2/flow/PasswordOAuthFlowTest.kt new file mode 100644 index 00000000..e5ee7d1d --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v2/oauth2/flow/PasswordOAuthFlowTest.kt @@ -0,0 +1,27 @@ +package com.asyncapi.schemas.security.v2.oauth2.flow + +import com.asyncapi.schemas.asyncapi.security.v2.oauth2.flow.PasswordOAuthFlow +import com.asyncapi.v2.SerDeTest + +class PasswordOAuthFlowTest: SerDeTest() { + + override fun objectClass() = PasswordOAuthFlow::class.java + + override fun baseObjectJson() = "/schemas/security/v2/oauth2/flow/passwordOAuthFlow.json" + + override fun extendedObjectJson() = "/schemas/security/v2/oauth2/flow/passwordOAuthFlow - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v2/oauth2/flow/passwordOAuthFlow - wrongly extended.json" + + override fun build(): PasswordOAuthFlow { + return PasswordOAuthFlow.passwordBuilder() + .tokenUrl("https://example.com/api/oauth/token") + .refreshUrl("https://example.com/api/oauth/refresh") + .scopes(mapOf( + Pair("write:pets", "modify pets in your account"), + Pair("read:pets", "read your pets") + )) + .build() + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/ApiKeySecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/ApiKeySecuritySchemeTest.kt new file mode 100644 index 00000000..80cc85c2 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/ApiKeySecuritySchemeTest.kt @@ -0,0 +1,27 @@ +package com.asyncapi.schemas.security.v3 + +import com.asyncapi.schemas.asyncapi.security.v3.ApiKeySecurityScheme +import com.asyncapi.schemas.asyncapi.security.v3.SecurityScheme +import com.asyncapi.v3.SerDeTest + +/** + * @author Pavel Bodiachevskii + */ +class ApiKeySecuritySchemeTest: SerDeTest() { + + override fun objectClass() = ApiKeySecurityScheme::class.java + + override fun baseObjectJson() = "/schemas/security/v3/apiKey.json" + + override fun extendedObjectJson() = "/schemas/security/v3/apiKey - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v3/apiKey - wrongly extended.json" + + override fun build(): SecurityScheme { + return ApiKeySecurityScheme.apiKeyBuilder() + .description("apiKey") + .`in`(ApiKeySecurityScheme.ApiKeyLocation.USER) + .build() + } + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/AsymmetricEncryptionSecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/AsymmetricEncryptionSecuritySchemeTest.kt new file mode 100644 index 00000000..955c680f --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/AsymmetricEncryptionSecuritySchemeTest.kt @@ -0,0 +1,26 @@ +package com.asyncapi.schemas.security.v3 + +import com.asyncapi.schemas.asyncapi.security.v3.SecurityScheme +import com.asyncapi.v3.SerDeTest + +/** + * @author Pavel Bodiachevskii + */ +class AsymmetricEncryptionSecuritySchemeTest: SerDeTest() { + + override fun objectClass() = SecurityScheme::class.java + + override fun baseObjectJson() = "/schemas/security/v3/asymmetricEncryption.json" + + override fun extendedObjectJson() = "/schemas/security/v3/asymmetricEncryption - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v3/asymmetricEncryption - wrongly extended.json" + + override fun build(): SecurityScheme { + return SecurityScheme.builder() + .type(SecurityScheme.Type.ASYMMETRIC_ENCRYPTION) + .description("asymmetricEncryption") + .build() + } + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/GssapiSecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/GssapiSecuritySchemeTest.kt new file mode 100644 index 00000000..5b33ed0f --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/GssapiSecuritySchemeTest.kt @@ -0,0 +1,26 @@ +package com.asyncapi.schemas.security.v3 + +import com.asyncapi.schemas.asyncapi.security.v3.SecurityScheme +import com.asyncapi.v3.SerDeTest + +/** + * @author Pavel Bodiachevskii + */ +class GssapiSecuritySchemeTest: SerDeTest() { + + override fun objectClass() = SecurityScheme::class.java + + override fun baseObjectJson() = "/schemas/security/v3/gssapi.json" + + override fun extendedObjectJson() = "/schemas/security/v3/gssapi - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v3/gssapi - wrongly extended.json" + + override fun build(): SecurityScheme { + return SecurityScheme.builder() + .type(SecurityScheme.Type.GSSAPI) + .description("gssapi") + .build() + } + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/OpenIdConnectSecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/OpenIdConnectSecuritySchemeTest.kt new file mode 100644 index 00000000..5027bc11 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/OpenIdConnectSecuritySchemeTest.kt @@ -0,0 +1,28 @@ +package com.asyncapi.schemas.security.v3 + +import com.asyncapi.schemas.asyncapi.security.v3.OpenIdConnectSecurityScheme +import com.asyncapi.schemas.asyncapi.security.v3.SecurityScheme +import com.asyncapi.v3.SerDeTest + +/** + * @author Pavel Bodiachevskii + */ +class OpenIdConnectSecuritySchemeTest: SerDeTest() { + + override fun objectClass() = OpenIdConnectSecurityScheme::class.java + + override fun baseObjectJson() = "/schemas/security/v3/openIdConnect.json" + + override fun extendedObjectJson() = "/schemas/security/v3/openIdConnect - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v3/openIdConnect - wrongly extended.json" + + override fun build(): SecurityScheme { + return OpenIdConnectSecurityScheme.openIdBuilder() + .description("openIdConnect") + .openIdConnectUrl("https://server.com/.well-known/openid-configuration") + .scopes(listOf("write:pets", "read:pets")) + .build() + } + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/PlainSecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/PlainSecuritySchemeTest.kt new file mode 100644 index 00000000..57abde29 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/PlainSecuritySchemeTest.kt @@ -0,0 +1,26 @@ +package com.asyncapi.schemas.security.v3 + +import com.asyncapi.schemas.asyncapi.security.v3.SecurityScheme +import com.asyncapi.v3.SerDeTest + +/** + * @author Pavel Bodiachevskii + */ +class PlainSecuritySchemeTest: SerDeTest() { + + override fun objectClass() = SecurityScheme::class.java + + override fun baseObjectJson() = "/schemas/security/v3/plain.json" + + override fun extendedObjectJson() = "/schemas/security/v3/plain - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v3/plain - wrongly extended.json" + + override fun build(): SecurityScheme { + return SecurityScheme.builder() + .type(SecurityScheme.Type.PLAIN) + .description("plain") + .build() + } + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/ScramSha256SecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/ScramSha256SecuritySchemeTest.kt new file mode 100644 index 00000000..9206f98c --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/ScramSha256SecuritySchemeTest.kt @@ -0,0 +1,26 @@ +package com.asyncapi.schemas.security.v3 + +import com.asyncapi.schemas.asyncapi.security.v3.SecurityScheme +import com.asyncapi.v3.SerDeTest + +/** + * @author Pavel Bodiachevskii + */ +class ScramSha256SecuritySchemeTest: SerDeTest() { + + override fun objectClass() = SecurityScheme::class.java + + override fun baseObjectJson() = "/schemas/security/v3/scramSha256.json" + + override fun extendedObjectJson() = "/schemas/security/v3/scramSha256 - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v3/scramSha256 - wrongly extended.json" + + override fun build(): SecurityScheme { + return SecurityScheme.builder() + .type(SecurityScheme.Type.SCRAM_SHA256) + .description("scramSha256") + .build() + } + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/ScramSha512SecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/ScramSha512SecuritySchemeTest.kt new file mode 100644 index 00000000..e4218582 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/ScramSha512SecuritySchemeTest.kt @@ -0,0 +1,26 @@ +package com.asyncapi.schemas.security.v3 + +import com.asyncapi.schemas.asyncapi.security.v3.SecurityScheme +import com.asyncapi.v3.SerDeTest + +/** + * @author Pavel Bodiachevskii + */ +class ScramSha512SecuritySchemeTest: SerDeTest() { + + override fun objectClass() = SecurityScheme::class.java + + override fun baseObjectJson() = "/schemas/security/v3/scramSha512.json" + + override fun extendedObjectJson() = "/schemas/security/v3/scramSha512 - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v3/scramSha512 - wrongly extended.json" + + override fun build(): SecurityScheme { + return SecurityScheme.builder() + .type(SecurityScheme.Type.SCRAM_SHA512) + .description("scramSha512") + .build() + } + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/SymmetricEncryptionSecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/SymmetricEncryptionSecuritySchemeTest.kt new file mode 100644 index 00000000..ae3b2096 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/SymmetricEncryptionSecuritySchemeTest.kt @@ -0,0 +1,26 @@ +package com.asyncapi.schemas.security.v3 + +import com.asyncapi.schemas.asyncapi.security.v3.SecurityScheme +import com.asyncapi.v3.SerDeTest + +/** + * @author Pavel Bodiachevskii + */ +class SymmetricEncryptionSecuritySchemeTest: SerDeTest() { + + override fun objectClass() = SecurityScheme::class.java + + override fun baseObjectJson() = "/schemas/security/v3/symmetricEncryption.json" + + override fun extendedObjectJson() = "/schemas/security/v3/symmetricEncryption - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v3/symmetricEncryption - wrongly extended.json" + + override fun build(): SecurityScheme { + return SecurityScheme.builder() + .type(SecurityScheme.Type.SYMMETRIC_ENCRYPTION) + .description("symmetricEncryption") + .build() + } + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/UserPasswordSecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/UserPasswordSecuritySchemeTest.kt new file mode 100644 index 00000000..5f540ed5 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/UserPasswordSecuritySchemeTest.kt @@ -0,0 +1,26 @@ +package com.asyncapi.schemas.security.v3 + +import com.asyncapi.schemas.asyncapi.security.v3.SecurityScheme +import com.asyncapi.v3.SerDeTest + +/** + * @author Pavel Bodiachevskii + */ +class UserPasswordSecuritySchemeTest: SerDeTest() { + + override fun objectClass() = SecurityScheme::class.java + + override fun baseObjectJson() = "/schemas/security/v3/userPassword.json" + + override fun extendedObjectJson() = "/schemas/security/v3/userPassword - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v3/userPassword - wrongly extended.json" + + override fun build(): SecurityScheme { + return SecurityScheme.builder() + .type(SecurityScheme.Type.USER_PASSWORD) + .description("userPassword") + .build() + } + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/X509SecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/X509SecuritySchemeTest.kt new file mode 100644 index 00000000..4879d6ae --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/X509SecuritySchemeTest.kt @@ -0,0 +1,26 @@ +package com.asyncapi.schemas.security.v3 + +import com.asyncapi.schemas.asyncapi.security.v3.SecurityScheme +import com.asyncapi.v3.SerDeTest + +/** + * @author Pavel Bodiachevskii + */ +class X509SecuritySchemeTest: SerDeTest() { + + override fun objectClass() = SecurityScheme::class.java + + override fun baseObjectJson() = "/schemas/security/v3/X509.json" + + override fun extendedObjectJson() = "/schemas/security/v3/X509 - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v3/X509 - wrongly extended.json" + + override fun build(): SecurityScheme { + return SecurityScheme.builder() + .type(SecurityScheme.Type.X509) + .description("X509") + .build() + } + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/http/HttpApiKeySecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/http/HttpApiKeySecuritySchemeTest.kt new file mode 100644 index 00000000..4ecc6cd7 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/http/HttpApiKeySecuritySchemeTest.kt @@ -0,0 +1,24 @@ +package com.asyncapi.schemas.security.v3.http + +import com.asyncapi.schemas.asyncapi.security.v3.http.HttpApiKeySecurityScheme +import com.asyncapi.v3.SerDeTest + +class HttpApiKeySecuritySchemeTest: SerDeTest() { + + override fun objectClass() = HttpApiKeySecurityScheme::class.java + + override fun baseObjectJson() = "/schemas/security/v3/http/httpApiKey.json" + + override fun extendedObjectJson() = "/schemas/security/v3/http/httpApiKey - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v3/http/httpApiKey - wrongly extended.json" + + override fun build(): HttpApiKeySecurityScheme { + return HttpApiKeySecurityScheme.httpApiKeyBuilder() + .description("httpApiKey") + .name("api_key") + .`in`(HttpApiKeySecurityScheme.ApiKeyLocation.HEADER) + .build() + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/http/HttpSecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/http/HttpSecuritySchemeTest.kt new file mode 100644 index 00000000..6970fc51 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/http/HttpSecuritySchemeTest.kt @@ -0,0 +1,43 @@ +package com.asyncapi.schemas.security.v3.http + +import com.asyncapi.schemas.asyncapi.security.v3.http.HttpSecurityScheme +import com.asyncapi.v3.SerDeTest + +class HttpSecuritySchemeBasicTest: SerDeTest() { + + override fun objectClass() = HttpSecurityScheme::class.java + + override fun baseObjectJson() = "/schemas/security/v3/http/httpBasic.json" + + override fun extendedObjectJson() = "/schemas/security/v3/http/httpBasic - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v3/http/httpBasic - wrongly extended.json" + + override fun build(): HttpSecurityScheme { + return HttpSecurityScheme.httpBuilder() + .description("http") + .scheme("basic") + .build() + } + +} + +class HttpSecuritySchemeBearerTest: SerDeTest() { + + override fun objectClass() = HttpSecurityScheme::class.java + + override fun baseObjectJson() = "/schemas/security/v3/http/httpBearer.json" + + override fun extendedObjectJson() = "/schemas/security/v3/http/httpBearer - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v3/http/httpBearer - wrongly extended.json" + + override fun build(): HttpSecurityScheme { + return HttpSecurityScheme.httpBuilder() + .description("http") + .scheme("bearer") + .bearerFormat("JWT") + .build() + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/oauth2/OAuth2SecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/oauth2/OAuth2SecuritySchemeTest.kt new file mode 100644 index 00000000..33eb6c92 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/oauth2/OAuth2SecuritySchemeTest.kt @@ -0,0 +1,28 @@ +package com.asyncapi.schemas.security.v3.oauth2 + +import com.asyncapi.v3.SerDeTest +import com.asyncapi.schemas.asyncapi.security.v3.SecurityScheme +import com.asyncapi.schemas.asyncapi.security.v3.oauth2.OAuth2SecurityScheme + +/** + * @author Pavel Bodiachevskii + */ +class OAuth2SecuritySchemeTest: SerDeTest() { + + override fun objectClass() = OAuth2SecurityScheme::class.java + + override fun baseObjectJson() = "/schemas/security/v3/oauth2/oauth2.json" + + override fun extendedObjectJson() = "/schemas/security/v3/oauth2/oauth2 - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v3/oauth2/oauth2 - wrongly extended.json" + + override fun build(): SecurityScheme { + return OAuth2SecurityScheme.oauth2Builder() + .description("oauth2") + .flows(OAuthFlowTest().build()) + .scopes(listOf("write:pets", "read:pets")) + .build() + } + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/oauth2/OAuthFlowTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/oauth2/OAuthFlowTest.kt new file mode 100644 index 00000000..abf8c5a6 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/oauth2/OAuthFlowTest.kt @@ -0,0 +1,32 @@ +package com.asyncapi.schemas.security.v3.oauth2 + +import com.asyncapi.schemas.asyncapi.security.v3.oauth2.OAuthFlows +import com.asyncapi.schemas.security.v3.oauth2.flow.AuthorizationCodeOAuthFlowTest +import com.asyncapi.schemas.security.v3.oauth2.flow.ClientCredentialsOAuthFlowTest +import com.asyncapi.schemas.security.v3.oauth2.flow.ImplicitOAuthFlowTest +import com.asyncapi.schemas.security.v3.oauth2.flow.PasswordOAuthFlowTest +import com.asyncapi.v3.SerDeTest + +/** + * @author Pavel Bodiachevskii + */ +class OAuthFlowTest: SerDeTest() { + + override fun objectClass() = OAuthFlows::class.java + + override fun baseObjectJson() = "/schemas/security/v3/oauth2/oauthFlows.json" + + override fun extendedObjectJson() = "/schemas/security/v3/oauth2/oauthFlows - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v3/oauth2/oauthFlows - wrongly extended.json" + + override fun build(): OAuthFlows { + return OAuthFlows.builder() + .authorizationCode(AuthorizationCodeOAuthFlowTest().build()) + .clientCredentials(ClientCredentialsOAuthFlowTest().build()) + .implicit(ImplicitOAuthFlowTest().build()) + .password(PasswordOAuthFlowTest().build()) + .build() + } + +} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/oauth2/flow/AuthorizationCodeOAuthFlowTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/oauth2/flow/AuthorizationCodeOAuthFlowTest.kt new file mode 100644 index 00000000..2decfc3a --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/oauth2/flow/AuthorizationCodeOAuthFlowTest.kt @@ -0,0 +1,28 @@ +package com.asyncapi.schemas.security.v3.oauth2.flow + +import com.asyncapi.schemas.asyncapi.security.v3.oauth2.flow.AuthorizationCodeOAuthFlow +import com.asyncapi.v3.SerDeTest + +class AuthorizationCodeOAuthFlowTest: SerDeTest() { + + override fun objectClass() = AuthorizationCodeOAuthFlow::class.java + + override fun baseObjectJson() = "/schemas/security/v3/oauth2/flow/authorizationCodeOAuthFlow.json" + + override fun extendedObjectJson() = "/schemas/security/v3/oauth2/flow/authorizationCodeOAuthFlow - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v3/oauth2/flow/authorizationCodeOAuthFlow - wrongly extended.json" + + override fun build(): AuthorizationCodeOAuthFlow { + return AuthorizationCodeOAuthFlow.authorizationCodeBuilder() + .authorizationUrl("https://example.com/api/oauth/dialog") + .tokenUrl("https://example.com/api/oauth/token") + .refreshUrl("https://example.com/api/oauth/refresh") + .availableScopes(mapOf( + Pair("write:pets", "modify pets in your account"), + Pair("read:pets", "read your pets") + )) + .build() + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/oauth2/flow/ClientCredentialsOAuthFlowTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/oauth2/flow/ClientCredentialsOAuthFlowTest.kt new file mode 100644 index 00000000..a7fc838e --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/oauth2/flow/ClientCredentialsOAuthFlowTest.kt @@ -0,0 +1,27 @@ +package com.asyncapi.schemas.security.v3.oauth2.flow + +import com.asyncapi.schemas.asyncapi.security.v3.oauth2.flow.ClientCredentialsOAuthFlow +import com.asyncapi.v3.SerDeTest + +class ClientCredentialsOAuthFlowTest: SerDeTest() { + + override fun objectClass() = ClientCredentialsOAuthFlow::class.java + + override fun baseObjectJson() = "/schemas/security/v3/oauth2/flow/clientCredentialsOAuthFlow.json" + + override fun extendedObjectJson() = "/schemas/security/v3/oauth2/flow/clientCredentialsOAuthFlow - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v3/oauth2/flow/clientCredentialsOAuthFlow - wrongly extended.json" + + override fun build(): ClientCredentialsOAuthFlow { + return ClientCredentialsOAuthFlow.clientCredentialsBuilder() + .tokenUrl("https://example.com/api/oauth/token") + .refreshUrl("https://example.com/api/oauth/refresh") + .availableScopes(mapOf( + Pair("write:pets", "modify pets in your account"), + Pair("read:pets", "read your pets") + )) + .build() + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/oauth2/flow/ImplicitOAuthFlowTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/oauth2/flow/ImplicitOAuthFlowTest.kt new file mode 100644 index 00000000..1df906d2 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/oauth2/flow/ImplicitOAuthFlowTest.kt @@ -0,0 +1,27 @@ +package com.asyncapi.schemas.security.v3.oauth2.flow + +import com.asyncapi.schemas.asyncapi.security.v3.oauth2.flow.ImplicitOAuthFlow +import com.asyncapi.v3.SerDeTest + +class ImplicitOAuthFlowTest: SerDeTest() { + + override fun objectClass() = ImplicitOAuthFlow::class.java + + override fun baseObjectJson() = "/schemas/security/v3/oauth2/flow/implicitOAuthFlow.json" + + override fun extendedObjectJson() = "/schemas/security/v3/oauth2/flow/implicitOAuthFlow - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v3/oauth2/flow/implicitOAuthFlow - wrongly extended.json" + + override fun build(): ImplicitOAuthFlow { + return ImplicitOAuthFlow.implicitBuilder() + .authorizationUrl("https://example.com/api/oauth/dialog") + .refreshUrl("https://example.com/api/oauth/refresh") + .scopes(mapOf( + Pair("write:pets", "modify pets in your account"), + Pair("read:pets", "read your pets") + )) + .build() + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/oauth2/flow/OAuthFlowTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/oauth2/flow/OAuthFlowTest.kt new file mode 100644 index 00000000..92549356 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/oauth2/flow/OAuthFlowTest.kt @@ -0,0 +1,26 @@ +package com.asyncapi.schemas.security.v3.oauth2.flow + +import com.asyncapi.schemas.asyncapi.security.v3.oauth2.flow.OAuthFlow +import com.asyncapi.v3.SerDeTest + +class OAuthFlowTest: SerDeTest() { + + override fun objectClass() = OAuthFlow::class.java + + override fun baseObjectJson() = "/schemas/security/v3/oauth2/flow/oauthFlow.json" + + override fun extendedObjectJson() = "/schemas/security/v3/oauth2/flow/oauthFlow - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v3/oauth2/flow/oauthFlow - wrongly extended.json" + + override fun build(): OAuthFlow { + return OAuthFlow.builder() + .refreshUrl("https://example.com/api/oauth/refresh") + .availableScopes(mapOf( + Pair("write:pets", "modify pets in your account"), + Pair("read:pets", "read your pets") + )) + .build() + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/oauth2/flow/PasswordOAuthFlowTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/oauth2/flow/PasswordOAuthFlowTest.kt new file mode 100644 index 00000000..8a7c1816 --- /dev/null +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/schemas/security/v3/oauth2/flow/PasswordOAuthFlowTest.kt @@ -0,0 +1,27 @@ +package com.asyncapi.schemas.security.v3.oauth2.flow + +import com.asyncapi.schemas.asyncapi.security.v3.oauth2.flow.PasswordOAuthFlow +import com.asyncapi.v3.SerDeTest + +class PasswordOAuthFlowTest: SerDeTest() { + + override fun objectClass() = PasswordOAuthFlow::class.java + + override fun baseObjectJson() = "/schemas/security/v3/oauth2/flow/passwordOAuthFlow.json" + + override fun extendedObjectJson() = "/schemas/security/v3/oauth2/flow/passwordOAuthFlow - extended.json" + + override fun wronglyExtendedObjectJson() = "/schemas/security/v3/oauth2/flow/passwordOAuthFlow - wrongly extended.json" + + override fun build(): PasswordOAuthFlow { + return PasswordOAuthFlow.passwordBuilder() + .tokenUrl("https://example.com/api/oauth/token") + .refreshUrl("https://example.com/api/oauth/refresh") + .scopes(mapOf( + Pair("write:pets", "modify pets in your account"), + Pair("read:pets", "read your pets") + )) + .build() + } + +} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/SerDeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/SerDeTest.kt index 02ae2076..bfaf0524 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/SerDeTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/SerDeTest.kt @@ -1,5 +1,7 @@ package com.asyncapi.v2 +import com.asyncapi.schemas.asyncapi.ExtendableObject +import com.fasterxml.jackson.annotation.JsonInclude import com.fasterxml.jackson.databind.JsonMappingException import com.fasterxml.jackson.databind.ObjectMapper import org.junit.jupiter.api.Assertions @@ -8,7 +10,7 @@ import org.junit.jupiter.api.Test abstract class SerDeTest { - protected val objectMapper = ObjectMapper() + protected val objectMapper = ObjectMapper().setSerializationInclusion(JsonInclude.Include.NON_NULL) protected abstract fun objectClass(): Class diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/ReferenceTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/ReferenceTest.kt index e5075e24..9e49c42d 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/ReferenceTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/ReferenceTest.kt @@ -1,7 +1,7 @@ package com.asyncapi.v2._0_0.model import com.asyncapi.v2.ClasspathUtils -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.fasterxml.jackson.databind.ObjectMapper import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.DisplayName diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/ChannelItemTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/ChannelItemTest.kt index 64d42f9a..c085ab54 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/ChannelItemTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/ChannelItemTest.kt @@ -3,27 +3,27 @@ package com.asyncapi.v2._0_0.model.channel import com.asyncapi.v2.SerDeTest import com.asyncapi.v2._0_0.model.channel.operation.OperationWithMessageTest import com.asyncapi.v2._0_0.model.channel.operation.OperationWithReferenceToMessageTest -import com.asyncapi.v2.schema.Schema -import com.asyncapi.v2.binding.channel.ChannelBinding -import com.asyncapi.v2.binding.channel.amqp.AMQPChannelBindingTest -import com.asyncapi.v2.binding.channel.amqp1.AMQP1ChannelBinding -import com.asyncapi.v2.binding.channel.anypointmq.AnypointMQChannelBindingTest -import com.asyncapi.v2.binding.channel.googlepubsub.GooglePubSubChannelBindingTest -import com.asyncapi.v2.binding.channel.http.HTTPChannelBinding -import com.asyncapi.v2.binding.channel.ibmmq.IBMMQChannelBindingTest -import com.asyncapi.v2.binding.channel.jms.JMSChannelBinding -import com.asyncapi.v2.binding.channel.kafka.KafkaChannelBindingTest -import com.asyncapi.v2.binding.channel.mercure.MercureChannelBinding -import com.asyncapi.v2.binding.channel.mqtt.MQTTChannelBinding -import com.asyncapi.v2.binding.channel.mqtt5.MQTT5ChannelBinding -import com.asyncapi.v2.binding.channel.nats.NATSChannelBinding -import com.asyncapi.v2.binding.channel.pulsar.PulsarChannelBindingTest -import com.asyncapi.v2.binding.channel.redis.RedisChannelBinding -import com.asyncapi.v2.binding.channel.sns.SNSChannelBinding -import com.asyncapi.v2.binding.channel.solace.SolaceChannelBinding -import com.asyncapi.v2.binding.channel.sqs.SQSChannelBinding -import com.asyncapi.v2.binding.channel.stomp.STOMPChannelBinding -import com.asyncapi.v2.binding.channel.ws.WebSocketsChannelBindingTest +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.bindings.ChannelBinding +import com.asyncapi.bindings.amqp.AMQPV0_2_0Test +import com.asyncapi.bindings.amqp1.v0._1_0.channel.AMQP1ChannelBinding +import com.asyncapi.bindings.anypointmq.AnypointMQV0_0_1Test +import com.asyncapi.bindings.googlepubsub.GooglePubSubV0_1_0Test +import com.asyncapi.bindings.http.HTTPV0_3_0Test +import com.asyncapi.bindings.ibmmq.IBMMQV0_1_0Test +import com.asyncapi.bindings.jms.v0._0_1.channel.JMSChannelBinding +import com.asyncapi.bindings.kafka.KafkaV0_5_0Test +import com.asyncapi.bindings.mercure.v0._1_0.channel.MercureChannelBinding +import com.asyncapi.bindings.mqtt.v0._2_0.channel.MQTTChannelBinding +import com.asyncapi.bindings.mqtt5.v0._2_0.channel.MQTT5ChannelBinding +import com.asyncapi.bindings.nats.v0._1_0.channel.NATSChannelBinding +import com.asyncapi.bindings.pulsar.PulsarV0_1_0Test +import com.asyncapi.bindings.redis.v0._1_0.channel.RedisChannelBinding +import com.asyncapi.bindings.sns.SNSV0_1_0Test +import com.asyncapi.bindings.solace.v0._4_0.channel.SolaceChannelBinding +import com.asyncapi.bindings.sqs.SQSV0_2_0Test +import com.asyncapi.bindings.stomp.v0._1_0.channel.STOMPChannelBinding +import com.asyncapi.bindings.websockets.WebSocketsV0_1_0Test class ChannelItemTest: SerDeTest() { @@ -39,7 +39,7 @@ class ChannelItemTest: SerDeTest() { val subscribe = OperationWithReferenceToMessageTest().build() val publish = OperationWithMessageTest().build() val userIdParameter = ParameterTest().build() - userIdParameter.schema = Schema.builder().type("string").build() + userIdParameter.schema = AsyncAPISchema.builder().type("string").build() return ChannelItem.builder() .description("This channel is used to exchange messages about users signing up") @@ -55,25 +55,25 @@ class ChannelItemTest: SerDeTest() { companion object { fun bindings(): Map { return mapOf( - Pair("amqp", AMQPChannelBindingTest().build()), + Pair("amqp", AMQPV0_2_0Test.channelBinding()), Pair("amqp1", AMQP1ChannelBinding()), - Pair("anypointmq", AnypointMQChannelBindingTest().build()), - Pair("googlepubsub", GooglePubSubChannelBindingTest().build()), - Pair("http", HTTPChannelBinding()), - Pair("ibmmq", IBMMQChannelBindingTest().build()), + Pair("anypointmq", AnypointMQV0_0_1Test.channelBinding()), + Pair("googlepubsub", GooglePubSubV0_1_0Test.channelBinding()), + Pair("http", HTTPV0_3_0Test.channelBinding()), + Pair("ibmmq", IBMMQV0_1_0Test.channelBinding()), Pair("jms", JMSChannelBinding()), - Pair("kafka", KafkaChannelBindingTest().build()), + Pair("kafka", KafkaV0_5_0Test.channelBinding()), Pair("mercure", MercureChannelBinding()), Pair("mqtt", MQTTChannelBinding()), Pair("mqtt5", MQTT5ChannelBinding()), Pair("nats", NATSChannelBinding()), - Pair("pulsar", PulsarChannelBindingTest().build()), + Pair("pulsar", PulsarV0_1_0Test.channelBinding()), Pair("redis", RedisChannelBinding()), - Pair("sns", SNSChannelBinding()), + Pair("sns", SNSV0_1_0Test.channelBinding()), Pair("solace", SolaceChannelBinding()), - Pair("sqs", SQSChannelBinding()), + Pair("sqs", SQSV0_2_0Test.channelBinding()), Pair("stomp", STOMPChannelBinding()), - Pair("ws", WebSocketsChannelBindingTest().build()) + Pair("ws", WebSocketsV0_1_0Test.channelBinding()) ) } } diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/ParameterTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/ParameterTest.kt index d0fb8dfa..6b6a16b9 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/ParameterTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/ParameterTest.kt @@ -1,7 +1,7 @@ package com.asyncapi.v2._0_0.model.channel import com.asyncapi.v2.SerDeTest -import com.asyncapi.v2.schema.Schema +import com.asyncapi.schemas.asyncapi.AsyncAPISchema /** * @author Pavel Bodiachevskii @@ -20,7 +20,7 @@ class ParameterTest: SerDeTest() { return Parameter.builder() .description("Id of the user.") .location("\$message.payload#/user/id") - .schema(Schema.builder().type("string").build()) + .schema(AsyncAPISchema.builder().type("string").build()) .build() } diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/message/MessageTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/message/MessageTest.kt index bf0043dd..8a974d6b 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/message/MessageTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/message/MessageTest.kt @@ -2,29 +2,29 @@ package com.asyncapi.v2._0_0.model.channel.message import com.asyncapi.v2.SerDeTest import com.asyncapi.v2._0_0.model.ExternalDocumentation -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2._0_0.model.Tag -import com.asyncapi.v2.schema.Schema -import com.asyncapi.v2.binding.message.MessageBinding -import com.asyncapi.v2.binding.message.amqp.AMQPMessageBindingTest -import com.asyncapi.v2.binding.message.amqp1.AMQP1MessageBinding -import com.asyncapi.v2.binding.message.anypointmq.AnypointMQMessageBindingTest -import com.asyncapi.v2.binding.message.googlepubsub.GooglePubSubMessageBindingTest -import com.asyncapi.v2.binding.message.http.HTTPMessageBindingTest -import com.asyncapi.v2.binding.message.ibmmq.IBMMQMessageBindingTest -import com.asyncapi.v2.binding.message.jms.JMSMessageBinding -import com.asyncapi.v2.binding.message.kafka.KafkaMessageBindingTest -import com.asyncapi.v2.binding.message.mercure.MercureMessageBinding -import com.asyncapi.v2.binding.message.mqtt.MQTTMessageBindingTest -import com.asyncapi.v2.binding.message.mqtt5.MQTT5MessageBinding -import com.asyncapi.v2.binding.message.nats.NATSMessageBinding -import com.asyncapi.v2.binding.message.pulsar.PulsarMessageBinding -import com.asyncapi.v2.binding.message.redis.RedisMessageBinding -import com.asyncapi.v2.binding.message.sns.SNSMessageBinding -import com.asyncapi.v2.binding.message.solace.SolaceMessageBinding -import com.asyncapi.v2.binding.message.sqs.SQSMessageBinding -import com.asyncapi.v2.binding.message.stomp.STOMPMessageBinding -import com.asyncapi.v2.binding.message.ws.WebSocketsMessageBinding +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.bindings.MessageBinding +import com.asyncapi.bindings.amqp.AMQPV0_2_0Test +import com.asyncapi.bindings.amqp1.v0._1_0.message.AMQP1MessageBinding +import com.asyncapi.bindings.anypointmq.AnypointMQV0_0_1Test +import com.asyncapi.bindings.googlepubsub.GooglePubSubV0_1_0Test +import com.asyncapi.bindings.http.HTTPV0_3_0Test +import com.asyncapi.bindings.ibmmq.IBMMQV0_1_0Test +import com.asyncapi.bindings.jms.v0._0_1.message.JMSMessageBinding +import com.asyncapi.bindings.kafka.KafkaV0_5_0Test +import com.asyncapi.bindings.mercure.v0._1_0.message.MercureMessageBinding +import com.asyncapi.bindings.mqtt.MQTTV0_1_0Test +import com.asyncapi.bindings.mqtt5.v0._2_0.message.MQTT5MessageBinding +import com.asyncapi.bindings.nats.v0._1_0.message.NATSMessageBinding +import com.asyncapi.bindings.pulsar.v0._1_0.message.PulsarMessageBinding +import com.asyncapi.bindings.redis.v0._1_0.message.RedisMessageBinding +import com.asyncapi.bindings.sns.v0._1_0.message.SNSMessageBinding +import com.asyncapi.bindings.solace.v0._4_0.message.SolaceMessageBinding +import com.asyncapi.bindings.sqs.SQSV0_2_0Test +import com.asyncapi.bindings.stomp.v0._1_0.message.STOMPMessageBinding +import com.asyncapi.bindings.websockets.v0._1_0.message.WebSocketsMessageBinding /** * @author Pavel Bodiachevskii @@ -41,19 +41,20 @@ class MessageTest: SerDeTest() { override fun build(): Message { return Message.builder() - .headers(Schema.builder() + .headers( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair( "correlationId", - Schema.builder() + AsyncAPISchema.builder() .description("Correlation ID set by application") .type("string") .build() ), Pair( "applicationInstanceId", - Schema.builder() + AsyncAPISchema.builder() .description("Unique identifier for a given instance of the publishing application") .type("string") .build() @@ -61,18 +62,19 @@ class MessageTest: SerDeTest() { )) .build() ) - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair( "user", - Schema.builder() + AsyncAPISchema.builder() .ref("#/components/schemas/userCreate") .build() ), Pair( "signup", - Schema.builder() + AsyncAPISchema.builder() .ref("#/components/schemas/signup") .build() ) @@ -106,7 +108,7 @@ class MessageTest: SerDeTest() { ) )) .traits(listOf( - Reference("#/components/messageTraits/commonHeaders"), + Reference("#/components/messageTraits/commonHeaders"), )) .build() } @@ -114,23 +116,23 @@ class MessageTest: SerDeTest() { companion object { fun bindings(): Map { return mapOf( - Pair("amqp", AMQPMessageBindingTest().build()), + Pair("amqp", AMQPV0_2_0Test.messageBinding()), Pair("amqp1", AMQP1MessageBinding()), - Pair("anypointmq", AnypointMQMessageBindingTest().build()), - Pair("googlepubsub", GooglePubSubMessageBindingTest().build()), - Pair("http", HTTPMessageBindingTest().build()), - Pair("ibmmq", IBMMQMessageBindingTest().build()), + Pair("anypointmq", AnypointMQV0_0_1Test.messageBinding()), + Pair("googlepubsub", GooglePubSubV0_1_0Test.messageBinding()), + Pair("http", HTTPV0_3_0Test.messageBinding()), + Pair("ibmmq", IBMMQV0_1_0Test.messageBinding()), Pair("jms", JMSMessageBinding()), - Pair("kafka", KafkaMessageBindingTest().build()), + Pair("kafka", KafkaV0_5_0Test.messageBinding()), Pair("mercure", MercureMessageBinding()), - Pair("mqtt", MQTTMessageBindingTest().build()), + Pair("mqtt", MQTTV0_1_0Test.messageBinding()), Pair("mqtt5", MQTT5MessageBinding()), Pair("nats", NATSMessageBinding()), Pair("pulsar", PulsarMessageBinding()), Pair("redis", RedisMessageBinding()), Pair("sns", SNSMessageBinding()), Pair("solace", SolaceMessageBinding()), - Pair("sqs", SQSMessageBinding()), + Pair("sqs", SQSV0_2_0Test.messageBinding()), Pair("stomp", STOMPMessageBinding()), Pair("ws", WebSocketsMessageBinding()) ) diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/message/MessageTraitTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/message/MessageTraitTest.kt index 359fd0e4..b5336ca3 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/message/MessageTraitTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/message/MessageTraitTest.kt @@ -3,26 +3,26 @@ package com.asyncapi.v2._0_0.model.channel.message import com.asyncapi.v2.SerDeTest import com.asyncapi.v2._0_0.model.ExternalDocumentation import com.asyncapi.v2._0_0.model.Tag -import com.asyncapi.v2.schema.Schema -import com.asyncapi.v2.binding.message.amqp.AMQPMessageBindingTest -import com.asyncapi.v2.binding.message.amqp1.AMQP1MessageBinding -import com.asyncapi.v2.binding.message.anypointmq.AnypointMQMessageBindingTest -import com.asyncapi.v2.binding.message.googlepubsub.GooglePubSubMessageBindingTest -import com.asyncapi.v2.binding.message.http.HTTPMessageBindingTest -import com.asyncapi.v2.binding.message.ibmmq.IBMMQMessageBindingTest -import com.asyncapi.v2.binding.message.jms.JMSMessageBinding -import com.asyncapi.v2.binding.message.kafka.KafkaMessageBindingTest -import com.asyncapi.v2.binding.message.mercure.MercureMessageBinding -import com.asyncapi.v2.binding.message.mqtt.MQTTMessageBindingTest -import com.asyncapi.v2.binding.message.mqtt5.MQTT5MessageBinding -import com.asyncapi.v2.binding.message.nats.NATSMessageBinding -import com.asyncapi.v2.binding.message.pulsar.PulsarMessageBinding -import com.asyncapi.v2.binding.message.redis.RedisMessageBinding -import com.asyncapi.v2.binding.message.sns.SNSMessageBinding -import com.asyncapi.v2.binding.message.solace.SolaceMessageBinding -import com.asyncapi.v2.binding.message.sqs.SQSMessageBinding -import com.asyncapi.v2.binding.message.stomp.STOMPMessageBinding -import com.asyncapi.v2.binding.message.ws.WebSocketsMessageBinding +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.bindings.amqp.AMQPV0_2_0Test +import com.asyncapi.bindings.amqp1.v0._1_0.message.AMQP1MessageBinding +import com.asyncapi.bindings.anypointmq.AnypointMQV0_0_1Test +import com.asyncapi.bindings.googlepubsub.GooglePubSubV0_1_0Test +import com.asyncapi.bindings.http.HTTPV0_3_0Test +import com.asyncapi.bindings.ibmmq.IBMMQV0_1_0Test +import com.asyncapi.bindings.jms.v0._0_1.message.JMSMessageBinding +import com.asyncapi.bindings.kafka.KafkaV0_5_0Test +import com.asyncapi.bindings.mercure.v0._1_0.message.MercureMessageBinding +import com.asyncapi.bindings.mqtt.MQTTV0_1_0Test +import com.asyncapi.bindings.mqtt5.v0._2_0.message.MQTT5MessageBinding +import com.asyncapi.bindings.nats.v0._1_0.message.NATSMessageBinding +import com.asyncapi.bindings.pulsar.v0._1_0.message.PulsarMessageBinding +import com.asyncapi.bindings.redis.v0._1_0.message.RedisMessageBinding +import com.asyncapi.bindings.sns.v0._1_0.message.SNSMessageBinding +import com.asyncapi.bindings.solace.v0._4_0.message.SolaceMessageBinding +import com.asyncapi.bindings.sqs.SQSV0_2_0Test +import com.asyncapi.bindings.stomp.v0._1_0.message.STOMPMessageBinding +import com.asyncapi.bindings.websockets.v0._1_0.message.WebSocketsMessageBinding /** * @author Pavel Bodiachevskii @@ -39,19 +39,20 @@ class MessageTraitTest: SerDeTest() { override fun build(): MessageTrait { return MessageTrait.builder() - .headers(Schema.builder() + .headers( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair( "correlationId", - Schema.builder() + AsyncAPISchema.builder() .description("Correlation ID set by application") .type("string") .build() ), Pair( "applicationInstanceId", - Schema.builder() + AsyncAPISchema.builder() .description("Unique identifier for a given instance of the publishing application") .type("string") .build() @@ -73,23 +74,23 @@ class MessageTraitTest: SerDeTest() { )) .externalDocs(ExternalDocumentation("User sign up rules", "messages/sign-up-rules")) .bindings(mapOf( - Pair("amqp", AMQPMessageBindingTest().build()), + Pair("amqp", AMQPV0_2_0Test.messageBinding()), Pair("amqp1", AMQP1MessageBinding()), - Pair("anypointmq", AnypointMQMessageBindingTest().build()), - Pair("googlepubsub", GooglePubSubMessageBindingTest().build()), - Pair("http", HTTPMessageBindingTest().build()), - Pair("ibmmq", IBMMQMessageBindingTest().build()), + Pair("anypointmq", AnypointMQV0_0_1Test.messageBinding()), + Pair("googlepubsub", GooglePubSubV0_1_0Test.messageBinding()), + Pair("http", HTTPV0_3_0Test.messageBinding()), + Pair("ibmmq", IBMMQV0_1_0Test.messageBinding()), Pair("jms", JMSMessageBinding()), - Pair("kafka", KafkaMessageBindingTest().build()), + Pair("kafka", KafkaV0_5_0Test.messageBinding()), Pair("mercure", MercureMessageBinding()), - Pair("mqtt", MQTTMessageBindingTest().build()), + Pair("mqtt", MQTTV0_1_0Test.messageBinding()), Pair("mqtt5", MQTT5MessageBinding()), Pair("nats", NATSMessageBinding()), Pair("pulsar", PulsarMessageBinding()), Pair("redis", RedisMessageBinding()), Pair("sns", SNSMessageBinding()), Pair("solace", SolaceMessageBinding()), - Pair("sqs", SQSMessageBinding()), + Pair("sqs", SQSV0_2_0Test.messageBinding()), Pair("stomp", STOMPMessageBinding()), Pair("ws", WebSocketsMessageBinding()) )) diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/operation/OperationTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/operation/OperationTest.kt index 470e1b24..3c42b4d8 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/operation/OperationTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/operation/OperationTest.kt @@ -2,29 +2,29 @@ package com.asyncapi.v2._0_0.model.channel.operation import com.asyncapi.v2.SerDeTest import com.asyncapi.v2._0_0.model.ExternalDocumentation -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2._0_0.model.Tag import com.asyncapi.v2._0_0.model.channel.message.MessageTest -import com.asyncapi.v2.binding.operation.OperationBinding -import com.asyncapi.v2.binding.operation.amqp.AMQPOperationBindingTest -import com.asyncapi.v2.binding.operation.amqp1.AMQP1OperationBinding -import com.asyncapi.v2.binding.operation.anypointmq.AnypointMQOperationBinding -import com.asyncapi.v2.binding.operation.googlepubsub.GooglePubSubOperationBinding -import com.asyncapi.v2.binding.operation.http.HTTPOperationBindingTest -import com.asyncapi.v2.binding.operation.ibmmq.IBMMQOperationBinding -import com.asyncapi.v2.binding.operation.jms.JMSOperationBinding -import com.asyncapi.v2.binding.operation.kafka.KafkaOperationBindingTest -import com.asyncapi.v2.binding.operation.mercure.MercureOperationBinding -import com.asyncapi.v2.binding.operation.mqtt.MQTTOperationBindingTest -import com.asyncapi.v2.binding.operation.mqtt5.MQTT5OperationBinding -import com.asyncapi.v2.binding.operation.nats.NATSOperationBindingTest -import com.asyncapi.v2.binding.operation.pulsar.PulsarOperationBinding -import com.asyncapi.v2.binding.operation.redis.RedisOperationBinding -import com.asyncapi.v2.binding.operation.sns.SNSOperationBinding -import com.asyncapi.v2.binding.operation.solace.SolaceOperationBindingTest -import com.asyncapi.v2.binding.operation.sqs.SQSOperationBinding -import com.asyncapi.v2.binding.operation.stomp.STOMPOperationBinding -import com.asyncapi.v2.binding.operation.ws.WebSocketsOperationBinding +import com.asyncapi.bindings.OperationBinding +import com.asyncapi.bindings.amqp.AMQPV0_2_0Test +import com.asyncapi.bindings.amqp1.v0._1_0.operation.AMQP1OperationBinding +import com.asyncapi.bindings.anypointmq.v0._0_1.operation.AnypointMQOperationBinding +import com.asyncapi.bindings.googlepubsub.GooglePubSubV0_2_0Test +import com.asyncapi.bindings.http.HTTPV0_3_0Test +import com.asyncapi.bindings.ibmmq.v0._1_0.operation.IBMMQOperationBinding +import com.asyncapi.bindings.jms.v0._0_1.operation.JMSOperationBinding +import com.asyncapi.bindings.kafka.KafkaV0_5_0Test +import com.asyncapi.bindings.mercure.v0._1_0.operation.MercureOperationBinding +import com.asyncapi.bindings.mqtt.MQTTV0_1_0Test +import com.asyncapi.bindings.mqtt5.v0._2_0.operation.MQTT5OperationBinding +import com.asyncapi.bindings.nats.NATSV0_1_0Test +import com.asyncapi.bindings.pulsar.v0._1_0.operation.PulsarOperationBinding +import com.asyncapi.bindings.redis.v0._1_0.operation.RedisOperationBinding +import com.asyncapi.bindings.sns.SNSV0_1_0Test +import com.asyncapi.bindings.solace.SolaceV0_4_0Test +import com.asyncapi.bindings.sqs.SQSV0_2_0Test +import com.asyncapi.bindings.stomp.v0._1_0.operation.STOMPOperationBinding +import com.asyncapi.bindings.websockets.v0._1_0.operation.WebSocketsOperationBinding /** * @author Pavel Bodiachevskii @@ -54,7 +54,7 @@ class OperationWithReferenceToMessageTest: SerDeTest() { .externalDocs(ExternalDocumentation("Messages sending rules", "messages/sending-rules")) .bindings(OperationTest.bindings()) .traits(listOf( - Reference("#/components/operationTraits/sendMessage"), + Reference("#/components/operationTraits/sendMessage"), OperationTraitTest().build() )) .message(Reference("#/components/schemas/sendMessage")) @@ -88,7 +88,7 @@ class OperationWithMessageTest: SerDeTest() { .externalDocs(ExternalDocumentation("Messages sending rules", "messages/sending-rules")) .bindings(OperationTest.bindings()) .traits(listOf( - Reference("#/components/operationTraits/sendMessage"), + Reference("#/components/operationTraits/sendMessage"), OperationTraitTest().build() )) .message(MessageTest().build()) @@ -101,23 +101,23 @@ class OperationTest { @JvmStatic fun bindings(): Map { return mapOf( - Pair("amqp", AMQPOperationBindingTest().build()), + Pair("amqp", AMQPV0_2_0Test.operationBinding()), Pair("amqp1", AMQP1OperationBinding()), Pair("anypointmq", AnypointMQOperationBinding()), - Pair("googlepubsub", GooglePubSubOperationBinding()), - Pair("http", HTTPOperationBindingTest().build()), + Pair("googlepubsub", GooglePubSubV0_2_0Test.operationBinding()), + Pair("http", HTTPV0_3_0Test.operationBinding()), Pair("ibmmq", IBMMQOperationBinding()), Pair("jms", JMSOperationBinding()), - Pair("kafka", KafkaOperationBindingTest().build()), + Pair("kafka", KafkaV0_5_0Test.operationBinding()), Pair("mercure", MercureOperationBinding()), - Pair("mqtt", MQTTOperationBindingTest().build()), + Pair("mqtt", MQTTV0_1_0Test.operationBinding()), Pair("mqtt5", MQTT5OperationBinding()), - Pair("nats", NATSOperationBindingTest().build()), + Pair("nats", NATSV0_1_0Test.operationBinding()), Pair("pulsar", PulsarOperationBinding()), Pair("redis", RedisOperationBinding()), - Pair("sns", SNSOperationBinding()), - Pair("solace", SolaceOperationBindingTest().build()), - Pair("sqs", SQSOperationBinding()), + Pair("sns", SNSV0_1_0Test.operationBinding()), + Pair("solace", SolaceV0_4_0Test.operationBinding()), + Pair("sqs", SQSV0_2_0Test.operationBinding()), Pair("stomp", STOMPOperationBinding()), Pair("ws", WebSocketsOperationBinding()) ) diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/operation/OperationTraitTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/operation/OperationTraitTest.kt index 39eee0b2..20af9bdf 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/operation/OperationTraitTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/channel/operation/OperationTraitTest.kt @@ -3,25 +3,26 @@ package com.asyncapi.v2._0_0.model.channel.operation import com.asyncapi.v2.SerDeTest import com.asyncapi.v2._0_0.model.ExternalDocumentation import com.asyncapi.v2._0_0.model.Tag -import com.asyncapi.v2.binding.operation.amqp.AMQPOperationBindingTest -import com.asyncapi.v2.binding.operation.amqp1.AMQP1OperationBinding -import com.asyncapi.v2.binding.operation.anypointmq.AnypointMQOperationBinding -import com.asyncapi.v2.binding.operation.googlepubsub.GooglePubSubOperationBinding -import com.asyncapi.v2.binding.operation.http.HTTPOperationBindingTest -import com.asyncapi.v2.binding.operation.ibmmq.IBMMQOperationBinding -import com.asyncapi.v2.binding.operation.jms.JMSOperationBinding -import com.asyncapi.v2.binding.operation.kafka.KafkaOperationBindingTest -import com.asyncapi.v2.binding.operation.mercure.MercureOperationBinding -import com.asyncapi.v2.binding.operation.mqtt.MQTTOperationBindingTest -import com.asyncapi.v2.binding.operation.mqtt5.MQTT5OperationBinding -import com.asyncapi.v2.binding.operation.nats.NATSOperationBindingTest -import com.asyncapi.v2.binding.operation.pulsar.PulsarOperationBinding -import com.asyncapi.v2.binding.operation.redis.RedisOperationBinding -import com.asyncapi.v2.binding.operation.sns.SNSOperationBinding -import com.asyncapi.v2.binding.operation.solace.SolaceOperationBindingTest -import com.asyncapi.v2.binding.operation.sqs.SQSOperationBinding -import com.asyncapi.v2.binding.operation.stomp.STOMPOperationBinding -import com.asyncapi.v2.binding.operation.ws.WebSocketsOperationBinding +import com.asyncapi.bindings.amqp.AMQPV0_2_0Test +import com.asyncapi.bindings.amqp1.v0._1_0.operation.AMQP1OperationBinding +import com.asyncapi.bindings.anypointmq.v0._0_1.operation.AnypointMQOperationBinding +import com.asyncapi.bindings.googlepubsub.GooglePubSubV0_2_0Test +import com.asyncapi.bindings.http.HTTPV0_3_0Test +import com.asyncapi.bindings.ibmmq.v0._1_0.operation.IBMMQOperationBinding +import com.asyncapi.bindings.jms.v0._0_1.operation.JMSOperationBinding +import com.asyncapi.bindings.kafka.KafkaV0_5_0Test +import com.asyncapi.bindings.mercure.v0._1_0.operation.MercureOperationBinding +import com.asyncapi.bindings.mqtt.MQTTV0_1_0Test +import com.asyncapi.bindings.mqtt5.v0._2_0.operation.MQTT5OperationBinding +import com.asyncapi.bindings.nats.NATSV0_1_0Test +import com.asyncapi.bindings.pulsar.v0._1_0.operation.PulsarOperationBinding +import com.asyncapi.bindings.redis.v0._1_0.operation.RedisOperationBinding +import com.asyncapi.bindings.sns.v0._1_0.operation.SNSOperationBinding +import com.asyncapi.bindings.solace.SolaceV0_4_0Test +import com.asyncapi.bindings.sqs.SQSV0_2_0Test +import com.asyncapi.bindings.sqs.v0._1_0.operation.SQSOperationBinding +import com.asyncapi.bindings.stomp.v0._1_0.operation.STOMPOperationBinding +import com.asyncapi.bindings.websockets.v0._1_0.operation.WebSocketsOperationBinding /** * @author Pavel Bodiachevskii @@ -50,23 +51,23 @@ class OperationTraitTest: SerDeTest() { )) .externalDocs(ExternalDocumentation("Messages sending rules", "messages/sending-rules")) .bindings(mapOf( - Pair("amqp", AMQPOperationBindingTest().build()), + Pair("amqp", AMQPV0_2_0Test.operationBinding()), Pair("amqp1", AMQP1OperationBinding()), Pair("anypointmq", AnypointMQOperationBinding()), - Pair("googlepubsub", GooglePubSubOperationBinding()), - Pair("http", HTTPOperationBindingTest().build()), + Pair("googlepubsub", GooglePubSubV0_2_0Test.operationBinding()), + Pair("http", HTTPV0_3_0Test.operationBinding()), Pair("ibmmq", IBMMQOperationBinding()), Pair("jms", JMSOperationBinding()), - Pair("kafka", KafkaOperationBindingTest().build()), + Pair("kafka", KafkaV0_5_0Test.operationBinding()), Pair("mercure", MercureOperationBinding()), - Pair("mqtt", MQTTOperationBindingTest().build()), + Pair("mqtt", MQTTV0_1_0Test.operationBinding()), Pair("mqtt5", MQTT5OperationBinding()), - Pair("nats", NATSOperationBindingTest().build()), + Pair("nats", NATSV0_1_0Test.operationBinding()), Pair("pulsar", PulsarOperationBinding()), Pair("redis", RedisOperationBinding()), Pair("sns", SNSOperationBinding()), - Pair("solace", SolaceOperationBindingTest().build()), - Pair("sqs", SQSOperationBinding()), + Pair("solace", SolaceV0_4_0Test.operationBinding()), + Pair("sqs", SQSV0_2_0Test.operationBinding()), Pair("stomp", STOMPOperationBinding()), Pair("ws", WebSocketsOperationBinding()) )) diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/component/ComponentsTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/component/ComponentsTest.kt index 630ef078..3b3987e8 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/component/ComponentsTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/component/ComponentsTest.kt @@ -1,7 +1,7 @@ package com.asyncapi.v2._0_0.model.component import com.asyncapi.v2.SerDeTest -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2._0_0.model.channel.ChannelItemTest import com.asyncapi.v2._0_0.model.channel.ParameterTest import com.asyncapi.v2._0_0.model.channel.message.CorrelationIdTest @@ -9,15 +9,15 @@ import com.asyncapi.v2._0_0.model.channel.message.MessageTest import com.asyncapi.v2._0_0.model.channel.message.MessageTraitTest import com.asyncapi.v2._0_0.model.channel.operation.OperationTest import com.asyncapi.v2._0_0.model.channel.operation.OperationTraitTest -import com.asyncapi.v2.schema.Schema -import com.asyncapi.v2.schema.Type +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.Type import com.asyncapi.v2._0_0.model.server.ServerTest -import com.asyncapi.v2.security_scheme.ApiKeySecuritySchemeTest -import com.asyncapi.v2.security_scheme.OpenIdConnectSecuritySchemeTest -import com.asyncapi.v2.security_scheme.http.HttpApiKeySecuritySchemeTest -import com.asyncapi.v2.security_scheme.http.HttpSecuritySchemeBasicTest -import com.asyncapi.v2.security_scheme.http.HttpSecuritySchemeBearerTest -import com.asyncapi.v2.security_scheme.oauth2.OAuth2SecuritySchemeTest +import com.asyncapi.schemas.security.v2.ApiKeySecuritySchemeTest +import com.asyncapi.schemas.security.v2.OpenIdConnectSecuritySchemeTest +import com.asyncapi.schemas.security.v2.http.HttpApiKeySecuritySchemeTest +import com.asyncapi.schemas.security.v2.http.HttpSecuritySchemeBasicTest +import com.asyncapi.schemas.security.v2.http.HttpSecuritySchemeBearerTest +import com.asyncapi.schemas.security.v2.oauth2.OAuth2SecuritySchemeTest /** * @author Pavel Bodiachevskii @@ -35,47 +35,69 @@ class ComponentsTest: SerDeTest() { override fun build(): Components { return Components.builder() .schemas(mapOf( - Pair("Category", Schema.builder() + Pair("Category", AsyncAPISchema.builder() .type(Type.OBJECT) .properties(mapOf( - Pair("id", Schema.builder().type(Type.INTEGER).format("int64").build()), - Pair("name", Schema.builder().type(Type.STRING).build()) + Pair("id", AsyncAPISchema.builder().type(Type.INTEGER).format("int64").build()), + Pair("name", AsyncAPISchema.builder().type(Type.STRING).build()) )) .build() ), - Pair("Tag", Schema.builder() + Pair("Tag", AsyncAPISchema.builder() .type(Type.OBJECT) .properties(mapOf( - Pair("id", Schema.builder().type(Type.INTEGER).format("int64").build()), - Pair("name", Schema.builder().type(Type.STRING).build()) + Pair("id", AsyncAPISchema.builder().type(Type.INTEGER).format("int64").build()), + Pair("name", AsyncAPISchema.builder().type(Type.STRING).build()) )) .build() ), - Pair("User", Reference("#/components/schemas/user")) + Pair("User", + Reference("#/components/schemas/user") + ) )) .messages(mapOf( Pair("userSignup", MessageTest().build()), - Pair("userSignout", Reference("#/components/messages/userSignout")) + Pair("userSignout", + Reference("#/components/messages/userSignout") + ) )) .securitySchemes(mapOf( Pair("apiKey", ApiKeySecuritySchemeTest().build()), - Pair("asymmetricEncryption", Reference("#/components/securitySchemes/asymmetricEncryption")), - Pair("gssapi", Reference("#/components/securitySchemes/gssapi")), + Pair("asymmetricEncryption", + Reference("#/components/securitySchemes/asymmetricEncryption") + ), + Pair("gssapi", + Reference("#/components/securitySchemes/gssapi") + ), Pair("oauth2", OAuth2SecuritySchemeTest().build()), Pair("openIdConnect", OpenIdConnectSecuritySchemeTest().build()), Pair("httpApiKey", HttpApiKeySecuritySchemeTest().build()), Pair("httpBasic", HttpSecuritySchemeBasicTest().build()), Pair("httpBearer", HttpSecuritySchemeBearerTest().build()), - Pair("plain", Reference("#/components/securitySchemes/plain")), - Pair("scramSha256", Reference("#/components/securitySchemes/scramSha256")), - Pair("scramSha512", Reference("#/components/securitySchemes/scramSha512")), - Pair("symmetricEncryption", Reference("#/components/securitySchemes/symmetricEncryption")), - Pair("userPassword", Reference("#/components/securitySchemes/userPassword")), - Pair("X509", Reference("#/components/securitySchemes/X509")), + Pair("plain", + Reference("#/components/securitySchemes/plain") + ), + Pair("scramSha256", + Reference("#/components/securitySchemes/scramSha256") + ), + Pair("scramSha512", + Reference("#/components/securitySchemes/scramSha512") + ), + Pair("symmetricEncryption", + Reference("#/components/securitySchemes/symmetricEncryption") + ), + Pair("userPassword", + Reference("#/components/securitySchemes/userPassword") + ), + Pair("X509", + Reference("#/components/securitySchemes/X509") + ), )) .parameters(mapOf( Pair("parameter", ParameterTest().build()), - Pair("parameterRef", Reference("#/components/parameters/parameter")) + Pair("parameterRef", + Reference("#/components/parameters/parameter") + ) )) .correlationIds(mapOf( Pair("userSignupCorrelationId", CorrelationIdTest().build()), diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/server/ServerTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/server/ServerTest.kt index a975182e..dd566e37 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/server/ServerTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_0_0/model/server/ServerTest.kt @@ -1,26 +1,26 @@ package com.asyncapi.v2._0_0.model.server import com.asyncapi.v2.SerDeTest -import com.asyncapi.v2.binding.server.ServerBinding -import com.asyncapi.v2.binding.server.amqp1.AMQP1ServerBinding -import com.asyncapi.v2.binding.server.anypointmq.AnypointMQServerBinding -import com.asyncapi.v2.binding.server.googlepubsub.GooglePubSubServerBinding -import com.asyncapi.v2.binding.server.http.HTTPServerBinding -import com.asyncapi.v2.binding.server.ibmmq.IBMMQServerBinding -import com.asyncapi.v2.binding.server.jms.JMSServerBinding -import com.asyncapi.v2.binding.server.kafka.KafkaServerBinding -import com.asyncapi.v2.binding.server.mercure.MercureServerBinding -import com.asyncapi.v2.binding.server.mqtt.MQTTServerBinding -import com.asyncapi.v2.binding.server.mqtt.MQTTServerLastWillConfiguration -import com.asyncapi.v2.binding.server.mqtt5.MQTT5ServerBinding -import com.asyncapi.v2.binding.server.nats.NATSServerBinding -import com.asyncapi.v2.binding.server.pulsar.PulsarServerBinding -import com.asyncapi.v2.binding.server.redis.RedisServerBinding -import com.asyncapi.v2.binding.server.sns.SNSServerBinding -import com.asyncapi.v2.binding.server.solace.SolaceServerBinding -import com.asyncapi.v2.binding.server.sqs.SQSServerBinding -import com.asyncapi.v2.binding.server.stomp.STOMPServerBinding -import com.asyncapi.v2.binding.server.ws.WebSocketsServerBinding +import com.asyncapi.bindings.ServerBinding +import com.asyncapi.bindings.amqp1.v0._1_0.server.AMQP1ServerBinding +import com.asyncapi.bindings.anypointmq.v0._0_1.server.AnypointMQServerBinding +import com.asyncapi.bindings.googlepubsub.GooglePubSubV0_2_0Test +import com.asyncapi.bindings.http.HTTPV0_3_0Test +import com.asyncapi.bindings.ibmmq.v0._1_0.server.IBMMQServerBinding +import com.asyncapi.bindings.jms.v0._0_1.server.JMSServerBinding +import com.asyncapi.bindings.kafka.v0._5_0.server.KafkaServerBinding +import com.asyncapi.bindings.mercure.v0._1_0.server.MercureServerBinding +import com.asyncapi.bindings.mqtt.v0._1_0.server.MQTTServerBinding +import com.asyncapi.bindings.mqtt.v0._1_0.server.MQTTServerLastWillConfiguration +import com.asyncapi.bindings.mqtt5.v0._2_0.server.MQTT5ServerBinding +import com.asyncapi.bindings.nats.v0._1_0.server.NATSServerBinding +import com.asyncapi.bindings.pulsar.v0._1_0.server.PulsarServerBinding +import com.asyncapi.bindings.redis.v0._1_0.server.RedisServerBinding +import com.asyncapi.bindings.sns.v0._1_0.server.SNSServerBinding +import com.asyncapi.bindings.solace.v0._4_0.server.SolaceServerBinding +import com.asyncapi.bindings.sqs.SQSV0_2_0Test +import com.asyncapi.bindings.stomp.v0._1_0.server.STOMPServerBinding +import com.asyncapi.bindings.websockets.v0._1_0.server.WebSocketsServerBinding /** * @author Pavel Bodiachevskii @@ -64,8 +64,8 @@ class ServerTest: SerDeTest() { return mapOf( Pair("amqp1", AMQP1ServerBinding()), Pair("anypointmq", AnypointMQServerBinding()), - Pair("googlepubsub", GooglePubSubServerBinding()), - Pair("http", HTTPServerBinding()), + Pair("googlepubsub", GooglePubSubV0_2_0Test.serverBinding()), + Pair("http", HTTPV0_3_0Test.serverBinding()), Pair( "ibmmq", IBMMQServerBinding.builder() @@ -111,13 +111,12 @@ class ServerTest: SerDeTest() { ), Pair("redis", RedisServerBinding()), Pair("sns", SNSServerBinding()), - Pair( - "solace", - SolaceServerBinding.builder() - .msgVpn("solace.private.net") - .build() + Pair("solace", SolaceServerBinding.builder() + .msgVpn("ProdVPN") + .clientName("transactions-broker") + .build() ), - Pair("sqs", SQSServerBinding()), + Pair("sqs", SQSV0_2_0Test.serverBinding()), Pair("stomp", STOMPServerBinding()), Pair("ws", WebSocketsServerBinding()), ) diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/AsyncAPITest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/AsyncAPITest.kt index 57300656..dcab9dda 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/AsyncAPITest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/AsyncAPITest.kt @@ -1,6 +1,6 @@ package com.asyncapi.v2._6_0.model -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2.SerDeTest import com.asyncapi.v2._6_0.model.channel.ChannelItemTest import com.asyncapi.v2._6_0.model.component.ComponentsTest @@ -27,7 +27,9 @@ class AsyncAPITest: SerDeTest() { InfoTest().build(), mapOf( Pair("stage", ServerTest().build()), - Pair("stage-2", Reference("#/components/servers/stage-2")) + Pair("stage-2", + Reference("#/components/servers/stage-2") + ) ), "application/json", mapOf( diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/ReferenceTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/ReferenceTest.kt index aa1199db..3ab6c686 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/ReferenceTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/ReferenceTest.kt @@ -1,7 +1,7 @@ package com.asyncapi.v2._6_0.model import com.asyncapi.v2.ClasspathUtils -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.fasterxml.jackson.databind.ObjectMapper import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.DisplayName diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/ChannelItemTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/ChannelItemTest.kt index 887452a9..d5f801e2 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/ChannelItemTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/ChannelItemTest.kt @@ -1,17 +1,17 @@ package com.asyncapi.v2._6_0.model.channel -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2.SerDeTest import com.asyncapi.v2._6_0.model.channel.operation.OperationWithMessageTest import com.asyncapi.v2._6_0.model.channel.operation.OperationWithOneOfMessageTest -import com.asyncapi.v2.schema.Schema -import com.asyncapi.v2.binding.channel.amqp.AMQPChannelBindingTest -import com.asyncapi.v2.binding.channel.anypointmq.AnypointMQChannelBindingTest -import com.asyncapi.v2.binding.channel.googlepubsub.GooglePubSubChannelBindingTest -import com.asyncapi.v2.binding.channel.ibmmq.IBMMQChannelBindingTest -import com.asyncapi.v2.binding.channel.kafka.KafkaChannelBindingTest -import com.asyncapi.v2.binding.channel.pulsar.PulsarChannelBindingTest -import com.asyncapi.v2.binding.channel.ws.WebSocketsChannelBindingTest +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.bindings.amqp.AMQPV0_2_0Test +import com.asyncapi.bindings.anypointmq.AnypointMQV0_0_1Test +import com.asyncapi.bindings.googlepubsub.GooglePubSubV0_1_0Test +import com.asyncapi.bindings.ibmmq.IBMMQV0_1_0Test +import com.asyncapi.bindings.kafka.KafkaV0_5_0Test +import com.asyncapi.bindings.pulsar.PulsarV0_1_0Test +import com.asyncapi.bindings.websockets.WebSocketsV0_1_0Test class ChannelItemTest: SerDeTest() { @@ -27,7 +27,7 @@ class ChannelItemTest: SerDeTest() { val subscribe = OperationWithOneOfMessageTest().build() val publish = OperationWithMessageTest().build() val userIdParameter = ParameterWithSchemaTest().build() - userIdParameter.schema = Schema.builder().type("string").build() + userIdParameter.schema = AsyncAPISchema.builder().type("string").build() return ChannelItem.builder() .description("This channel is used to exchange messages about users signing up") @@ -44,25 +44,49 @@ class ChannelItemTest: SerDeTest() { companion object { fun bindings(): Map { return mapOf( - Pair("amqp", AMQPChannelBindingTest().build()), - Pair("amqp1", Reference("#/components/channelBindings/amqp1")), - Pair("anypointmq", AnypointMQChannelBindingTest().build()), - Pair("googlepubsub", GooglePubSubChannelBindingTest().build()), - Pair("http", Reference("#/components/channelBindings/http")), - Pair("ibmmq", IBMMQChannelBindingTest().build()), - Pair("jms", Reference("#/components/channelBindings/jms")), - Pair("kafka", KafkaChannelBindingTest().build()), - Pair("mercure", Reference("#/components/channelBindings/mercure")), - Pair("mqtt", Reference("#/components/channelBindings/mqtt")), - Pair("mqtt5", Reference("#/components/channelBindings/mqtt5")), - Pair("nats", Reference("#/components/channelBindings/nats")), - Pair("pulsar", PulsarChannelBindingTest().build()), - Pair("redis", Reference("#/components/channelBindings/redis")), - Pair("sns", Reference("#/components/channelBindings/sns")), - Pair("solace", Reference("#/components/channelBindings/solace")), - Pair("sqs", Reference("#/components/channelBindings/sqs")), - Pair("stomp", Reference("#/components/channelBindings/stomp")), - Pair("ws", WebSocketsChannelBindingTest().build()) + Pair("amqp", AMQPV0_2_0Test.channelBinding()), + Pair("amqp1", + Reference("#/components/channelBindings/amqp1") + ), + Pair("anypointmq", AnypointMQV0_0_1Test.channelBinding()), + Pair("googlepubsub", GooglePubSubV0_1_0Test.channelBinding()), + Pair("http", + Reference("#/components/channelBindings/http") + ), + Pair("ibmmq", IBMMQV0_1_0Test.channelBinding()), + Pair("jms", + Reference("#/components/channelBindings/jms") + ), + Pair("kafka", KafkaV0_5_0Test.channelBinding()), + Pair("mercure", + Reference("#/components/channelBindings/mercure") + ), + Pair("mqtt", + Reference("#/components/channelBindings/mqtt") + ), + Pair("mqtt5", + Reference("#/components/channelBindings/mqtt5") + ), + Pair("nats", + Reference("#/components/channelBindings/nats") + ), + Pair("pulsar", PulsarV0_1_0Test.channelBinding()), + Pair("redis", + Reference("#/components/channelBindings/redis") + ), + Pair("sns", + Reference("#/components/channelBindings/sns") + ), + Pair("solace", + Reference("#/components/channelBindings/solace") + ), + Pair("sqs", + Reference("#/components/channelBindings/sqs") + ), + Pair("stomp", + Reference("#/components/channelBindings/stomp") + ), + Pair("ws", WebSocketsV0_1_0Test.channelBinding()) ) } } diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/ParameterTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/ParameterTest.kt index 2997d669..fa227c18 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/ParameterTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/ParameterTest.kt @@ -1,8 +1,8 @@ package com.asyncapi.v2._6_0.model.channel -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2.SerDeTest -import com.asyncapi.v2.schema.Schema +import com.asyncapi.schemas.asyncapi.AsyncAPISchema class ParameterWithReferenceToSchemaTest: SerDeTest() { @@ -38,7 +38,7 @@ class ParameterWithSchemaTest: SerDeTest() { return Parameter.builder() .description("Id of the user.") .location("\$message.payload#/user/id") - .schema(Schema.builder().type("string").build()) + .schema(AsyncAPISchema.builder().type("string").build()) .build() } diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/message/MessageTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/message/MessageTest.kt index 61cb7557..f526d57b 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/message/MessageTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/message/MessageTest.kt @@ -1,17 +1,17 @@ package com.asyncapi.v2._6_0.model.channel.message -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2.SerDeTest import com.asyncapi.v2._6_0.model.ExternalDocumentation import com.asyncapi.v2._6_0.model.Tag -import com.asyncapi.v2.schema.Schema -import com.asyncapi.v2.binding.message.amqp.AMQPMessageBindingTest -import com.asyncapi.v2.binding.message.anypointmq.AnypointMQMessageBindingTest -import com.asyncapi.v2.binding.message.googlepubsub.GooglePubSubMessageBindingTest -import com.asyncapi.v2.binding.message.http.HTTPMessageBindingTest -import com.asyncapi.v2.binding.message.ibmmq.IBMMQMessageBindingTest -import com.asyncapi.v2.binding.message.kafka.KafkaMessageBindingTest -import com.asyncapi.v2.binding.message.mqtt.MQTTMessageBindingTest +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.bindings.amqp.AMQPV0_2_0Test +import com.asyncapi.bindings.anypointmq.AnypointMQV0_0_1Test +import com.asyncapi.bindings.googlepubsub.GooglePubSubV0_1_0Test +import com.asyncapi.bindings.http.HTTPV0_3_0Test +import com.asyncapi.bindings.ibmmq.IBMMQV0_1_0Test +import com.asyncapi.bindings.kafka.KafkaV0_5_0Test +import com.asyncapi.bindings.mqtt.MQTTV0_1_0Test class MessageTest: SerDeTest() { @@ -26,19 +26,20 @@ class MessageTest: SerDeTest() { override fun build(): Message { return Message.builder() .messageId("userSignup") - .headers(Schema.builder() + .headers( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair( "correlationId", - Schema.builder() + AsyncAPISchema.builder() .description("Correlation ID set by application") .type("string") .build() ), Pair( "applicationInstanceId", - Schema.builder() + AsyncAPISchema.builder() .description("Unique identifier for a given instance of the publishing application") .type("string") .build() @@ -46,18 +47,19 @@ class MessageTest: SerDeTest() { )) .build() ) - .payload(Schema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair( "user", - Schema.builder() + AsyncAPISchema.builder() .ref("#/components/schemas/userCreate") .build() ), Pair( "signup", - Schema.builder() + AsyncAPISchema.builder() .ref("#/components/schemas/signup") .build() ) @@ -65,7 +67,7 @@ class MessageTest: SerDeTest() { .build() ) .correlationId(CorrelationId("Default Correlation ID", "\$message.header#/correlationId")) - .schemaFormat("application/vnd.apache.avro+json;version=1.9.0") + .schemaFormat("application/vnd.aai.asyncapi;version=2.6.0") .contentType("application/json") .name("UserSignup") .title("User signup") @@ -80,7 +82,7 @@ class MessageTest: SerDeTest() { .bindings(bindings()) .examples(listOf(MessageExampleTest().build())) .traits(listOf( - Reference("#/components/messageTraits/commonHeaders"), + Reference("#/components/messageTraits/commonHeaders"), )) .build() } @@ -88,25 +90,49 @@ class MessageTest: SerDeTest() { companion object { fun bindings(): Map { return mapOf( - Pair("amqp", AMQPMessageBindingTest().build()), - Pair("amqp1", Reference("#/components/messageBindings/amqp1")), - Pair("anypointmq", AnypointMQMessageBindingTest().build()), - Pair("googlepubsub", GooglePubSubMessageBindingTest().build()), - Pair("http", HTTPMessageBindingTest().build()), - Pair("ibmmq", IBMMQMessageBindingTest().build()), - Pair("jms", Reference("#/components/messageBindings/jms")), - Pair("kafka", KafkaMessageBindingTest().build()), - Pair("mercure", Reference("#/components/messageBindings/mercure")), - Pair("mqtt", MQTTMessageBindingTest().build()), - Pair("mqtt5", Reference("#/components/messageBindings/mqtt5")), - Pair("nats", Reference("#/components/messageBindings/nats")), - Pair("pulsar", Reference("#/components/messageBindings/pulsar")), - Pair("redis", Reference("#/components/messageBindings/redis")), - Pair("sns", Reference("#/components/messageBindings/sns")), - Pair("solace", Reference("#/components/messageBindings/solace")), - Pair("sqs", Reference("#/components/messageBindings/sqs")), - Pair("stomp", Reference("#/components/messageBindings/stomp")), - Pair("ws", Reference("#/components/messageBindings/ws")) + Pair("amqp", AMQPV0_2_0Test.messageBinding()), + Pair("amqp1", + Reference("#/components/messageBindings/amqp1") + ), + Pair("anypointmq", AnypointMQV0_0_1Test.messageBinding()), + Pair("googlepubsub", GooglePubSubV0_1_0Test.messageBinding()), + Pair("http", HTTPV0_3_0Test.messageBinding()), + Pair("ibmmq", IBMMQV0_1_0Test.messageBinding()), + Pair("jms", + Reference("#/components/messageBindings/jms") + ), + Pair("kafka", KafkaV0_5_0Test.messageBinding()), + Pair("mercure", + Reference("#/components/messageBindings/mercure") + ), + Pair("mqtt", MQTTV0_1_0Test.messageBinding()), + Pair("mqtt5", + Reference("#/components/messageBindings/mqtt5") + ), + Pair("nats", + Reference("#/components/messageBindings/nats") + ), + Pair("pulsar", + Reference("#/components/messageBindings/pulsar") + ), + Pair("redis", + Reference("#/components/messageBindings/redis") + ), + Pair("sns", + Reference("#/components/messageBindings/sns") + ), + Pair("solace", + Reference("#/components/messageBindings/solace") + ), + Pair("sqs", + Reference("#/components/messageBindings/sqs") + ), + Pair("stomp", + Reference("#/components/messageBindings/stomp") + ), + Pair("ws", + Reference("#/components/messageBindings/ws") + ) ) } } diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/message/MessageTraitTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/message/MessageTraitTest.kt index 2b5dce28..2162a8cf 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/message/MessageTraitTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/message/MessageTraitTest.kt @@ -1,17 +1,17 @@ package com.asyncapi.v2._6_0.model.channel.message -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2.SerDeTest import com.asyncapi.v2._6_0.model.ExternalDocumentation import com.asyncapi.v2._6_0.model.Tag -import com.asyncapi.v2.schema.Schema -import com.asyncapi.v2.binding.message.amqp.AMQPMessageBindingTest -import com.asyncapi.v2.binding.message.anypointmq.AnypointMQMessageBindingTest -import com.asyncapi.v2.binding.message.googlepubsub.GooglePubSubMessageBindingTest -import com.asyncapi.v2.binding.message.http.HTTPMessageBindingTest -import com.asyncapi.v2.binding.message.ibmmq.IBMMQMessageBindingTest -import com.asyncapi.v2.binding.message.kafka.KafkaMessageBindingTest -import com.asyncapi.v2.binding.message.mqtt.MQTTMessageBindingTest +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.bindings.amqp.AMQPV0_2_0Test +import com.asyncapi.bindings.anypointmq.AnypointMQV0_0_1Test +import com.asyncapi.bindings.googlepubsub.GooglePubSubV0_1_0Test +import com.asyncapi.bindings.http.HTTPV0_3_0Test +import com.asyncapi.bindings.ibmmq.IBMMQV0_1_0Test +import com.asyncapi.bindings.kafka.KafkaV0_5_0Test +import com.asyncapi.bindings.mqtt.MQTTV0_1_0Test class MessageTraitTest: SerDeTest() { @@ -26,19 +26,20 @@ class MessageTraitTest: SerDeTest() { override fun build(): MessageTrait { return MessageTrait.builder() .messageId("userSignup") - .headers(Schema.builder() + .headers( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair( "correlationId", - Schema.builder() + AsyncAPISchema.builder() .description("Correlation ID set by application") .type("string") .build() ), Pair( "applicationInstanceId", - Schema.builder() + AsyncAPISchema.builder() .description("Unique identifier for a given instance of the publishing application") .type("string") .build() @@ -47,7 +48,7 @@ class MessageTraitTest: SerDeTest() { .build() ) .correlationId(CorrelationId("Default Correlation ID", "\$message.header#/correlationId")) - .schemaFormat("application/vnd.apache.avro+json;version=1.9.0") + .schemaFormat("application/vnd.aai.asyncapi;version=2.6.0") .contentType("application/json") .name("UserSignup") .title("User signup") @@ -60,25 +61,49 @@ class MessageTraitTest: SerDeTest() { )) .externalDocs(ExternalDocumentation("User sign up rules", "messages/sign-up-rules")) .bindings(mapOf( - Pair("amqp", AMQPMessageBindingTest().build()), - Pair("amqp1", Reference("#/components/messageBindings/amqp1")), - Pair("anypointmq", AnypointMQMessageBindingTest().build()), - Pair("googlepubsub", GooglePubSubMessageBindingTest().build()), - Pair("http", HTTPMessageBindingTest().build()), - Pair("ibmmq", IBMMQMessageBindingTest().build()), - Pair("jms", Reference("#/components/messageBindings/jms")), - Pair("kafka", KafkaMessageBindingTest().build()), - Pair("mercure", Reference("#/components/messageBindings/mercure")), - Pair("mqtt", MQTTMessageBindingTest().build()), - Pair("mqtt5", Reference("#/components/messageBindings/mqtt5")), - Pair("nats", Reference("#/components/messageBindings/nats")), - Pair("pulsar", Reference("#/components/messageBindings/pulsar")), - Pair("redis", Reference("#/components/messageBindings/redis")), - Pair("sns", Reference("#/components/messageBindings/sns")), - Pair("solace", Reference("#/components/messageBindings/solace")), - Pair("sqs", Reference("#/components/messageBindings/sqs")), - Pair("stomp", Reference("#/components/messageBindings/stomp")), - Pair("ws", Reference("#/components/messageBindings/ws")) + Pair("amqp", AMQPV0_2_0Test.messageBinding()), + Pair("amqp1", + Reference("#/components/messageBindings/amqp1") + ), + Pair("anypointmq", AnypointMQV0_0_1Test.messageBinding()), + Pair("googlepubsub", GooglePubSubV0_1_0Test.messageBinding()), + Pair("http", HTTPV0_3_0Test.messageBinding()), + Pair("ibmmq", IBMMQV0_1_0Test.messageBinding()), + Pair("jms", + Reference("#/components/messageBindings/jms") + ), + Pair("kafka", KafkaV0_5_0Test.messageBinding()), + Pair("mercure", + Reference("#/components/messageBindings/mercure") + ), + Pair("mqtt", MQTTV0_1_0Test.messageBinding()), + Pair("mqtt5", + Reference("#/components/messageBindings/mqtt5") + ), + Pair("nats", + Reference("#/components/messageBindings/nats") + ), + Pair("pulsar", + Reference("#/components/messageBindings/pulsar") + ), + Pair("redis", + Reference("#/components/messageBindings/redis") + ), + Pair("sns", + Reference("#/components/messageBindings/sns") + ), + Pair("solace", + Reference("#/components/messageBindings/solace") + ), + Pair("sqs", + Reference("#/components/messageBindings/sqs") + ), + Pair("stomp", + Reference("#/components/messageBindings/stomp") + ), + Pair("ws", + Reference("#/components/messageBindings/ws") + ) )) .examples(listOf(MessageExampleTest().build())) .build() diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/message/MessageWithArrayPayloadTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/message/MessageWithArrayPayloadTest.kt index 200e7eff..b7fc1a35 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/message/MessageWithArrayPayloadTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/message/MessageWithArrayPayloadTest.kt @@ -1,7 +1,7 @@ package com.asyncapi.v2._6_0.model.channel.message import com.asyncapi.v2.ClasspathUtils -import com.asyncapi.v2.schema.Schema +import com.asyncapi.schemas.asyncapi.AsyncAPISchema import com.fasterxml.jackson.databind.ObjectMapper import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Test @@ -14,9 +14,9 @@ class MessageWithArrayPayloadTest { @DisplayName("Test array items property is parsed as a schema object") fun testArrayItemsPropertyIsParsedAsSchemaObjectWhenItIsASingleJsonSchema() { val model = ClasspathUtils.readAsString("/json/v2/2.6.0/model/channel/message/messageWithArrayPayloadJsonSchema.json") - val schema = objectMapper.readValue(model, Message::class.java).payload as Schema + val schema = objectMapper.readValue(model, Message::class.java).payload as AsyncAPISchema assertTrue( - schema.items is Schema + schema.items is AsyncAPISchema ) } @@ -24,7 +24,7 @@ class MessageWithArrayPayloadTest { @DisplayName("Test array items property is parsed as list of schemas") fun testArrayItemsPropertyIsParsedAsArrayListOfSchemasWhenItIsAnArrayOfSchemas() { val model = ClasspathUtils.readAsString("/json/v2/2.6.0/model/channel/message/messageWithArrayPayloadArrayOfSchemas.json") - val schema = objectMapper.readValue(model, Message::class.java).payload as Schema - assertTrue(schema.items is ArrayList<*> && (schema.items as ArrayList<*>).all { it is Schema }) + val schema = objectMapper.readValue(model, Message::class.java).payload as AsyncAPISchema + assertTrue(schema.items is ArrayList<*> && (schema.items as ArrayList<*>).all { it is AsyncAPISchema }) } } \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/message/OneOfMessagesTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/message/OneOfMessagesTest.kt index 40a4f6a6..82edef60 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/message/OneOfMessagesTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/message/OneOfMessagesTest.kt @@ -1,7 +1,7 @@ package com.asyncapi.v2._6_0.model.channel.message import com.asyncapi.v2.ClasspathUtils -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.fasterxml.jackson.databind.ObjectMapper import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.DisplayName @@ -26,7 +26,7 @@ class OneOfMessagesTest { @JvmStatic fun build(): OneOfMessages { return OneOfMessages(listOf( - Reference("#/components/schemas/sendMessage"), + Reference("#/components/schemas/sendMessage"), MessageTest().build() )) } diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/operation/OperationTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/operation/OperationTest.kt index 1b9ecb4f..6ea70aab 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/operation/OperationTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/operation/OperationTest.kt @@ -1,17 +1,17 @@ package com.asyncapi.v2._6_0.model.channel.operation -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2.SerDeTest import com.asyncapi.v2._6_0.model.ExternalDocumentation import com.asyncapi.v2._6_0.model.Tag import com.asyncapi.v2._6_0.model.channel.message.MessageTest import com.asyncapi.v2._6_0.model.channel.message.OneOfMessages -import com.asyncapi.v2.binding.operation.amqp.AMQPOperationBindingTest -import com.asyncapi.v2.binding.operation.http.HTTPOperationBindingTest -import com.asyncapi.v2.binding.operation.kafka.KafkaOperationBindingTest -import com.asyncapi.v2.binding.operation.mqtt.MQTTOperationBindingTest -import com.asyncapi.v2.binding.operation.nats.NATSOperationBindingTest -import com.asyncapi.v2.binding.operation.solace.SolaceOperationBindingTest +import com.asyncapi.bindings.amqp.AMQPV0_2_0Test +import com.asyncapi.bindings.http.HTTPV0_3_0Test +import com.asyncapi.bindings.kafka.KafkaV0_5_0Test +import com.asyncapi.bindings.mqtt.MQTTV0_1_0Test +import com.asyncapi.bindings.nats.NATSV0_1_0Test +import com.asyncapi.bindings.solace.SolaceV0_4_0Test class OperationWithReferenceToMessageTest: SerDeTest() { @@ -43,7 +43,7 @@ class OperationWithReferenceToMessageTest: SerDeTest() { .externalDocs(ExternalDocumentation("Messages sending rules", "messages/sending-rules")) .bindings(OperationTest.bindings()) .traits(listOf( - Reference("#/components/operationTraits/sendMessage"), + Reference("#/components/operationTraits/sendMessage"), OperationTraitTest().build() )) .message(Reference("#/components/schemas/sendMessage")) @@ -82,7 +82,7 @@ class OperationWithMessageTest: SerDeTest() { .externalDocs(ExternalDocumentation("Messages sending rules", "messages/sending-rules")) .bindings(OperationTest.bindings()) .traits(listOf( - Reference("#/components/operationTraits/sendMessage"), + Reference("#/components/operationTraits/sendMessage"), OperationTraitTest().build() )) .message(MessageTest().build()) @@ -120,11 +120,11 @@ class OperationWithOneOfMessageTest: SerDeTest() { .externalDocs(ExternalDocumentation("Messages sending rules", "messages/sending-rules")) .bindings(OperationTest.bindings()) .traits(listOf( - Reference("#/components/operationTraits/sendMessage"), + Reference("#/components/operationTraits/sendMessage"), OperationTraitTest().build() )) .message(OneOfMessages(listOf( - Reference("#/components/schemas/sendMessage"), + Reference("#/components/schemas/sendMessage"), MessageTest().build() ))) .build() @@ -136,25 +136,51 @@ class OperationTest { @JvmStatic fun bindings(): Map { return mapOf( - Pair("amqp", AMQPOperationBindingTest().build()), - Pair("amqp1", Reference("#/components/operationBindings/amqp1")), - Pair("anypointmq", Reference("#/components/operationBindings/anypointmq")), - Pair("googlepubsub", Reference("#/components/operationBindings/googlepubsub")), - Pair("http", HTTPOperationBindingTest().build()), - Pair("ibmmq", Reference("#/components/operationBindings/ibmmq")), - Pair("jms", Reference("#/components/operationBindings/jms")), - Pair("kafka", KafkaOperationBindingTest().build()), - Pair("mercure", Reference("#/components/operationBindings/mercure")), - Pair("mqtt", MQTTOperationBindingTest().build()), - Pair("mqtt5", Reference("#/components/operationBindings/mqtt5")), - Pair("nats", NATSOperationBindingTest().build()), - Pair("pulsar", Reference("#/components/operationBindings/pulsar")), - Pair("redis", Reference("#/components/operationBindings/redis")), - Pair("sns", Reference("#/components/operationBindings/sns")), - Pair("solace", SolaceOperationBindingTest().build()), - Pair("sqs", Reference("#/components/operationBindings/sqs")), - Pair("stomp", Reference("#/components/operationBindings/stomp")), - Pair("ws", Reference("#/components/operationBindings/ws")) + Pair("amqp", AMQPV0_2_0Test.operationBinding()), + Pair("amqp1", + Reference("#/components/operationBindings/amqp1") + ), + Pair("anypointmq", + Reference("#/components/operationBindings/anypointmq") + ), + Pair("googlepubsub", + Reference("#/components/operationBindings/googlepubsub") + ), + Pair("http", HTTPV0_3_0Test.operationBinding()), + Pair("ibmmq", + Reference("#/components/operationBindings/ibmmq") + ), + Pair("jms", + Reference("#/components/operationBindings/jms") + ), + Pair("kafka", KafkaV0_5_0Test.operationBinding()), + Pair("mercure", + Reference("#/components/operationBindings/mercure") + ), + Pair("mqtt", MQTTV0_1_0Test.operationBinding()), + Pair("mqtt5", + Reference("#/components/operationBindings/mqtt5") + ), + Pair("nats", NATSV0_1_0Test.operationBinding()), + Pair("pulsar", + Reference("#/components/operationBindings/pulsar") + ), + Pair("redis", + Reference("#/components/operationBindings/redis") + ), + Pair("sns", + Reference("#/components/operationBindings/sns") + ), + Pair("solace", SolaceV0_4_0Test.operationBinding()), + Pair("sqs", + Reference("#/components/operationBindings/sqs") + ), + Pair("stomp", + Reference("#/components/operationBindings/stomp") + ), + Pair("ws", + Reference("#/components/operationBindings/ws") + ) ) } } diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/operation/OperationTraitTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/operation/OperationTraitTest.kt index 5323cc73..e29f828e 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/operation/OperationTraitTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/channel/operation/OperationTraitTest.kt @@ -1,15 +1,15 @@ package com.asyncapi.v2._6_0.model.channel.operation -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2.SerDeTest import com.asyncapi.v2._6_0.model.ExternalDocumentation import com.asyncapi.v2._6_0.model.Tag -import com.asyncapi.v2.binding.operation.amqp.AMQPOperationBindingTest -import com.asyncapi.v2.binding.operation.http.HTTPOperationBindingTest -import com.asyncapi.v2.binding.operation.kafka.KafkaOperationBindingTest -import com.asyncapi.v2.binding.operation.mqtt.MQTTOperationBindingTest -import com.asyncapi.v2.binding.operation.nats.NATSOperationBindingTest -import com.asyncapi.v2.binding.operation.solace.SolaceOperationBindingTest +import com.asyncapi.bindings.amqp.AMQPV0_2_0Test +import com.asyncapi.bindings.http.HTTPV0_3_0Test +import com.asyncapi.bindings.kafka.KafkaV0_5_0Test +import com.asyncapi.bindings.mqtt.MQTTV0_1_0Test +import com.asyncapi.bindings.nats.NATSV0_1_0Test +import com.asyncapi.bindings.solace.SolaceV0_4_0Test class OperationTraitTest: SerDeTest() { @@ -40,25 +40,51 @@ class OperationTraitTest: SerDeTest() { )) .externalDocs(ExternalDocumentation("Messages sending rules", "messages/sending-rules")) .bindings(mapOf( - Pair("amqp", AMQPOperationBindingTest().build()), - Pair("amqp1", Reference("#/components/operationBindings/amqp1")), - Pair("anypointmq", Reference("#/components/operationBindings/anypointmq")), - Pair("googlepubsub", Reference("#/components/operationBindings/googlepubsub")), - Pair("http", HTTPOperationBindingTest().build()), - Pair("ibmmq", Reference("#/components/operationBindings/ibmmq")), - Pair("jms", Reference("#/components/operationBindings/jms")), - Pair("kafka", KafkaOperationBindingTest().build()), - Pair("mercure", Reference("#/components/operationBindings/mercure")), - Pair("mqtt", MQTTOperationBindingTest().build()), - Pair("mqtt5", Reference("#/components/operationBindings/mqtt5")), - Pair("nats", NATSOperationBindingTest().build()), - Pair("pulsar", Reference("#/components/operationBindings/pulsar")), - Pair("redis", Reference("#/components/operationBindings/redis")), - Pair("sns", Reference("#/components/operationBindings/sns")), - Pair("solace", SolaceOperationBindingTest().build()), - Pair("sqs", Reference("#/components/operationBindings/sqs")), - Pair("stomp", Reference("#/components/operationBindings/stomp")), - Pair("ws", Reference("#/components/operationBindings/ws")) + Pair("amqp", AMQPV0_2_0Test.operationBinding()), + Pair("amqp1", + Reference("#/components/operationBindings/amqp1") + ), + Pair("anypointmq", + Reference("#/components/operationBindings/anypointmq") + ), + Pair("googlepubsub", + Reference("#/components/operationBindings/googlepubsub") + ), + Pair("http", HTTPV0_3_0Test.operationBinding()), + Pair("ibmmq", + Reference("#/components/operationBindings/ibmmq") + ), + Pair("jms", + Reference("#/components/operationBindings/jms") + ), + Pair("kafka", KafkaV0_5_0Test.operationBinding()), + Pair("mercure", + Reference("#/components/operationBindings/mercure") + ), + Pair("mqtt", MQTTV0_1_0Test.operationBinding()), + Pair("mqtt5", + Reference("#/components/operationBindings/mqtt5") + ), + Pair("nats", NATSV0_1_0Test.operationBinding()), + Pair("pulsar", + Reference("#/components/operationBindings/pulsar") + ), + Pair("redis", + Reference("#/components/operationBindings/redis") + ), + Pair("sns", + Reference("#/components/operationBindings/sns") + ), + Pair("solace", SolaceV0_4_0Test.operationBinding()), + Pair("sqs", + Reference("#/components/operationBindings/sqs") + ), + Pair("stomp", + Reference("#/components/operationBindings/stomp") + ), + Pair("ws", + Reference("#/components/operationBindings/ws") + ) )) .build() } diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/component/ComponentsTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/component/ComponentsTest.kt index 2135c2f3..6311be76 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/component/ComponentsTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/component/ComponentsTest.kt @@ -1,9 +1,9 @@ package com.asyncapi.v2._6_0.model.component -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2.SerDeTest -import com.asyncapi.v2.schema.Schema -import com.asyncapi.v2.schema.Type +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.Type import com.asyncapi.v2._6_0.model.channel.ChannelItemTest import com.asyncapi.v2._6_0.model.channel.ParameterWithSchemaTest import com.asyncapi.v2._6_0.model.channel.ParameterWithReferenceToSchemaTest @@ -14,12 +14,12 @@ import com.asyncapi.v2._6_0.model.channel.operation.OperationTest import com.asyncapi.v2._6_0.model.channel.operation.OperationTraitTest import com.asyncapi.v2._6_0.model.server.ServerTest import com.asyncapi.v2._6_0.model.server.ServerVariableTest -import com.asyncapi.v2.security_scheme.ApiKeySecuritySchemeTest -import com.asyncapi.v2.security_scheme.OpenIdConnectSecuritySchemeTest -import com.asyncapi.v2.security_scheme.http.HttpApiKeySecuritySchemeTest -import com.asyncapi.v2.security_scheme.http.HttpSecuritySchemeBasicTest -import com.asyncapi.v2.security_scheme.http.HttpSecuritySchemeBearerTest -import com.asyncapi.v2.security_scheme.oauth2.OAuth2SecuritySchemeTest +import com.asyncapi.schemas.security.v2.ApiKeySecuritySchemeTest +import com.asyncapi.schemas.security.v2.OpenIdConnectSecuritySchemeTest +import com.asyncapi.schemas.security.v2.http.HttpApiKeySecuritySchemeTest +import com.asyncapi.schemas.security.v2.http.HttpSecuritySchemeBasicTest +import com.asyncapi.schemas.security.v2.http.HttpSecuritySchemeBearerTest +import com.asyncapi.schemas.security.v2.oauth2.OAuth2SecuritySchemeTest /** * @version 2.6.0 @@ -38,71 +38,103 @@ class ComponentsTest: SerDeTest() { override fun build(): Components { return Components.builder() .schemas(mapOf( - Pair("Category", Schema.builder() + Pair("Category", AsyncAPISchema.builder() .type(Type.OBJECT) .properties(mapOf( - Pair("id", Schema.builder().type(Type.INTEGER).format("int64").build()), - Pair("name", Schema.builder().type(Type.STRING).build()) + Pair("id", AsyncAPISchema.builder().type(Type.INTEGER).format("int64").build()), + Pair("name", AsyncAPISchema.builder().type(Type.STRING).build()) )) .build() ), - Pair("Tag", Schema.builder() + Pair("Tag", AsyncAPISchema.builder() .type(Type.OBJECT) .properties(mapOf( - Pair("id", Schema.builder().type(Type.INTEGER).format("int64").build()), - Pair("name", Schema.builder().type(Type.STRING).build()) + Pair("id", AsyncAPISchema.builder().type(Type.INTEGER).format("int64").build()), + Pair("name", AsyncAPISchema.builder().type(Type.STRING).build()) )) .build() ), - Pair("User", Reference("#/components/schemas/user")) + Pair("User", + Reference("#/components/schemas/user") + ) )) .servers(mapOf( Pair("mqtt-test", ServerTest().build()), - Pair("mqtt-stage", Reference("#/components/servers/mqtt-stage")) + Pair("mqtt-stage", + Reference("#/components/servers/mqtt-stage") + ) )) .serverVariables(mapOf( Pair("port", ServerVariableTest().build()), - Pair("basePath", Reference("#/components/serverVariables/basePath")) + Pair("basePath", + Reference("#/components/serverVariables/basePath") + ) )) .channels(mapOf( Pair("sign-up", ChannelItemTest().build()), )) .messages(mapOf( Pair("userSignup", MessageTest().build()), - Pair("userSignout", Reference("#/components/messages/userSignout")) + Pair("userSignout", + Reference("#/components/messages/userSignout") + ) )) .securitySchemes(mapOf( Pair("apiKey", ApiKeySecuritySchemeTest().build()), - Pair("asymmetricEncryption", Reference("#/components/securitySchemes/asymmetricEncryption")), - Pair("gssapi", Reference("#/components/securitySchemes/gssapi")), + Pair("asymmetricEncryption", + Reference("#/components/securitySchemes/asymmetricEncryption") + ), + Pair("gssapi", + Reference("#/components/securitySchemes/gssapi") + ), Pair("oauth2", OAuth2SecuritySchemeTest().build()), Pair("openIdConnect", OpenIdConnectSecuritySchemeTest().build()), Pair("httpApiKey", HttpApiKeySecuritySchemeTest().build()), Pair("httpBasic", HttpSecuritySchemeBasicTest().build()), Pair("httpBearer", HttpSecuritySchemeBearerTest().build()), - Pair("plain", Reference("#/components/securitySchemes/plain")), - Pair("scramSha256", Reference("#/components/securitySchemes/scramSha256")), - Pair("scramSha512", Reference("#/components/securitySchemes/scramSha512")), - Pair("symmetricEncryption", Reference("#/components/securitySchemes/symmetricEncryption")), - Pair("userPassword", Reference("#/components/securitySchemes/userPassword")), - Pair("X509", Reference("#/components/securitySchemes/X509")), + Pair("plain", + Reference("#/components/securitySchemes/plain") + ), + Pair("scramSha256", + Reference("#/components/securitySchemes/scramSha256") + ), + Pair("scramSha512", + Reference("#/components/securitySchemes/scramSha512") + ), + Pair("symmetricEncryption", + Reference("#/components/securitySchemes/symmetricEncryption") + ), + Pair("userPassword", + Reference("#/components/securitySchemes/userPassword") + ), + Pair("X509", + Reference("#/components/securitySchemes/X509") + ), )) .parameters(mapOf( Pair("parameterWithSchema", ParameterWithSchemaTest().build()), Pair("parameterWithSchemaReference", ParameterWithReferenceToSchemaTest().build()), - Pair("parameter", Reference("#/components/parameters/parameter")) + Pair("parameter", + Reference("#/components/parameters/parameter") + ) )) .correlationIds(mapOf( Pair("userSignupCorrelationId", CorrelationIdTest().build()), - Pair("correlationId", Reference("#/correlationIds/parameters/correlationId")) + Pair("correlationId", + Reference("#/correlationIds/parameters/correlationId") + ) )) .operationTraits(mapOf( Pair("sendMessage", OperationTraitTest().build()), - Pair("deleteMessage", Reference("#/components/operationTraits/deleteMessage")) + Pair("deleteMessage", + Reference("#/components/operationTraits/deleteMessage") + ) )) .messageTraits(mapOf( Pair("userSignup", MessageTraitTest().build()), - Pair("userSignout", Reference("#/components/messageTraits/userSignout")) + Pair("userSignout", + Reference("#/components/messageTraits/userSignout") + ) )) .serverBindings(ServerTest.bindings()) .channelBindings(ChannelItemTest.bindings()) diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/server/ServerTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/server/ServerTest.kt index e742ad1f..6c341c7e 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/server/ServerTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/_6_0/model/server/ServerTest.kt @@ -1,27 +1,27 @@ package com.asyncapi.v2._6_0.model.server -import com.asyncapi.v2.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v2.SerDeTest import com.asyncapi.v2._6_0.model.Tag -import com.asyncapi.v2.binding.server.amqp1.AMQP1ServerBinding -import com.asyncapi.v2.binding.server.anypointmq.AnypointMQServerBinding -import com.asyncapi.v2.binding.server.googlepubsub.GooglePubSubServerBinding -import com.asyncapi.v2.binding.server.http.HTTPServerBinding -import com.asyncapi.v2.binding.server.ibmmq.IBMMQServerBinding -import com.asyncapi.v2.binding.server.jms.JMSServerBinding -import com.asyncapi.v2.binding.server.kafka.KafkaServerBinding -import com.asyncapi.v2.binding.server.mercure.MercureServerBinding -import com.asyncapi.v2.binding.server.mqtt.MQTTServerBinding -import com.asyncapi.v2.binding.server.mqtt.MQTTServerLastWillConfiguration -import com.asyncapi.v2.binding.server.mqtt5.MQTT5ServerBinding -import com.asyncapi.v2.binding.server.nats.NATSServerBinding -import com.asyncapi.v2.binding.server.pulsar.PulsarServerBinding -import com.asyncapi.v2.binding.server.redis.RedisServerBinding -import com.asyncapi.v2.binding.server.sns.SNSServerBinding -import com.asyncapi.v2.binding.server.solace.SolaceServerBinding -import com.asyncapi.v2.binding.server.sqs.SQSServerBinding -import com.asyncapi.v2.binding.server.stomp.STOMPServerBinding -import com.asyncapi.v2.binding.server.ws.WebSocketsServerBinding +import com.asyncapi.bindings.amqp1.v0._1_0.server.AMQP1ServerBinding; +import com.asyncapi.bindings.anypointmq.v0._0_1.server.AnypointMQServerBinding +import com.asyncapi.bindings.googlepubsub.GooglePubSubV0_2_0Test +import com.asyncapi.bindings.http.HTTPV0_3_0Test +import com.asyncapi.bindings.ibmmq.v0._1_0.server.IBMMQServerBinding +import com.asyncapi.bindings.jms.v0._0_1.server.JMSServerBinding +import com.asyncapi.bindings.kafka.v0._5_0.server.KafkaServerBinding +import com.asyncapi.bindings.mercure.v0._1_0.server.MercureServerBinding +import com.asyncapi.bindings.mqtt.v0._1_0.server.MQTTServerBinding +import com.asyncapi.bindings.mqtt.v0._1_0.server.MQTTServerLastWillConfiguration +import com.asyncapi.bindings.mqtt5.v0._2_0.server.MQTT5ServerBinding +import com.asyncapi.bindings.nats.NATSV0_1_0Test +import com.asyncapi.bindings.pulsar.v0._1_0.server.PulsarServerBinding +import com.asyncapi.bindings.redis.v0._1_0.server.RedisServerBinding +import com.asyncapi.bindings.sns.v0._1_0.server.SNSServerBinding +import com.asyncapi.bindings.solace.v0._4_0.server.SolaceServerBinding +import com.asyncapi.bindings.sqs.SQSV0_2_0Test +import com.asyncapi.bindings.stomp.v0._1_0.server.STOMPServerBinding +import com.asyncapi.bindings.websockets.v0._1_0.server.WebSocketsServerBinding /** * @version 2.6.0 @@ -52,7 +52,9 @@ class ServerTest: SerDeTest() { .enumValues(listOf("8883", "8884")) .defaultValue("8883") .build()), - Pair("basePath", Reference("#/components/serverVariables/basePath")) + Pair("basePath", + Reference("#/components/serverVariables/basePath") + ) )) .security(listOf(mapOf( Pair("mqttBroker", emptyList()) @@ -68,11 +70,13 @@ class ServerTest: SerDeTest() { @JvmStatic fun bindings(): Map { return mapOf( - Pair("amqp", Reference("#/components/serverBindings/amqp")), + Pair("amqp", + Reference("#/components/serverBindings/amqp") + ), Pair("amqp1", AMQP1ServerBinding()), Pair("anypointmq", AnypointMQServerBinding()), - Pair("googlepubsub", GooglePubSubServerBinding()), - Pair("http", HTTPServerBinding()), + Pair("googlepubsub", GooglePubSubV0_2_0Test.serverBinding()), + Pair("http", HTTPV0_3_0Test.serverBinding()), Pair( "ibmmq", IBMMQServerBinding.builder() @@ -109,7 +113,7 @@ class ServerTest: SerDeTest() { .sessionExpiryInterval(60) .build() ), - Pair("nats", NATSServerBinding()), + Pair("nats", NATSV0_1_0Test.serverBinding()), Pair( "pulsar", PulsarServerBinding.builder() @@ -118,13 +122,12 @@ class ServerTest: SerDeTest() { ), Pair("redis", RedisServerBinding()), Pair("sns", SNSServerBinding()), - Pair( - "solace", - SolaceServerBinding.builder() - .msgVpn("solace.private.net") - .build() + Pair("solace", SolaceServerBinding.builder() + .msgVpn("ProdVPN") + .clientName("transactions-broker") + .build() ), - Pair("sqs", SQSServerBinding()), + Pair("sqs", SQSV0_2_0Test.serverBinding()), Pair("stomp", STOMPServerBinding()), Pair("ws", WebSocketsServerBinding()), ) diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/channel/amqp/AMQPChannelBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/channel/amqp/AMQPChannelBindingTest.kt deleted file mode 100644 index 7ac5f187..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/channel/amqp/AMQPChannelBindingTest.kt +++ /dev/null @@ -1,42 +0,0 @@ -package com.asyncapi.v2.binding.channel.amqp - -import com.asyncapi.v2.SerDeTest -import com.asyncapi.v2.binding.channel.amqp.exchange.AMQPChannelExchangeProperties -import com.asyncapi.v2.binding.channel.amqp.exchange.AMQPChannelExchangeType -import com.asyncapi.v2.binding.channel.amqp.queue.AMQPChannelQueueProperties - -/** - * @version 2.6.0 - * @author Pavel Bodiachevskii - */ -class AMQPChannelBindingTest: SerDeTest() { - - override fun objectClass() = AMQPChannelBinding::class.java - - override fun baseObjectJson() = "/json/v2/binding/channel/amqp/amqpChannelBinding.json" - - override fun extendedObjectJson() = "/json/v2/binding/channel/amqp/amqpChannelBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/binding/channel/amqp/amqpChannelBinding - wrongly extended.json" - - override fun build(): AMQPChannelBinding { - return AMQPChannelBinding.builder() - .`is`(AMQPChannelType.ROUTING_KEY) - .queue(AMQPChannelQueueProperties.builder() - .name("my-queue-name") - .durable(true) - .exclusive(true) - .autoDelete(false) - .build() - ) - .exchange(AMQPChannelExchangeProperties.builder() - .name("myExchange") - .type(AMQPChannelExchangeType.TOPIC) - .durable(true) - .autoDelete(false) - .build() - ) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/channel/anypointmq/AnypointMQChannelBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/channel/anypointmq/AnypointMQChannelBindingTest.kt deleted file mode 100644 index 57b0626c..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/channel/anypointmq/AnypointMQChannelBindingTest.kt +++ /dev/null @@ -1,26 +0,0 @@ -package com.asyncapi.v2.binding.channel.anypointmq - -import com.asyncapi.v2.SerDeTest - -/** - * @version 2.6.0 - * @author Pavel Bodiachevskii - */ -class AnypointMQChannelBindingTest: SerDeTest() { - - override fun objectClass() = AnypointMQChannelBinding::class.java - - override fun baseObjectJson() = "/json/v2/binding/channel/anypoint/anypointMQChannelBinding.json" - - override fun extendedObjectJson() = "/json/v2/binding/channel/anypoint/anypointMQChannelBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/binding/channel/anypoint/anypointMQChannelBinding - wrongly extended.json" - - override fun build(): AnypointMQChannelBinding { - return AnypointMQChannelBinding.builder() - .destination("user-signup-exchg") - .destinationType(AnypointMQChannelDestinationType.EXCHANGE) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/channel/googlepubsub/GooglePubSubChannelBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/channel/googlepubsub/GooglePubSubChannelBindingTest.kt deleted file mode 100644 index 3f3c180b..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/channel/googlepubsub/GooglePubSubChannelBindingTest.kt +++ /dev/null @@ -1,42 +0,0 @@ -package com.asyncapi.v2.binding.channel.googlepubsub - -import com.asyncapi.v2.SerDeTest - -class GooglePubSubChannelBindingTest: SerDeTest() { - - override fun objectClass() = GooglePubSubChannelBinding::class.java - - override fun baseObjectJson() = "/json/v2/binding/channel/googlepubsub/googlePubSubChannelBinding.json" - - override fun extendedObjectJson() = "/json/v2/binding/channel/googlepubsub/googlePubSubChannelBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/binding/channel/googlepubsub/googlePubSubChannelBinding - wrongly extended.json" - - override fun build(): GooglePubSubChannelBinding { - return GooglePubSubChannelBinding.builder() - .topic("projects/your-project/topics/topic-proto-schema") - .messageRetentionDuration("86400s") - .messageStoragePolicy(GooglePubSubChannelMessageStoragePolicy( - listOf( - "us-central1", - "us-central2", - "us-east1", - "us-east4", - "us-east5", - "us-east7", - "us-south1", - "us-west1", - "us-west2", - "us-west3", - "us-west4" - ) - )) - .schemaSettings(GooglePubSubChannelSchemaSettings.builder() - .encoding("binary") - .name("projects/your-project/schemas/message-proto") - .build() - ) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/channel/ibmmq/IBMMQChannelBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/channel/ibmmq/IBMMQChannelBindingTest.kt deleted file mode 100644 index 5d6a9f87..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/channel/ibmmq/IBMMQChannelBindingTest.kt +++ /dev/null @@ -1,35 +0,0 @@ -package com.asyncapi.v2.binding.channel.ibmmq - -import com.asyncapi.v2.SerDeTest - -class IBMMQChannelBindingTest: SerDeTest() { - - override fun objectClass() = IBMMQChannelBinding::class.java - - override fun baseObjectJson() = "/json/v2/binding/channel/ibmmq/ibmMQChannelBinding.json" - - override fun extendedObjectJson() = "/json/v2/binding/channel/ibmmq/ibmMQChannelBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/binding/channel/ibmmq/ibmMQChannelBinding - wrongly extended.json" - - override fun build(): IBMMQChannelBinding { - return IBMMQChannelBinding.builder() - .destinationType(IBMMQChannelDestinationType.TOPIC) - .queue(IBMMQChannelQueueProperties.builder() - .objectName("message") - .isPartitioned(false) - .exclusive(true) - .build() - ) - .topic(IBMMQChannelTopicProperties.builder() - .string("messages") - .objectName("message") - .durablePermitted(true) - .lastMsgRetained(true) - .build() - ) - .maxMsgLength(1024) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/channel/kafka/KafkaChannelBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/channel/kafka/KafkaChannelBindingTest.kt deleted file mode 100644 index 98502a4f..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/channel/kafka/KafkaChannelBindingTest.kt +++ /dev/null @@ -1,38 +0,0 @@ -package com.asyncapi.v2.binding.channel.kafka - -import com.asyncapi.v2.SerDeTest - -/** - * @version 2.6.0 - * @author Pavel Bodiachevskii - */ -class KafkaChannelBindingTest: SerDeTest() { - - override fun objectClass() = KafkaChannelBinding::class.java - - override fun baseObjectJson() = "/json/v2/binding/channel/kafka/kafkaChannelBinding.json" - - override fun extendedObjectJson() = "/json/v2/binding/channel/kafka/kafkaChannelBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/binding/channel/kafka/kafkaChannelBinding - wrongly extended.json" - - override fun build(): KafkaChannelBinding { - return KafkaChannelBinding.builder() - .topic("my-specific-topic-name") - .partitions(20) - .replicas(3) - .topicConfiguration(KafkaChannelTopicConfiguration.builder() - .cleanupPolicy(listOf( - KafkaChannelTopicCleanupPolicy.DELETE, - KafkaChannelTopicCleanupPolicy.COMPACT - )) - .retentionMs(604_800_000) - .retentionBytes(1_000_000_000) - .deleteRetentionMs(86_400_000) - .maxMessageBytes(1_048_588) - .build() - ) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/channel/pulsar/PulsarChannelBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/channel/pulsar/PulsarChannelBindingTest.kt deleted file mode 100644 index 7d7f7b85..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/channel/pulsar/PulsarChannelBindingTest.kt +++ /dev/null @@ -1,31 +0,0 @@ -package com.asyncapi.v2.binding.channel.pulsar - -import com.asyncapi.v2.SerDeTest - -class PulsarChannelBindingTest: SerDeTest() { - - override fun objectClass() = PulsarChannelBinding::class.java - - override fun baseObjectJson() = "/json/v2/binding/channel/pulsar/pulsarChannelBinding.json" - - override fun extendedObjectJson() = "/json/v2/binding/channel/pulsar/pulsarChannelBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/binding/channel/pulsar/pulsarChannelBinding - wrongly extended.json" - - override fun build(): PulsarChannelBinding { - return PulsarChannelBinding.builder() - .namespace("staging") - .persistence(PulsarChannelPersistence.PERSISTENT) - .compaction(1000) - .geoReplication(listOf("us-east1", "us-west1")) - .retention(PulsarChannelRetentionDefinition.builder() - .time(7) - .size(1000) - .build() - ) - .ttl(360) - .deduplication(false) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/channel/ws/WebSocketsChannelBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/channel/ws/WebSocketsChannelBindingTest.kt deleted file mode 100644 index 252a01b9..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/channel/ws/WebSocketsChannelBindingTest.kt +++ /dev/null @@ -1,53 +0,0 @@ -package com.asyncapi.v2.binding.channel.ws - -import com.asyncapi.v2.SerDeTest -import com.asyncapi.v2.schema.Schema -import com.asyncapi.v2.schema.Type - -/** - * @version 2.6.0 - * @author Pavel Bodiachevskii - */ -class WebSocketsChannelBindingTest: SerDeTest() { - - override fun objectClass() = WebSocketsChannelBinding::class.java - - override fun baseObjectJson() = "/json/v2/binding/channel/ws/webSocketsChannelBinding.json" - - override fun extendedObjectJson() = "/json/v2/binding/channel/ws/webSocketsChannelBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/binding/channel/ws/webSocketsChannelBinding - wrongly extended.json" - - override fun build(): WebSocketsChannelBinding { - return WebSocketsChannelBinding.builder() - .method(WebSocketsChannelMethod.GET) - .query(Schema.builder() - .type(Type.OBJECT) - .properties(mapOf( - Pair( - "ref", - Schema.builder() - .type(Type.STRING) - .description("Referral.") - .build() - ) - )) - .build() - ) - .headers(Schema.builder() - .type(Type.OBJECT) - .properties(mapOf( - Pair( - "Authentication", - Schema.builder() - .type(Type.STRING) - .description("Authentication token") - .build() - ) - )) - .build() - ) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/message/amqp/AMQPMessageBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/message/amqp/AMQPMessageBindingTest.kt deleted file mode 100644 index baa183c2..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/message/amqp/AMQPMessageBindingTest.kt +++ /dev/null @@ -1,22 +0,0 @@ -package com.asyncapi.v2.binding.message.amqp - -import com.asyncapi.v2.SerDeTest - -class AMQPMessageBindingTest: SerDeTest() { - - override fun objectClass() = AMQPMessageBinding::class.java - - override fun baseObjectJson() = "/json/v2/binding/message/amqp/amqpMessageBinding.json" - - override fun extendedObjectJson() = "/json/v2/binding/message/amqp/amqpMessageBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/binding/message/amqp/amqpMessageBinding - wrongly extended.json" - - override fun build(): AMQPMessageBinding { - return AMQPMessageBinding.builder() - .contentEncoding("gzip") - .messageType("user.signup") - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/message/anypointmq/AnypointMQMessageBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/message/anypointmq/AnypointMQMessageBindingTest.kt deleted file mode 100644 index 83a254e9..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/message/anypointmq/AnypointMQMessageBindingTest.kt +++ /dev/null @@ -1,34 +0,0 @@ -package com.asyncapi.v2.binding.message.anypointmq - -import com.asyncapi.v2.SerDeTest -import com.asyncapi.v2.schema.Schema -import com.asyncapi.v2.schema.Type - -class AnypointMQMessageBindingTest: SerDeTest() { - - override fun objectClass() = AnypointMQMessageBinding::class.java - - override fun baseObjectJson() = "/json/v2/binding/message/anypointmq/anypointMQMessageBinding.json" - - override fun extendedObjectJson() = "/json/v2/binding/message/anypointmq/anypointMQMessageBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/binding/message/anypointmq/anypointMQMessageBinding - wrongly extended.json" - - override fun build(): AnypointMQMessageBinding { - return AnypointMQMessageBinding.builder() - .headers(Schema.builder() - .type(Type.OBJECT) - .properties(mapOf( - Pair( - "correlationId", - Schema.builder() - .type(Type.STRING) - .description("Correlation ID set by application") - .build() - ) - )) - .build()) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/message/googlepubsub/GooglePubSubMessageBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/message/googlepubsub/GooglePubSubMessageBindingTest.kt deleted file mode 100644 index ca4354aa..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/message/googlepubsub/GooglePubSubMessageBindingTest.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.asyncapi.v2.binding.message.googlepubsub - -import com.asyncapi.v2.SerDeTest - -class GooglePubSubMessageBindingTest: SerDeTest() { - - override fun objectClass() = GooglePubSubMessageBinding::class.java - - override fun baseObjectJson() = "/json/v2/binding/message/googlepubsub/googlePubSubMessageBinding.json" - - override fun extendedObjectJson() = "/json/v2/binding/message/googlepubsub/googlePubSubMessageBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/binding/message/googlepubsub/googlePubSubMessageBinding - wrongly extended.json" - - override fun build(): GooglePubSubMessageBinding { - return GooglePubSubMessageBinding.builder() - .schema(GooglePubSubMessageSchemaDefinition( - "projects/your-project/schemas/message-avro", - GooglePubSubMessageSchemaDefinitionType.AVRO - )) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/message/http/HTTPMessageBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/message/http/HTTPMessageBindingTest.kt deleted file mode 100644 index 8c616f2c..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/message/http/HTTPMessageBindingTest.kt +++ /dev/null @@ -1,34 +0,0 @@ -package com.asyncapi.v2.binding.message.http - -import com.asyncapi.v2.SerDeTest -import com.asyncapi.v2.schema.Schema -import com.asyncapi.v2.schema.Type - -class HTTPMessageBindingTest: SerDeTest() { - - override fun objectClass() = HTTPMessageBinding::class.java - - override fun baseObjectJson() = "/json/v2/binding/message/http/httpMessageBinding.json" - - override fun extendedObjectJson() = "/json/v2/binding/message/http/httpMessageBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/binding/message/http/httpMessageBinding - wrongly extended.json" - - override fun build(): HTTPMessageBinding { - return HTTPMessageBinding.builder() - .headers(Schema.builder() - .type(Type.OBJECT) - .properties(mapOf( - Pair( - "Content-Type", - Schema.builder() - .type(Type.STRING) - .enumValue(listOf("application/json")) - .build() - ) - )) - .build()) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/message/ibmmq/IBMMQMessageBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/message/ibmmq/IBMMQMessageBindingTest.kt deleted file mode 100644 index f190262f..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/message/ibmmq/IBMMQMessageBindingTest.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.asyncapi.v2.binding.message.ibmmq - -import com.asyncapi.v2.SerDeTest - -class IBMMQMessageBindingTest: SerDeTest() { - - override fun objectClass() = IBMMQMessageBinding::class.java - - override fun baseObjectJson() = "/json/v2/binding/message/ibmmq/ibmMQMessageBinding.json" - - override fun extendedObjectJson() = "/json/v2/binding/message/ibmmq/ibmMQMessageBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/binding/message/ibmmq/ibmMQMessageBinding - wrongly extended.json" - - override fun build(): IBMMQMessageBinding { - return IBMMQMessageBinding.builder() - .type(IBMMQMessageType.JMS) - .description("JMS stream message") - .headers("Content-Type: application/json") - .expiry(0) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/message/kafka/KafkaMessageBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/message/kafka/KafkaMessageBindingTest.kt deleted file mode 100644 index 7180234b..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/message/kafka/KafkaMessageBindingTest.kt +++ /dev/null @@ -1,29 +0,0 @@ -package com.asyncapi.v2.binding.message.kafka - -import com.asyncapi.v2.SerDeTest -import com.asyncapi.v2.schema.Schema -import com.asyncapi.v2.schema.Type - -class KafkaMessageBindingTest: SerDeTest() { - - override fun objectClass() = KafkaMessageBinding::class.java - - override fun baseObjectJson() = "/json/v2/binding/message/kafka/kafkaMessageBinding.json" - - override fun extendedObjectJson() = "/json/v2/binding/message/kafka/kafkaMessageBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/binding/message/kafka/kafkaMessageBinding - wrongly extended.json" - - override fun build(): KafkaMessageBinding { - return KafkaMessageBinding.builder() - .key(Schema.builder() - .type(Type.STRING) - .enumValue(listOf("myKey")) - .build()) - .schemaIdLocation(KafkaMessageSchemaIdLocation.PAYLOAD) - .schemaIdPayloadEncoding("apicurio-new") - .schemaLookupStrategy("TopicIdStrategy") - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/message/mqtt/MQTTMessageBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/message/mqtt/MQTTMessageBindingTest.kt deleted file mode 100644 index 43791dd2..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/message/mqtt/MQTTMessageBindingTest.kt +++ /dev/null @@ -1,20 +0,0 @@ -package com.asyncapi.v2.binding.message.mqtt - -import com.asyncapi.v2.SerDeTest - -class MQTTMessageBindingTest: SerDeTest() { - - override fun objectClass() = MQTTMessageBinding::class.java - - override fun baseObjectJson() = "/json/v2/binding/message/mqtt/mqttMessageBinding.json" - - override fun extendedObjectJson() = "/json/v2/binding/message/mqtt/mqttMessageBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/binding/message/mqtt/mqttMessageBinding - wrongly extended.json" - - override fun build(): MQTTMessageBinding { - return MQTTMessageBinding.builder() - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/operation/amqp/AMQPOperationBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/operation/amqp/AMQPOperationBindingTest.kt deleted file mode 100644 index b62375d4..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/operation/amqp/AMQPOperationBindingTest.kt +++ /dev/null @@ -1,30 +0,0 @@ -package com.asyncapi.v2.binding.operation.amqp - -import com.asyncapi.v2.SerDeTest - -class AMQPOperationBindingTest: SerDeTest() { - - override fun objectClass() = AMQPOperationBinding::class.java - - override fun baseObjectJson() = "/json/v2/binding/operation/amqp/amqpOperationBinding.json" - - override fun extendedObjectJson() = "/json/v2/binding/operation/amqp/amqpOperationBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/binding/operation/amqp/amqpOperationBinding - wrongly extended.json" - - override fun build(): AMQPOperationBinding { - return AMQPOperationBinding.builder() - .expiration(100_000) - .userId("guest") - .cc(listOf("user.logs")) - .priority(10) - .deliveryMode(2) - .mandatory(false) - .bcc(listOf("external.audit")) - .replyTo("user.signedup") - .timestamp(true) - .ack(false) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/operation/http/HTTPOperationBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/operation/http/HTTPOperationBindingTest.kt deleted file mode 100644 index afe6cedd..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/operation/http/HTTPOperationBindingTest.kt +++ /dev/null @@ -1,41 +0,0 @@ -package com.asyncapi.v2.binding.operation.http - -import com.asyncapi.v2.SerDeTest -import com.asyncapi.v2.schema.Schema -import com.asyncapi.v2.schema.Type -import java.math.BigDecimal - -class HTTPOperationBindingTest: SerDeTest() { - - override fun objectClass() = HTTPOperationBinding::class.java - - override fun baseObjectJson() = "/json/v2/binding/operation/http/httpOperationBinding.json" - - override fun extendedObjectJson() = "/json/v2/binding/operation/http/httpOperationBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/binding/operation/http/httpOperationBinding - wrongly extended.json" - - override fun build(): HTTPOperationBinding { - return HTTPOperationBinding.builder() - .type(HTTPOperationType.REQUEST) - .method(HTTPOperationMethod.GET) - .query(Schema.builder() - .type(Type.OBJECT) - .required(listOf("companyId")) - .properties(mapOf( - Pair( - "companyId", - Schema.builder() - .type(Type.NUMBER) - .minimum(BigDecimal.ONE) - .description("The Id of the company.") - .build() - ) - )) - .additionalProperties(false) - .build() - ) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/operation/kafka/KafkaOperationBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/operation/kafka/KafkaOperationBindingTest.kt deleted file mode 100644 index 3fc84ea6..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/operation/kafka/KafkaOperationBindingTest.kt +++ /dev/null @@ -1,30 +0,0 @@ -package com.asyncapi.v2.binding.operation.kafka - -import com.asyncapi.v2.SerDeTest -import com.asyncapi.v2.schema.Schema -import com.asyncapi.v2.schema.Type - -class KafkaOperationBindingTest: SerDeTest() { - - override fun objectClass() = KafkaOperationBinding::class.java - - override fun baseObjectJson() = "/json/v2/binding/operation/kafka/kafkaOperationBinding.json" - - override fun extendedObjectJson() = "/json/v2/binding/operation/kafka/kafkaOperationBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/binding/operation/kafka/kafkaOperationBinding - wrongly extended.json" - - override fun build(): KafkaOperationBinding { - return KafkaOperationBinding.builder() - .groupId(Schema.builder() - .type(Type.STRING) - .enumValue(listOf("myGroupId")) - .build()) - .clientId(Schema.builder() - .type(Type.STRING) - .enumValue(listOf("myClientId")) - .build()) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/operation/mqtt/MQTTOperationBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/operation/mqtt/MQTTOperationBindingTest.kt deleted file mode 100644 index 9bba70c1..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/operation/mqtt/MQTTOperationBindingTest.kt +++ /dev/null @@ -1,22 +0,0 @@ -package com.asyncapi.v2.binding.operation.mqtt - -import com.asyncapi.v2.SerDeTest - -class MQTTOperationBindingTest: SerDeTest() { - - override fun objectClass() = MQTTOperationBinding::class.java - - override fun baseObjectJson() = "/json/v2/binding/operation/mqtt/mqttOperationBinding.json" - - override fun extendedObjectJson() = "/json/v2/binding/operation/mqtt/mqttOperationBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/binding/operation/mqtt/mqttOperationBinding - wrongly extended.json" - - override fun build(): MQTTOperationBinding { - return MQTTOperationBinding.builder() - .qos(2) - .retain(true) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/operation/nats/NATSOperationBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/operation/nats/NATSOperationBindingTest.kt deleted file mode 100644 index 9c2991a6..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/operation/nats/NATSOperationBindingTest.kt +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v2.binding.operation.nats - -import com.asyncapi.v2.SerDeTest - -class NATSOperationBindingTest: SerDeTest() { - - override fun objectClass() = NATSOperationBinding::class.java - - override fun baseObjectJson() = "/json/v2/binding/operation/nats/natsOperationBinding.json" - - override fun extendedObjectJson() = "/json/v2/binding/operation/nats/natsOperationBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/binding/operation/nats/natsOperationBinding - wrongly extended.json" - - override fun build(): NATSOperationBinding { - return NATSOperationBinding.builder() - .queue("messages") - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/operation/solace/SolaceOperationBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/operation/solace/SolaceOperationBindingTest.kt deleted file mode 100644 index f62962ad..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/operation/solace/SolaceOperationBindingTest.kt +++ /dev/null @@ -1,47 +0,0 @@ -package com.asyncapi.v2.binding.operation.solace - -import com.asyncapi.v2.SerDeTest -import com.asyncapi.v2.binding.operation.solace.queue.SolaceOperationQueue -import com.asyncapi.v2.binding.operation.solace.topic.SolaceOperationTopic - -class SolaceOperationBindingTest: SerDeTest() { - - override fun objectClass() = SolaceOperationBinding::class.java - - override fun baseObjectJson() = "/json/v2/binding/operation/solace/solaceOperationBinding.json" - - override fun extendedObjectJson() = "/json/v2/binding/operation/solace/solaceOperationBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/binding/operation/solace/solaceOperationBinding - wrongly extended.json" - - override fun build(): SolaceOperationBinding { - return SolaceOperationBinding.builder() - .destinations(listOf( - SolaceOperationDestination.builder() - .destinationType(SolaceOperationDestination.Type.QUEUE) - .queue(SolaceOperationQueue.builder() - .name("CreatedHREvents") - .topicSubscriptions(listOf("person/*/created")) - .accessType(SolaceOperationQueue.AccessType.EXCLUSIVE) - .maxMsgSpoolSize("1,500") - .maxTtl("60") - .build() - ) - .build(), - SolaceOperationDestination.builder() - .destinationType(SolaceOperationDestination.Type.QUEUE) - .queue(SolaceOperationQueue.builder() - .name("UpdatedHREvents") - .topicSubscriptions(listOf("person/*/updated")) - .build() - ) - .topic(SolaceOperationTopic.builder() - .topicSubscriptions(listOf("person/*/updated")) - .build() - ) - .build() - )) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/server/ibmmq/IBMMQServerBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/server/ibmmq/IBMMQServerBindingTest.kt deleted file mode 100644 index 8c73a5ab..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/server/ibmmq/IBMMQServerBindingTest.kt +++ /dev/null @@ -1,26 +0,0 @@ -package com.asyncapi.v2.binding.server.ibmmq - -import com.asyncapi.v2.SerDeTest - -/** - * @version 2.6.0 - * @author Pavel Bodiachevskii - */ -class IBMMQServerBindingTest: SerDeTest() { - - override fun objectClass() = IBMMQServerBinding::class.java - - override fun baseObjectJson() = "/json/v2/binding/server/ibmmq/ibmmqServerBinding.json" - - override fun extendedObjectJson() = "/json/v2/binding/server/ibmmq/ibmmqServerBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/binding/server/ibmmq/ibmmqServerBinding - wrongly extended.json" - - override fun build(): IBMMQServerBinding { - return IBMMQServerBinding.builder() - .groupId("PRODCLSTR1") - .cipherSpec("ANY_TLS12_OR_HIGHER") - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/server/kafka/KafkaServerBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/server/kafka/KafkaServerBindingTest.kt deleted file mode 100644 index 0e9910ce..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/server/kafka/KafkaServerBindingTest.kt +++ /dev/null @@ -1,26 +0,0 @@ -package com.asyncapi.v2.binding.server.kafka - -import com.asyncapi.v2.SerDeTest - -/** - * @version 2.6.0 - * @author Pavel Bodiachevskii - */ -class KafkaServerBindingTest: SerDeTest() { - - override fun objectClass() = KafkaServerBinding::class.java - - override fun baseObjectJson() = "/json/v2/binding/server/kafka/kafkaServerBinding.json" - - override fun extendedObjectJson() = "/json/v2/binding/server/kafka/kafkaServerBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/binding/server/kafka/kafkaServerBinding - wrongly extended.json" - - override fun build(): KafkaServerBinding { - return KafkaServerBinding.builder() - .schemaRegistryUrl("https://my-schema-registry.com") - .schemaRegistryVendor("confluent") - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/server/mqtt/MQTTServerBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/server/mqtt/MQTTServerBindingTest.kt deleted file mode 100644 index de06a9eb..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/server/mqtt/MQTTServerBindingTest.kt +++ /dev/null @@ -1,33 +0,0 @@ -package com.asyncapi.v2.binding.server.mqtt - -import com.asyncapi.v2.SerDeTest - -/** - * @version 2.6.0 - * @author Pavel Bodiachevskii - */ -class MQTTServerBindingTest: SerDeTest() { - - override fun objectClass() = MQTTServerBinding::class.java - - override fun baseObjectJson() = "/json/v2/binding/server/mqtt/mqttServerBinding.json" - - override fun extendedObjectJson() = "/json/v2/binding/server/mqtt/mqttServerBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/binding/server/mqtt/mqttServerBinding - wrongly extended.json" - - override fun build(): MQTTServerBinding { - return MQTTServerBinding.builder() - .clientId("guest") - .cleanSession(true) - .lastWill(MQTTServerLastWillConfiguration( - "/last-wills", - 2, - "Guest gone offline.", - false - )) - .keepAlive(60) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/server/mqtt5/MQTT5ServerBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/server/mqtt5/MQTT5ServerBindingTest.kt deleted file mode 100644 index a80e4af4..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/server/mqtt5/MQTT5ServerBindingTest.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v2.binding.server.mqtt5 - -import com.asyncapi.v2.SerDeTest - -/** - * @version 2.6.0 - * @author Pavel Bodiachevskii - */ -class MQTT5ServerBindingTest: SerDeTest() { - - override fun objectClass() = MQTT5ServerBinding::class.java - - override fun baseObjectJson() = "/json/v2/binding/server/mqtt5/mqtt5ServerBinding.json" - - override fun extendedObjectJson() = "/json/v2/binding/server/mqtt5/mqtt5ServerBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/binding/server/mqtt5/mqtt5ServerBinding - wrongly extended.json" - - override fun build(): MQTT5ServerBinding { - return MQTT5ServerBinding.builder() - .sessionExpiryInterval(60) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/server/pulsar/PulsarServerBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/server/pulsar/PulsarServerBindingTest.kt deleted file mode 100644 index 869986ea..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/server/pulsar/PulsarServerBindingTest.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v2.binding.server.pulsar - -import com.asyncapi.v2.SerDeTest - -/** - * @version 2.6.0 - * @author Pavel Bodiachevskii - */ -class PulsarServerBindingTest: SerDeTest() { - - override fun objectClass() = PulsarServerBinding::class.java - - override fun baseObjectJson() = "/json/v2/binding/server/pulsar/pulsarServerBinding.json" - - override fun extendedObjectJson() = "/json/v2/binding/server/pulsar/pulsarServerBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/binding/server/pulsar/pulsarServerBinding - wrongly extended.json" - - override fun build(): PulsarServerBinding { - return PulsarServerBinding.builder() - .tenant("contoso") - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/server/solace/SolaceServerBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/server/solace/SolaceServerBindingTest.kt deleted file mode 100644 index f02c7394..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/binding/server/solace/SolaceServerBindingTest.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v2.binding.server.solace - -import com.asyncapi.v2.SerDeTest - -/** - * @version 2.6.0 - * @author Pavel Bodiachevskii - */ -class SolaceServerBindingTest: SerDeTest() { - - override fun objectClass() = SolaceServerBinding::class.java - - override fun baseObjectJson() = "/json/v2/binding/server/solace/solaceServerBinding.json" - - override fun extendedObjectJson() = "/json/v2/binding/server/solace/solaceServerBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/binding/server/solace/solaceServerBinding - wrongly extended.json" - - override fun build(): SolaceServerBinding { - return SolaceServerBinding.builder() - .msgVpn("solace.private.net") - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/ApiKeySecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/ApiKeySecuritySchemeTest.kt deleted file mode 100644 index 327f241a..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/ApiKeySecuritySchemeTest.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v2.security_scheme - -import com.asyncapi.v2.SerDeTest - -/** - * @author Pavel Bodiachevskii - */ -class ApiKeySecuritySchemeTest: SerDeTest() { - - override fun objectClass() = ApiKeySecurityScheme::class.java - - override fun baseObjectJson() = "/json/v2/security_scheme/apiKey.json" - - override fun extendedObjectJson() = "/json/v2/security_scheme/apiKey - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/security_scheme/apiKey - wrongly extended.json" - - override fun build(): SecurityScheme { - return ApiKeySecurityScheme.apiKeyBuilder() - .description("apiKey") - .`in`(ApiKeySecurityScheme.ApiKeyLocation.USER) - .build() - } - -} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/AsymmetricEncryptionSecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/AsymmetricEncryptionSecuritySchemeTest.kt deleted file mode 100644 index 4ed8707a..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/AsymmetricEncryptionSecuritySchemeTest.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v2.security_scheme - -import com.asyncapi.v2.SerDeTest - -/** - * @author Pavel Bodiachevskii - */ -class AsymmetricEncryptionSecuritySchemeTest: SerDeTest() { - - override fun objectClass() = SecurityScheme::class.java - - override fun baseObjectJson() = "/json/v2/security_scheme/asymmetricEncryption.json" - - override fun extendedObjectJson() = "/json/v2/security_scheme/asymmetricEncryption - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/security_scheme/asymmetricEncryption - wrongly extended.json" - - override fun build(): SecurityScheme { - return SecurityScheme.builder() - .type(SecurityScheme.Type.ASYMMETRIC_ENCRYPTION) - .description("asymmetricEncryption") - .build() - } - -} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/GssapiSecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/GssapiSecuritySchemeTest.kt deleted file mode 100644 index 5823f19b..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/GssapiSecuritySchemeTest.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v2.security_scheme - -import com.asyncapi.v2.SerDeTest - -/** - * @author Pavel Bodiachevskii - */ -class GssapiSecuritySchemeTest: SerDeTest() { - - override fun objectClass() = SecurityScheme::class.java - - override fun baseObjectJson() = "/json/v2/security_scheme/gssapi.json" - - override fun extendedObjectJson() = "/json/v2/security_scheme/gssapi - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/security_scheme/gssapi - wrongly extended.json" - - override fun build(): SecurityScheme { - return SecurityScheme.builder() - .type(SecurityScheme.Type.GSSAPI) - .description("gssapi") - .build() - } - -} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/OpenIdConnectSecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/OpenIdConnectSecuritySchemeTest.kt deleted file mode 100644 index 6a9eb726..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/OpenIdConnectSecuritySchemeTest.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v2.security_scheme - -import com.asyncapi.v2.SerDeTest - -/** - * @author Pavel Bodiachevskii - */ -class OpenIdConnectSecuritySchemeTest: SerDeTest() { - - override fun objectClass() = OpenIdConnectSecurityScheme::class.java - - override fun baseObjectJson() = "/json/v2/security_scheme/openIdConnect.json" - - override fun extendedObjectJson() = "/json/v2/security_scheme/openIdConnect - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/security_scheme/openIdConnect - wrongly extended.json" - - override fun build(): SecurityScheme { - return OpenIdConnectSecurityScheme.openIdBuilder() - .description("openIdConnect") - .openIdConnectUrl("https://server.com/.well-known/openid-configuration") - .build() - } - -} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/PlainSecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/PlainSecuritySchemeTest.kt deleted file mode 100644 index 4adfd21a..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/PlainSecuritySchemeTest.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v2.security_scheme - -import com.asyncapi.v2.SerDeTest - -/** - * @author Pavel Bodiachevskii - */ -class PlainSecuritySchemeTest: SerDeTest() { - - override fun objectClass() = SecurityScheme::class.java - - override fun baseObjectJson() = "/json/v2/security_scheme/plain.json" - - override fun extendedObjectJson() = "/json/v2/security_scheme/plain - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/security_scheme/plain - wrongly extended.json" - - override fun build(): SecurityScheme { - return SecurityScheme.builder() - .type(SecurityScheme.Type.PLAIN) - .description("plain") - .build() - } - -} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/ScramSha256SecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/ScramSha256SecuritySchemeTest.kt deleted file mode 100644 index d60c5a29..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/ScramSha256SecuritySchemeTest.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v2.security_scheme - -import com.asyncapi.v2.SerDeTest - -/** - * @author Pavel Bodiachevskii - */ -class ScramSha256SecuritySchemeTest: SerDeTest() { - - override fun objectClass() = SecurityScheme::class.java - - override fun baseObjectJson() = "/json/v2/security_scheme/scramSha256.json" - - override fun extendedObjectJson() = "/json/v2/security_scheme/scramSha256 - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/security_scheme/scramSha256 - wrongly extended.json" - - override fun build(): SecurityScheme { - return SecurityScheme.builder() - .type(SecurityScheme.Type.SCRAM_SHA256) - .description("scramSha256") - .build() - } - -} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/ScramSha512SecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/ScramSha512SecuritySchemeTest.kt deleted file mode 100644 index de3ea488..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/ScramSha512SecuritySchemeTest.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v2.security_scheme - -import com.asyncapi.v2.SerDeTest - -/** - * @author Pavel Bodiachevskii - */ -class ScramSha512SecuritySchemeTest: SerDeTest() { - - override fun objectClass() = SecurityScheme::class.java - - override fun baseObjectJson() = "/json/v2/security_scheme/scramSha512.json" - - override fun extendedObjectJson() = "/json/v2/security_scheme/scramSha512 - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/security_scheme/scramSha512 - wrongly extended.json" - - override fun build(): SecurityScheme { - return SecurityScheme.builder() - .type(SecurityScheme.Type.SCRAM_SHA512) - .description("scramSha512") - .build() - } - -} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/SymmetricEncryptionSecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/SymmetricEncryptionSecuritySchemeTest.kt deleted file mode 100644 index 479a88c5..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/SymmetricEncryptionSecuritySchemeTest.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v2.security_scheme - -import com.asyncapi.v2.SerDeTest - -/** - * @author Pavel Bodiachevskii - */ -class SymmetricEncryptionSecuritySchemeTest: SerDeTest() { - - override fun objectClass() = SecurityScheme::class.java - - override fun baseObjectJson() = "/json/v2/security_scheme/symmetricEncryption.json" - - override fun extendedObjectJson() = "/json/v2/security_scheme/symmetricEncryption - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/security_scheme/symmetricEncryption - wrongly extended.json" - - override fun build(): SecurityScheme { - return SecurityScheme.builder() - .type(SecurityScheme.Type.SYMMETRIC_ENCRYPTION) - .description("symmetricEncryption") - .build() - } - -} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/UserPasswordSecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/UserPasswordSecuritySchemeTest.kt deleted file mode 100644 index 59f9ecef..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/UserPasswordSecuritySchemeTest.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v2.security_scheme - -import com.asyncapi.v2.SerDeTest - -/** - * @author Pavel Bodiachevskii - */ -class UserPasswordSecuritySchemeTest: SerDeTest() { - - override fun objectClass() = SecurityScheme::class.java - - override fun baseObjectJson() = "/json/v2/security_scheme/userPassword.json" - - override fun extendedObjectJson() = "/json/v2/security_scheme/userPassword - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/security_scheme/userPassword - wrongly extended.json" - - override fun build(): SecurityScheme { - return SecurityScheme.builder() - .type(SecurityScheme.Type.USER_PASSWORD) - .description("userPassword") - .build() - } - -} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/X509SecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/X509SecuritySchemeTest.kt deleted file mode 100644 index 3a18ab74..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/X509SecuritySchemeTest.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v2.security_scheme - -import com.asyncapi.v2.SerDeTest - -/** - * @author Pavel Bodiachevskii - */ -class X509SecuritySchemeTest: SerDeTest() { - - override fun objectClass() = SecurityScheme::class.java - - override fun baseObjectJson() = "/json/v2/security_scheme/X509.json" - - override fun extendedObjectJson() = "/json/v2/security_scheme/X509 - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/security_scheme/X509 - wrongly extended.json" - - override fun build(): SecurityScheme { - return SecurityScheme.builder() - .type(SecurityScheme.Type.X509) - .description("X509") - .build() - } - -} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/http/HttpApiKeySecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/http/HttpApiKeySecuritySchemeTest.kt deleted file mode 100644 index 9b0a782d..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/http/HttpApiKeySecuritySchemeTest.kt +++ /dev/null @@ -1,23 +0,0 @@ -package com.asyncapi.v2.security_scheme.http - -import com.asyncapi.v2.SerDeTest - -class HttpApiKeySecuritySchemeTest: SerDeTest() { - - override fun objectClass() = HttpApiKeySecurityScheme::class.java - - override fun baseObjectJson() = "/json/v2/security_scheme/http/httpApiKey.json" - - override fun extendedObjectJson() = "/json/v2/security_scheme/http/httpApiKey - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/security_scheme/http/httpApiKey - wrongly extended.json" - - override fun build(): HttpApiKeySecurityScheme { - return HttpApiKeySecurityScheme.httpApiKeyBuilder() - .description("httpApiKey") - .name("api_key") - .`in`(HttpApiKeySecurityScheme.ApiKeyLocation.HEADER) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/http/HttpSecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/http/HttpSecuritySchemeTest.kt deleted file mode 100644 index 672d53ab..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/http/HttpSecuritySchemeTest.kt +++ /dev/null @@ -1,42 +0,0 @@ -package com.asyncapi.v2.security_scheme.http - -import com.asyncapi.v2.SerDeTest - -class HttpSecuritySchemeBasicTest: SerDeTest() { - - override fun objectClass() = HttpSecurityScheme::class.java - - override fun baseObjectJson() = "/json/v2/security_scheme/http/httpBasic.json" - - override fun extendedObjectJson() = "/json/v2/security_scheme/http/httpBasic - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/security_scheme/http/httpBasic - wrongly extended.json" - - override fun build(): HttpSecurityScheme { - return HttpSecurityScheme.httpBuilder() - .description("http") - .scheme("basic") - .build() - } - -} - -class HttpSecuritySchemeBearerTest: SerDeTest() { - - override fun objectClass() = HttpSecurityScheme::class.java - - override fun baseObjectJson() = "/json/v2/security_scheme/http/httpBearer.json" - - override fun extendedObjectJson() = "/json/v2/security_scheme/http/httpBearer - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/security_scheme/http/httpBearer - wrongly extended.json" - - override fun build(): HttpSecurityScheme { - return HttpSecurityScheme.httpBuilder() - .description("http") - .scheme("bearer") - .bearerFormat("JWT") - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/oauth2/OAuth2SecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/oauth2/OAuth2SecuritySchemeTest.kt deleted file mode 100644 index 00c2d19d..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/oauth2/OAuth2SecuritySchemeTest.kt +++ /dev/null @@ -1,26 +0,0 @@ -package com.asyncapi.v2.security_scheme.oauth2 - -import com.asyncapi.v2.SerDeTest -import com.asyncapi.v2.security_scheme.SecurityScheme - -/** - * @author Pavel Bodiachevskii - */ -class OAuth2SecuritySchemeTest: SerDeTest() { - - override fun objectClass() = OAuth2SecurityScheme::class.java - - override fun baseObjectJson() = "/json/v2/security_scheme/oauth2/oauth2.json" - - override fun extendedObjectJson() = "/json/v2/security_scheme/oauth2/oauth2 - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/security_scheme/oauth2/oauth2 - wrongly extended.json" - - override fun build(): SecurityScheme { - return OAuth2SecurityScheme.oauth2Builder() - .description("oauth2") - .flows(OAuthFlowTest().build()) - .build() - } - -} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/oauth2/OAuthFlowTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/oauth2/OAuthFlowTest.kt deleted file mode 100644 index 1841a203..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/oauth2/OAuthFlowTest.kt +++ /dev/null @@ -1,28 +0,0 @@ -package com.asyncapi.v2.security_scheme.oauth2 - -import com.asyncapi.v2.SerDeTest -import com.asyncapi.v2.security_scheme.oauth2.flow.* - -/** - * @author Pavel Bodiachevskii - */ -class OAuthFlowTest: SerDeTest() { - - override fun objectClass() = OAuthFlows::class.java - - override fun baseObjectJson() = "/json/v2/security_scheme/oauth2/oauthFlows.json" - - override fun extendedObjectJson() = "/json/v2/security_scheme/oauth2/oauthFlows - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/security_scheme/oauth2/oauthFlows - wrongly extended.json" - - override fun build(): OAuthFlows { - return OAuthFlows.builder() - .authorizationCode(AuthorizationCodeOAuthFlowTest().build()) - .clientCredentials(ClientCredentialsOAuthFlowTest().build()) - .implicit(ImplicitOAuthFlowTest().build()) - .password(PasswordOAuthFlowTest().build()) - .build() - } - -} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/oauth2/flow/AuthorizationCodeOAuthFlowTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/oauth2/flow/AuthorizationCodeOAuthFlowTest.kt deleted file mode 100644 index c71ae840..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/oauth2/flow/AuthorizationCodeOAuthFlowTest.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.asyncapi.v2.security_scheme.oauth2.flow - -import com.asyncapi.v2.SerDeTest - -class AuthorizationCodeOAuthFlowTest: SerDeTest() { - - override fun objectClass() = AuthorizationCodeOAuthFlow::class.java - - override fun baseObjectJson() = "/json/v2/security_scheme/oauth2/flow/authorizationCodeOAuthFlow.json" - - override fun extendedObjectJson() = "/json/v2/security_scheme/oauth2/flow/authorizationCodeOAuthFlow - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/security_scheme/oauth2/flow/authorizationCodeOAuthFlow - wrongly extended.json" - - override fun build(): AuthorizationCodeOAuthFlow { - return AuthorizationCodeOAuthFlow.authorizationCodeBuilder() - .authorizationUrl("https://example.com/api/oauth/dialog") - .tokenUrl("https://example.com/api/oauth/token") - .refreshUrl("https://example.com/api/oauth/refresh") - .scopes(mapOf( - Pair("write:pets", "modify pets in your account"), - Pair("read:pets", "read your pets") - )) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/oauth2/flow/ClientCredentialsOAuthFlowTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/oauth2/flow/ClientCredentialsOAuthFlowTest.kt deleted file mode 100644 index cca55c8a..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/oauth2/flow/ClientCredentialsOAuthFlowTest.kt +++ /dev/null @@ -1,26 +0,0 @@ -package com.asyncapi.v2.security_scheme.oauth2.flow - -import com.asyncapi.v2.SerDeTest - -class ClientCredentialsOAuthFlowTest: SerDeTest() { - - override fun objectClass() = ClientCredentialsOAuthFlow::class.java - - override fun baseObjectJson() = "/json/v2/security_scheme/oauth2/flow/clientCredentialsOAuthFlow.json" - - override fun extendedObjectJson() = "/json/v2/security_scheme/oauth2/flow/clientCredentialsOAuthFlow - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/security_scheme/oauth2/flow/clientCredentialsOAuthFlow - wrongly extended.json" - - override fun build(): ClientCredentialsOAuthFlow { - return ClientCredentialsOAuthFlow.clientCredentialsBuilder() - .tokenUrl("https://example.com/api/oauth/token") - .refreshUrl("https://example.com/api/oauth/refresh") - .scopes(mapOf( - Pair("write:pets", "modify pets in your account"), - Pair("read:pets", "read your pets") - )) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/oauth2/flow/ImplicitOAuthFlowTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/oauth2/flow/ImplicitOAuthFlowTest.kt deleted file mode 100644 index 452606d0..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/oauth2/flow/ImplicitOAuthFlowTest.kt +++ /dev/null @@ -1,26 +0,0 @@ -package com.asyncapi.v2.security_scheme.oauth2.flow - -import com.asyncapi.v2.SerDeTest - -class ImplicitOAuthFlowTest: SerDeTest() { - - override fun objectClass() = ImplicitOAuthFlow::class.java - - override fun baseObjectJson() = "/json/v2/security_scheme/oauth2/flow/implicitOAuthFlow.json" - - override fun extendedObjectJson() = "/json/v2/security_scheme/oauth2/flow/implicitOAuthFlow - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/security_scheme/oauth2/flow/implicitOAuthFlow - wrongly extended.json" - - override fun build(): ImplicitOAuthFlow { - return ImplicitOAuthFlow.implicitBuilder() - .authorizationUrl("https://example.com/api/oauth/dialog") - .refreshUrl("https://example.com/api/oauth/refresh") - .scopes(mapOf( - Pair("write:pets", "modify pets in your account"), - Pair("read:pets", "read your pets") - )) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/oauth2/flow/OAuthFlowTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/oauth2/flow/OAuthFlowTest.kt deleted file mode 100644 index b2dde97b..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/oauth2/flow/OAuthFlowTest.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v2.security_scheme.oauth2.flow - -import com.asyncapi.v2.SerDeTest - -class OAuthFlowTest: SerDeTest() { - - override fun objectClass() = OAuthFlow::class.java - - override fun baseObjectJson() = "/json/v2/security_scheme/oauth2/flow/oauthFlow.json" - - override fun extendedObjectJson() = "/json/v2/security_scheme/oauth2/flow/oauthFlow - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/security_scheme/oauth2/flow/oauthFlow - wrongly extended.json" - - override fun build(): OAuthFlow { - return OAuthFlow.builder() - .refreshUrl("https://example.com/api/oauth/refresh") - .scopes(mapOf( - Pair("write:pets", "modify pets in your account"), - Pair("read:pets", "read your pets") - )) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/oauth2/flow/PasswordOAuthFlowTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/oauth2/flow/PasswordOAuthFlowTest.kt deleted file mode 100644 index db1013cb..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v2/security_scheme/oauth2/flow/PasswordOAuthFlowTest.kt +++ /dev/null @@ -1,26 +0,0 @@ -package com.asyncapi.v2.security_scheme.oauth2.flow - -import com.asyncapi.v2.SerDeTest - -class PasswordOAuthFlowTest: SerDeTest() { - - override fun objectClass() = PasswordOAuthFlow::class.java - - override fun baseObjectJson() = "/json/v2/security_scheme/oauth2/flow/passwordOAuthFlow.json" - - override fun extendedObjectJson() = "/json/v2/security_scheme/oauth2/flow/passwordOAuthFlow - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v2/security_scheme/oauth2/flow/passwordOAuthFlow - wrongly extended.json" - - override fun build(): PasswordOAuthFlow { - return PasswordOAuthFlow.passwordBuilder() - .tokenUrl("https://example.com/api/oauth/token") - .refreshUrl("https://example.com/api/oauth/refresh") - .scopes(mapOf( - Pair("write:pets", "modify pets in your account"), - Pair("read:pets", "read your pets") - )) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/SerDeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/SerDeTest.kt index 45ccc185..6e39fe74 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/SerDeTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/SerDeTest.kt @@ -1,5 +1,6 @@ package com.asyncapi.v3 +import com.asyncapi.schemas.asyncapi.ExtendableObject import com.fasterxml.jackson.annotation.JsonInclude import com.fasterxml.jackson.databind.JsonMappingException import com.fasterxml.jackson.databind.ObjectMapper diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/AsyncAPITest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/AsyncAPITest.kt index 080fbb0d..dc222869 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/AsyncAPITest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/AsyncAPITest.kt @@ -1,6 +1,6 @@ package com.asyncapi.v3._0_0.model -import com.asyncapi.v3.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v3.SerDeTest import com.asyncapi.v3._0_0.model.channel.ChannelTest import com.asyncapi.v3._0_0.model.channel.ChannelTestWithReference @@ -33,17 +33,23 @@ class AsyncAPITest: SerDeTest() { mapOf( Pair("server 1", ServerTest().build()), Pair("server 2", ServerTestWithReference().build()), - Pair("server 3", Reference("#/components/servers/server")) + Pair("server 3", + Reference("#/components/servers/server") + ) ), mapOf( Pair("channel 1", ChannelTest().build()), Pair("channel 2", ChannelTestWithReference().build()), - Pair("channel 3", Reference("#/components/channels/channel")) + Pair("channel 3", + Reference("#/components/channels/channel") + ) ), mapOf( Pair("operation 1", OperationTest().build()), Pair("operation 2", OperationTestWithReference().build()), - Pair("operation 3", Reference("#/components/operations/operation")) + Pair("operation 3", + Reference("#/components/operations/operation") + ) ), ComponentsTest().build() ) diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/ReferenceTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/ReferenceTest.kt index 9ebf9892..2066ec15 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/ReferenceTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/ReferenceTest.kt @@ -1,7 +1,7 @@ package com.asyncapi.v3._0_0.model import com.asyncapi.v3.ClasspathUtils -import com.asyncapi.v3.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.fasterxml.jackson.databind.ObjectMapper import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.DisplayName diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/TagTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/TagTest.kt index e18a3ca9..fbd72134 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/TagTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/TagTest.kt @@ -1,6 +1,6 @@ package com.asyncapi.v3._0_0.model -import com.asyncapi.v3.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v3.SerDeTest /** @@ -20,7 +20,7 @@ class TagTestWithReferenceToExternalDocs: SerDeTest() { return Tag( "user", "User-related messages", - Reference("#/components/external-doc") + Reference("#/components/external-doc") ) } diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/channel/ChannelTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/channel/ChannelTest.kt index e48f456b..1ca7008d 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/channel/ChannelTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/channel/ChannelTest.kt @@ -1,6 +1,6 @@ package com.asyncapi.v3._0_0.model.channel -import com.asyncapi.v3.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v3.SerDeTest import com.asyncapi.v3._0_0.model.ExternalDocumentationTest import com.asyncapi.v3._0_0.model.TagTest @@ -8,13 +8,13 @@ import com.asyncapi.v3._0_0.model.TagTestWithReferenceToExternalDocs import com.asyncapi.v3._0_0.model.channel.message.MessageTestWithMultiFormatSchema import com.asyncapi.v3._0_0.model.channel.message.MessageTestWithReference import com.asyncapi.v3._0_0.model.channel.message.MessageTestWithSchema -import com.asyncapi.v3.binding.channel.amqp.AMQPChannelBindingTest -import com.asyncapi.v3.binding.channel.anypointmq.AnypointMQChannelBindingTest -import com.asyncapi.v3.binding.channel.googlepubsub.GooglePubSubChannelBindingTest -import com.asyncapi.v3.binding.channel.ibmmq.IBMMQChannelBindingTest -import com.asyncapi.v3.binding.channel.kafka.KafkaChannelBindingTest -import com.asyncapi.v3.binding.channel.pulsar.PulsarChannelBindingTest -import com.asyncapi.v3.binding.channel.ws.WebSocketsChannelBindingTest +import com.asyncapi.bindings.amqp.AMQPV0_2_0Test +import com.asyncapi.bindings.anypointmq.AnypointMQV0_0_1Test +import com.asyncapi.bindings.googlepubsub.GooglePubSubV0_1_0Test +import com.asyncapi.bindings.ibmmq.IBMMQV0_1_0Test +import com.asyncapi.bindings.kafka.KafkaV0_5_0Test +import com.asyncapi.bindings.pulsar.PulsarV0_1_0Test +import com.asyncapi.bindings.websockets.WebSocketsV0_1_0Test class ChannelTest: SerDeTest() { @@ -33,16 +33,20 @@ class ChannelTest: SerDeTest() { .summary("messages about user events.") .description("This channel is used to exchange messages about users signing up") .servers(listOf( - Reference("#/components/servers/1"), - Reference("#/components/servers/2"), - Reference("#/components/servers/3") + Reference("#/components/servers/1"), + Reference("#/components/servers/2"), + Reference("#/components/servers/3") )) .parameters(mapOf( Pair("userId", ParameterTest().build()), - Pair("userStatus", Reference("#/components/parameters/user-status")) + Pair("userStatus", + Reference("#/components/parameters/user-status") + ) )) .messages(mapOf( - Pair("changeStatus", Reference("#/components/parameters/user-status")), + Pair("changeStatus", + Reference("#/components/parameters/user-status") + ), Pair("message", MessageTestWithSchema().build()), Pair("message 2", MessageTestWithMultiFormatSchema().build()), Pair("message with reference", MessageTestWithReference().build()), @@ -51,7 +55,7 @@ class ChannelTest: SerDeTest() { .tags(listOf( TagTest().build(), TagTestWithReferenceToExternalDocs().build(), - Reference("#/components/tag") + Reference("#/components/tag") )) .externalDocs(ExternalDocumentationTest().build()) .build() @@ -60,25 +64,49 @@ class ChannelTest: SerDeTest() { companion object { fun bindings(): Map { return mapOf( - Pair("amqp", AMQPChannelBindingTest().build()), - Pair("amqp1", Reference("#/components/channelBindings/amqp1")), - Pair("anypointmq", AnypointMQChannelBindingTest().build()), - Pair("googlepubsub", GooglePubSubChannelBindingTest().build()), - Pair("http", Reference("#/components/channelBindings/http")), - Pair("ibmmq", IBMMQChannelBindingTest().build()), - Pair("jms", Reference("#/components/channelBindings/jms")), - Pair("kafka", KafkaChannelBindingTest().build()), - Pair("mercure", Reference("#/components/channelBindings/mercure")), - Pair("mqtt", Reference("#/components/channelBindings/mqtt")), - Pair("mqtt5", Reference("#/components/channelBindings/mqtt5")), - Pair("nats", Reference("#/components/channelBindings/nats")), - Pair("pulsar", PulsarChannelBindingTest().build()), - Pair("redis", Reference("#/components/channelBindings/redis")), - Pair("sns", Reference("#/components/channelBindings/sns")), - Pair("solace", Reference("#/components/channelBindings/solace")), - Pair("sqs", Reference("#/components/channelBindings/sqs")), - Pair("stomp", Reference("#/components/channelBindings/stomp")), - Pair("ws", WebSocketsChannelBindingTest().build()) + Pair("amqp", AMQPV0_2_0Test.channelBinding()), + Pair("amqp1", + Reference("#/components/channelBindings/amqp1") + ), + Pair("anypointmq", AnypointMQV0_0_1Test.channelBinding()), + Pair("googlepubsub", GooglePubSubV0_1_0Test.channelBinding()), + Pair("http", + Reference("#/components/channelBindings/http") + ), + Pair("ibmmq", IBMMQV0_1_0Test.channelBinding()), + Pair("jms", + Reference("#/components/channelBindings/jms") + ), + Pair("kafka", KafkaV0_5_0Test.channelBinding()), + Pair("mercure", + Reference("#/components/channelBindings/mercure") + ), + Pair("mqtt", + Reference("#/components/channelBindings/mqtt") + ), + Pair("mqtt5", + Reference("#/components/channelBindings/mqtt5") + ), + Pair("nats", + Reference("#/components/channelBindings/nats") + ), + Pair("pulsar", PulsarV0_1_0Test.channelBinding()), + Pair("redis", + Reference("#/components/channelBindings/redis") + ), + Pair("sns", + Reference("#/components/channelBindings/sns") + ), + Pair("solace", + Reference("#/components/channelBindings/solace") + ), + Pair("sqs", + Reference("#/components/channelBindings/sqs") + ), + Pair("stomp", + Reference("#/components/channelBindings/stomp") + ), + Pair("ws", WebSocketsV0_1_0Test.channelBinding()) ) } } @@ -102,16 +130,20 @@ class ChannelTestWithReference: SerDeTest() { .summary("messages about user events.") .description("This channel is used to exchange messages about users signing up") .servers(listOf( - Reference("#/components/servers/1"), - Reference("#/components/servers/2"), - Reference("#/components/servers/3") + Reference("#/components/servers/1"), + Reference("#/components/servers/2"), + Reference("#/components/servers/3") )) .parameters(mapOf( Pair("userId", ParameterTest().build()), - Pair("userStatus", Reference("#/components/parameters/user-status")) + Pair("userStatus", + Reference("#/components/parameters/user-status") + ) )) .messages(mapOf( - Pair("changeStatus", Reference("#/components/parameters/user-status")), + Pair("changeStatus", + Reference("#/components/parameters/user-status") + ), Pair("message", MessageTestWithSchema().build()), Pair("message 2", MessageTestWithMultiFormatSchema().build()), Pair("message with reference", MessageTestWithReference().build()), @@ -120,7 +152,7 @@ class ChannelTestWithReference: SerDeTest() { .tags(listOf( TagTest().build(), TagTestWithReferenceToExternalDocs().build(), - Reference("#/components/tag") + Reference("#/components/tag") )) .externalDocs(Reference("#/components/external-doc")) .build() @@ -129,25 +161,49 @@ class ChannelTestWithReference: SerDeTest() { companion object { fun bindings(): Map { return mapOf( - Pair("amqp", AMQPChannelBindingTest().build()), - Pair("amqp1", Reference("#/components/channelBindings/amqp1")), - Pair("anypointmq", AnypointMQChannelBindingTest().build()), - Pair("googlepubsub", GooglePubSubChannelBindingTest().build()), - Pair("http", Reference("#/components/channelBindings/http")), - Pair("ibmmq", IBMMQChannelBindingTest().build()), - Pair("jms", Reference("#/components/channelBindings/jms")), - Pair("kafka", KafkaChannelBindingTest().build()), - Pair("mercure", Reference("#/components/channelBindings/mercure")), - Pair("mqtt", Reference("#/components/channelBindings/mqtt")), - Pair("mqtt5", Reference("#/components/channelBindings/mqtt5")), - Pair("nats", Reference("#/components/channelBindings/nats")), - Pair("pulsar", PulsarChannelBindingTest().build()), - Pair("redis", Reference("#/components/channelBindings/redis")), - Pair("sns", Reference("#/components/channelBindings/sns")), - Pair("solace", Reference("#/components/channelBindings/solace")), - Pair("sqs", Reference("#/components/channelBindings/sqs")), - Pair("stomp", Reference("#/components/channelBindings/stomp")), - Pair("ws", WebSocketsChannelBindingTest().build()) + Pair("amqp", AMQPV0_2_0Test.channelBinding()), + Pair("amqp1", + Reference("#/components/channelBindings/amqp1") + ), + Pair("anypointmq", AnypointMQV0_0_1Test.channelBinding()), + Pair("googlepubsub", GooglePubSubV0_1_0Test.channelBinding()), + Pair("http", + Reference("#/components/channelBindings/http") + ), + Pair("ibmmq", IBMMQV0_1_0Test.channelBinding()), + Pair("jms", + Reference("#/components/channelBindings/jms") + ), + Pair("kafka", KafkaV0_5_0Test.channelBinding()), + Pair("mercure", + Reference("#/components/channelBindings/mercure") + ), + Pair("mqtt", + Reference("#/components/channelBindings/mqtt") + ), + Pair("mqtt5", + Reference("#/components/channelBindings/mqtt5") + ), + Pair("nats", + Reference("#/components/channelBindings/nats") + ), + Pair("pulsar", PulsarV0_1_0Test.channelBinding()), + Pair("redis", + Reference("#/components/channelBindings/redis") + ), + Pair("sns", + Reference("#/components/channelBindings/sns") + ), + Pair("solace", + Reference("#/components/channelBindings/solace") + ), + Pair("sqs", + Reference("#/components/channelBindings/sqs") + ), + Pair("stomp", + Reference("#/components/channelBindings/stomp") + ), + Pair("ws", WebSocketsV0_1_0Test.channelBinding()) ) } } diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/channel/message/MessageTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/channel/message/MessageTest.kt index f54d28e9..db5c7adb 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/channel/message/MessageTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/channel/message/MessageTest.kt @@ -1,18 +1,18 @@ package com.asyncapi.v3._0_0.model.channel.message -import com.asyncapi.v3.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v3.SerDeTest import com.asyncapi.v3._0_0.model.ExternalDocumentation import com.asyncapi.v3._0_0.model.Tag -import com.asyncapi.v3.binding.message.amqp.AMQPMessageBindingTest -import com.asyncapi.v3.binding.message.anypointmq.AnypointMQMessageBindingTest -import com.asyncapi.v3.binding.message.googlepubsub.GooglePubSubMessageBindingTest -import com.asyncapi.v3.binding.message.http.HTTPMessageBindingTest -import com.asyncapi.v3.binding.message.ibmmq.IBMMQMessageBindingTest -import com.asyncapi.v3.binding.message.kafka.KafkaMessageBindingTest -import com.asyncapi.v3.binding.message.mqtt.MQTTMessageBindingTest -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.multiformat.AsyncAPIFormatSchema +import com.asyncapi.bindings.amqp.AMQPV0_2_0Test +import com.asyncapi.bindings.anypointmq.AnypointMQV0_0_1Test +import com.asyncapi.bindings.googlepubsub.GooglePubSubV0_1_0Test +import com.asyncapi.bindings.http.HTTPV0_3_0Test +import com.asyncapi.bindings.ibmmq.IBMMQV0_1_0Test +import com.asyncapi.bindings.kafka.KafkaV0_5_0Test +import com.asyncapi.bindings.mqtt.MQTTV0_1_0Test +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.multiformat.AsyncAPIFormatSchema class MessageTestWithSchema: SerDeTest() { @@ -26,7 +26,8 @@ class MessageTestWithSchema: SerDeTest() { override fun build(): Message { return Message.builder() - .headers(AsyncAPISchema.builder() + .headers( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair( @@ -46,7 +47,8 @@ class MessageTestWithSchema: SerDeTest() { )) .build() ) - .payload(AsyncAPISchema.builder() + .payload( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair( @@ -84,25 +86,49 @@ class MessageTestWithSchema: SerDeTest() { companion object { fun bindings(): Map { return mapOf( - Pair("amqp", AMQPMessageBindingTest().build()), - Pair("amqp1", Reference("#/components/messageBindings/amqp1")), - Pair("anypointmq", AnypointMQMessageBindingTest().build()), - Pair("googlepubsub", GooglePubSubMessageBindingTest().build()), - Pair("http", HTTPMessageBindingTest().build()), - Pair("ibmmq", IBMMQMessageBindingTest().build()), - Pair("jms", Reference("#/components/messageBindings/jms")), - Pair("kafka", KafkaMessageBindingTest().build()), - Pair("mercure", Reference("#/components/messageBindings/mercure")), - Pair("mqtt", MQTTMessageBindingTest().build()), - Pair("mqtt5", Reference("#/components/messageBindings/mqtt5")), - Pair("nats", Reference("#/components/messageBindings/nats")), - Pair("pulsar", Reference("#/components/messageBindings/pulsar")), - Pair("redis", Reference("#/components/messageBindings/redis")), - Pair("sns", Reference("#/components/messageBindings/sns")), - Pair("solace", Reference("#/components/messageBindings/solace")), - Pair("sqs", Reference("#/components/messageBindings/sqs")), - Pair("stomp", Reference("#/components/messageBindings/stomp")), - Pair("ws", Reference("#/components/messageBindings/ws")) + Pair("amqp", AMQPV0_2_0Test.messageBinding()), + Pair("amqp1", + Reference("#/components/messageBindings/amqp1") + ), + Pair("anypointmq", AnypointMQV0_0_1Test.messageBinding()), + Pair("googlepubsub", GooglePubSubV0_1_0Test.messageBinding()), + Pair("http", HTTPV0_3_0Test.messageBinding()), + Pair("ibmmq", IBMMQV0_1_0Test.messageBinding()), + Pair("jms", + Reference("#/components/messageBindings/jms") + ), + Pair("kafka", KafkaV0_5_0Test.messageBinding()), + Pair("mercure", + Reference("#/components/messageBindings/mercure") + ), + Pair("mqtt", MQTTV0_1_0Test.messageBinding()), + Pair("mqtt5", + Reference("#/components/messageBindings/mqtt5") + ), + Pair("nats", + Reference("#/components/messageBindings/nats") + ), + Pair("pulsar", + Reference("#/components/messageBindings/pulsar") + ), + Pair("redis", + Reference("#/components/messageBindings/redis") + ), + Pair("sns", + Reference("#/components/messageBindings/sns") + ), + Pair("solace", + Reference("#/components/messageBindings/solace") + ), + Pair("sqs", + Reference("#/components/messageBindings/sqs") + ), + Pair("stomp", + Reference("#/components/messageBindings/stomp") + ), + Pair("ws", + Reference("#/components/messageBindings/ws") + ) ) } } @@ -133,29 +159,53 @@ class MessageTestWithReference: SerDeTest() { Tag("user", null, null), Tag("signup", null, null), Tag("register", null, null), - Reference("#/components/tags/tag") + Reference("#/components/tags/tag") )) .externalDocs(Reference("#/components/externalDocs/external-doc")) .bindings(mapOf( - Pair("amqp", AMQPMessageBindingTest().build()), - Pair("amqp1", Reference("#/components/messageBindings/amqp1")), - Pair("anypointmq", AnypointMQMessageBindingTest().build()), - Pair("googlepubsub", GooglePubSubMessageBindingTest().build()), - Pair("http", HTTPMessageBindingTest().build()), - Pair("ibmmq", IBMMQMessageBindingTest().build()), - Pair("jms", Reference("#/components/messageBindings/jms")), - Pair("kafka", KafkaMessageBindingTest().build()), - Pair("mercure", Reference("#/components/messageBindings/mercure")), - Pair("mqtt", MQTTMessageBindingTest().build()), - Pair("mqtt5", Reference("#/components/messageBindings/mqtt5")), - Pair("nats", Reference("#/components/messageBindings/nats")), - Pair("pulsar", Reference("#/components/messageBindings/pulsar")), - Pair("redis", Reference("#/components/messageBindings/redis")), - Pair("sns", Reference("#/components/messageBindings/sns")), - Pair("solace", Reference("#/components/messageBindings/solace")), - Pair("sqs", Reference("#/components/messageBindings/sqs")), - Pair("stomp", Reference("#/components/messageBindings/stomp")), - Pair("ws", Reference("#/components/messageBindings/ws")) + Pair("amqp", AMQPV0_2_0Test.messageBinding()), + Pair("amqp1", + Reference("#/components/messageBindings/amqp1") + ), + Pair("anypointmq", AnypointMQV0_0_1Test.messageBinding()), + Pair("googlepubsub", GooglePubSubV0_1_0Test.messageBinding()), + Pair("http", HTTPV0_3_0Test.messageBinding()), + Pair("ibmmq", IBMMQV0_1_0Test.messageBinding()), + Pair("jms", + Reference("#/components/messageBindings/jms") + ), + Pair("kafka", KafkaV0_5_0Test.messageBinding()), + Pair("mercure", + Reference("#/components/messageBindings/mercure") + ), + Pair("mqtt", MQTTV0_1_0Test.messageBinding()), + Pair("mqtt5", + Reference("#/components/messageBindings/mqtt5") + ), + Pair("nats", + Reference("#/components/messageBindings/nats") + ), + Pair("pulsar", + Reference("#/components/messageBindings/pulsar") + ), + Pair("redis", + Reference("#/components/messageBindings/redis") + ), + Pair("sns", + Reference("#/components/messageBindings/sns") + ), + Pair("solace", + Reference("#/components/messageBindings/solace") + ), + Pair("sqs", + Reference("#/components/messageBindings/sqs") + ), + Pair("stomp", + Reference("#/components/messageBindings/stomp") + ), + Pair("ws", + Reference("#/components/messageBindings/ws") + ) )) .examples(listOf(MessageExampleTest().build())) .traits(listOf( @@ -180,37 +230,48 @@ class MessageTestWithMultiFormatSchema: SerDeTest() { override fun build(): Message { return Message.builder() - .headers(AsyncAPIFormatSchema( + .headers( + AsyncAPIFormatSchema( "application/vnd.aai.asyncapi+json;version=3.0.0", AsyncAPISchema.builder() - .type("object") - .properties(mapOf( - Pair("correlationId", AsyncAPISchema.builder() - .type("string") - .description("Correlation ID set by application") - .build() - ), - Pair("applicationInstanceId", AsyncAPISchema.builder() - .type("string") - .description("Unique identifier for a given instance of the publishing application") - .build() - ) - )) - .build() - )) - .payload(AsyncAPIFormatSchema( + .type("object") + .properties( + mapOf( + Pair( + "correlationId", AsyncAPISchema.builder() + .type("string") + .description("Correlation ID set by application") + .build() + ), + Pair( + "applicationInstanceId", AsyncAPISchema.builder() + .type("string") + .description("Unique identifier for a given instance of the publishing application") + .build() + ) + ) + ) + .build() + ) + ) + .payload( + AsyncAPIFormatSchema( "application/vnd.aai.asyncapi+json;version=3.0.0", AsyncAPISchema.builder() - .type("object") - .properties(mapOf( - Pair("metric", AsyncAPISchema.builder() - .type("string") - .description("Metric set by application") - .build() - ) - )) - .build() - )) + .type("object") + .properties( + mapOf( + Pair( + "metric", AsyncAPISchema.builder() + .type("string") + .description("Metric set by application") + .build() + ) + ) + ) + .build() + ) + ) .correlationId(Reference("#/components/messages/message-correlation-id")) .contentType("application/json") .name("UserSignup") @@ -221,29 +282,53 @@ class MessageTestWithMultiFormatSchema: SerDeTest() { Tag("user", null, null), Tag("signup", null, null), Tag("register", null, null), - Reference("#/components/tags/tag") + Reference("#/components/tags/tag") )) .externalDocs(Reference("#/components/externalDocs/external-doc")) .bindings(mapOf( - Pair("amqp", AMQPMessageBindingTest().build()), - Pair("amqp1", Reference("#/components/messageBindings/amqp1")), - Pair("anypointmq", AnypointMQMessageBindingTest().build()), - Pair("googlepubsub", GooglePubSubMessageBindingTest().build()), - Pair("http", HTTPMessageBindingTest().build()), - Pair("ibmmq", IBMMQMessageBindingTest().build()), - Pair("jms", Reference("#/components/messageBindings/jms")), - Pair("kafka", KafkaMessageBindingTest().build()), - Pair("mercure", Reference("#/components/messageBindings/mercure")), - Pair("mqtt", MQTTMessageBindingTest().build()), - Pair("mqtt5", Reference("#/components/messageBindings/mqtt5")), - Pair("nats", Reference("#/components/messageBindings/nats")), - Pair("pulsar", Reference("#/components/messageBindings/pulsar")), - Pair("redis", Reference("#/components/messageBindings/redis")), - Pair("sns", Reference("#/components/messageBindings/sns")), - Pair("solace", Reference("#/components/messageBindings/solace")), - Pair("sqs", Reference("#/components/messageBindings/sqs")), - Pair("stomp", Reference("#/components/messageBindings/stomp")), - Pair("ws", Reference("#/components/messageBindings/ws")) + Pair("amqp", AMQPV0_2_0Test.messageBinding()), + Pair("amqp1", + Reference("#/components/messageBindings/amqp1") + ), + Pair("anypointmq", AnypointMQV0_0_1Test.messageBinding()), + Pair("googlepubsub", GooglePubSubV0_1_0Test.messageBinding()), + Pair("http", HTTPV0_3_0Test.messageBinding()), + Pair("ibmmq", IBMMQV0_1_0Test.messageBinding()), + Pair("jms", + Reference("#/components/messageBindings/jms") + ), + Pair("kafka", KafkaV0_5_0Test.messageBinding()), + Pair("mercure", + Reference("#/components/messageBindings/mercure") + ), + Pair("mqtt", MQTTV0_1_0Test.messageBinding()), + Pair("mqtt5", + Reference("#/components/messageBindings/mqtt5") + ), + Pair("nats", + Reference("#/components/messageBindings/nats") + ), + Pair("pulsar", + Reference("#/components/messageBindings/pulsar") + ), + Pair("redis", + Reference("#/components/messageBindings/redis") + ), + Pair("sns", + Reference("#/components/messageBindings/sns") + ), + Pair("solace", + Reference("#/components/messageBindings/solace") + ), + Pair("sqs", + Reference("#/components/messageBindings/sqs") + ), + Pair("stomp", + Reference("#/components/messageBindings/stomp") + ), + Pair("ws", + Reference("#/components/messageBindings/ws") + ) )) .examples(listOf(MessageExampleTest().build())) .traits(listOf( diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/channel/message/MessageTraitTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/channel/message/MessageTraitTest.kt index 1a8e246e..4f006572 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/channel/message/MessageTraitTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/channel/message/MessageTraitTest.kt @@ -1,18 +1,18 @@ package com.asyncapi.v3._0_0.model.channel.message -import com.asyncapi.v3.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v3.SerDeTest import com.asyncapi.v3._0_0.model.ExternalDocumentation import com.asyncapi.v3._0_0.model.Tag -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.binding.message.amqp.AMQPMessageBindingTest -import com.asyncapi.v3.binding.message.anypointmq.AnypointMQMessageBindingTest -import com.asyncapi.v3.binding.message.googlepubsub.GooglePubSubMessageBindingTest -import com.asyncapi.v3.binding.message.http.HTTPMessageBindingTest -import com.asyncapi.v3.binding.message.ibmmq.IBMMQMessageBindingTest -import com.asyncapi.v3.binding.message.kafka.KafkaMessageBindingTest -import com.asyncapi.v3.binding.message.mqtt.MQTTMessageBindingTest -import com.asyncapi.v3.schema.multiformat.AsyncAPIFormatSchema +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.bindings.amqp.AMQPV0_2_0Test +import com.asyncapi.bindings.anypointmq.AnypointMQV0_0_1Test +import com.asyncapi.bindings.googlepubsub.GooglePubSubV0_1_0Test +import com.asyncapi.bindings.http.HTTPV0_3_0Test +import com.asyncapi.bindings.ibmmq.IBMMQV0_1_0Test +import com.asyncapi.bindings.kafka.KafkaV0_5_0Test +import com.asyncapi.bindings.mqtt.MQTTV0_1_0Test +import com.asyncapi.schemas.asyncapi.multiformat.AsyncAPIFormatSchema class MessageTraitTestWithSchema: SerDeTest() { @@ -26,7 +26,8 @@ class MessageTraitTestWithSchema: SerDeTest() { override fun build(): MessageTrait { return MessageTrait.builder() - .headers(AsyncAPISchema.builder() + .headers( + AsyncAPISchema.builder() .type("object") .properties(mapOf( Pair( @@ -59,25 +60,49 @@ class MessageTraitTestWithSchema: SerDeTest() { )) .externalDocs(ExternalDocumentation("User sign up rules", "messages/sign-up-rules")) .bindings(mapOf( - Pair("amqp", AMQPMessageBindingTest().build()), - Pair("amqp1", Reference("#/components/messageBindings/amqp1")), - Pair("anypointmq", AnypointMQMessageBindingTest().build()), - Pair("googlepubsub", GooglePubSubMessageBindingTest().build()), - Pair("http", HTTPMessageBindingTest().build()), - Pair("ibmmq", IBMMQMessageBindingTest().build()), - Pair("jms", Reference("#/components/messageBindings/jms")), - Pair("kafka", KafkaMessageBindingTest().build()), - Pair("mercure", Reference("#/components/messageBindings/mercure")), - Pair("mqtt", MQTTMessageBindingTest().build()), - Pair("mqtt5", Reference("#/components/messageBindings/mqtt5")), - Pair("nats", Reference("#/components/messageBindings/nats")), - Pair("pulsar", Reference("#/components/messageBindings/pulsar")), - Pair("redis", Reference("#/components/messageBindings/redis")), - Pair("sns", Reference("#/components/messageBindings/sns")), - Pair("solace", Reference("#/components/messageBindings/solace")), - Pair("sqs", Reference("#/components/messageBindings/sqs")), - Pair("stomp", Reference("#/components/messageBindings/stomp")), - Pair("ws", Reference("#/components/messageBindings/ws")) + Pair("amqp", AMQPV0_2_0Test.messageBinding()), + Pair("amqp1", + Reference("#/components/messageBindings/amqp1") + ), + Pair("anypointmq", AnypointMQV0_0_1Test.messageBinding()), + Pair("googlepubsub", GooglePubSubV0_1_0Test.messageBinding()), + Pair("http", HTTPV0_3_0Test.messageBinding()), + Pair("ibmmq", IBMMQV0_1_0Test.messageBinding()), + Pair("jms", + Reference("#/components/messageBindings/jms") + ), + Pair("kafka", KafkaV0_5_0Test.messageBinding()), + Pair("mercure", + Reference("#/components/messageBindings/mercure") + ), + Pair("mqtt", MQTTV0_1_0Test.messageBinding()), + Pair("mqtt5", + Reference("#/components/messageBindings/mqtt5") + ), + Pair("nats", + Reference("#/components/messageBindings/nats") + ), + Pair("pulsar", + Reference("#/components/messageBindings/pulsar") + ), + Pair("redis", + Reference("#/components/messageBindings/redis") + ), + Pair("sns", + Reference("#/components/messageBindings/sns") + ), + Pair("solace", + Reference("#/components/messageBindings/solace") + ), + Pair("sqs", + Reference("#/components/messageBindings/sqs") + ), + Pair("stomp", + Reference("#/components/messageBindings/stomp") + ), + Pair("ws", + Reference("#/components/messageBindings/ws") + ) )) .examples(listOf(MessageExampleTest().build())) .build() @@ -108,29 +133,53 @@ class MessageTraitTestWithReference: SerDeTest() { Tag("user", null, null), Tag("signup", null, null), Tag("register", null, null), - Reference("#/components/tags/tag") + Reference("#/components/tags/tag") )) .externalDocs(Reference("#/components/externalDocs/external-doc")) .bindings(mapOf( - Pair("amqp", AMQPMessageBindingTest().build()), - Pair("amqp1", Reference("#/components/messageBindings/amqp1")), - Pair("anypointmq", AnypointMQMessageBindingTest().build()), - Pair("googlepubsub", GooglePubSubMessageBindingTest().build()), - Pair("http", HTTPMessageBindingTest().build()), - Pair("ibmmq", IBMMQMessageBindingTest().build()), - Pair("jms", Reference("#/components/messageBindings/jms")), - Pair("kafka", KafkaMessageBindingTest().build()), - Pair("mercure", Reference("#/components/messageBindings/mercure")), - Pair("mqtt", MQTTMessageBindingTest().build()), - Pair("mqtt5", Reference("#/components/messageBindings/mqtt5")), - Pair("nats", Reference("#/components/messageBindings/nats")), - Pair("pulsar", Reference("#/components/messageBindings/pulsar")), - Pair("redis", Reference("#/components/messageBindings/redis")), - Pair("sns", Reference("#/components/messageBindings/sns")), - Pair("solace", Reference("#/components/messageBindings/solace")), - Pair("sqs", Reference("#/components/messageBindings/sqs")), - Pair("stomp", Reference("#/components/messageBindings/stomp")), - Pair("ws", Reference("#/components/messageBindings/ws")) + Pair("amqp", AMQPV0_2_0Test.messageBinding()), + Pair("amqp1", + Reference("#/components/messageBindings/amqp1") + ), + Pair("anypointmq", AnypointMQV0_0_1Test.messageBinding()), + Pair("googlepubsub", GooglePubSubV0_1_0Test.messageBinding()), + Pair("http", HTTPV0_3_0Test.messageBinding()), + Pair("ibmmq", IBMMQV0_1_0Test.messageBinding()), + Pair("jms", + Reference("#/components/messageBindings/jms") + ), + Pair("kafka", KafkaV0_5_0Test.messageBinding()), + Pair("mercure", + Reference("#/components/messageBindings/mercure") + ), + Pair("mqtt", MQTTV0_1_0Test.messageBinding()), + Pair("mqtt5", + Reference("#/components/messageBindings/mqtt5") + ), + Pair("nats", + Reference("#/components/messageBindings/nats") + ), + Pair("pulsar", + Reference("#/components/messageBindings/pulsar") + ), + Pair("redis", + Reference("#/components/messageBindings/redis") + ), + Pair("sns", + Reference("#/components/messageBindings/sns") + ), + Pair("solace", + Reference("#/components/messageBindings/solace") + ), + Pair("sqs", + Reference("#/components/messageBindings/sqs") + ), + Pair("stomp", + Reference("#/components/messageBindings/stomp") + ), + Pair("ws", + Reference("#/components/messageBindings/ws") + ) )) .examples(listOf(MessageExampleTest().build())) .build() @@ -150,24 +199,30 @@ class MessageTraitTestWithMultiFormatSchema: SerDeTest() { override fun build(): MessageTrait { return MessageTrait.builder() - .headers(AsyncAPIFormatSchema( + .headers( + AsyncAPIFormatSchema( "application/vnd.aai.asyncapi+json;version=3.0.0", AsyncAPISchema.builder() - .type("object") - .properties(mapOf( - Pair("correlationId", AsyncAPISchema.builder() - .type("string") - .description("Correlation ID set by application") - .build() - ), - Pair("applicationInstanceId", AsyncAPISchema.builder() - .type("string") - .description("Unique identifier for a given instance of the publishing application") - .build() - ) - )) - .build() - )) + .type("object") + .properties( + mapOf( + Pair( + "correlationId", AsyncAPISchema.builder() + .type("string") + .description("Correlation ID set by application") + .build() + ), + Pair( + "applicationInstanceId", AsyncAPISchema.builder() + .type("string") + .description("Unique identifier for a given instance of the publishing application") + .build() + ) + ) + ) + .build() + ) + ) .correlationId(Reference("#/components/messages/message-correlation-id")) .contentType("application/json") .name("UserSignup") @@ -178,29 +233,53 @@ class MessageTraitTestWithMultiFormatSchema: SerDeTest() { Tag("user", null, null), Tag("signup", null, null), Tag("register", null, null), - Reference("#/components/tags/tag") + Reference("#/components/tags/tag") )) .externalDocs(Reference("#/components/externalDocs/external-doc")) .bindings(mapOf( - Pair("amqp", AMQPMessageBindingTest().build()), - Pair("amqp1", Reference("#/components/messageBindings/amqp1")), - Pair("anypointmq", AnypointMQMessageBindingTest().build()), - Pair("googlepubsub", GooglePubSubMessageBindingTest().build()), - Pair("http", HTTPMessageBindingTest().build()), - Pair("ibmmq", IBMMQMessageBindingTest().build()), - Pair("jms", Reference("#/components/messageBindings/jms")), - Pair("kafka", KafkaMessageBindingTest().build()), - Pair("mercure", Reference("#/components/messageBindings/mercure")), - Pair("mqtt", MQTTMessageBindingTest().build()), - Pair("mqtt5", Reference("#/components/messageBindings/mqtt5")), - Pair("nats", Reference("#/components/messageBindings/nats")), - Pair("pulsar", Reference("#/components/messageBindings/pulsar")), - Pair("redis", Reference("#/components/messageBindings/redis")), - Pair("sns", Reference("#/components/messageBindings/sns")), - Pair("solace", Reference("#/components/messageBindings/solace")), - Pair("sqs", Reference("#/components/messageBindings/sqs")), - Pair("stomp", Reference("#/components/messageBindings/stomp")), - Pair("ws", Reference("#/components/messageBindings/ws")) + Pair("amqp", AMQPV0_2_0Test.messageBinding()), + Pair("amqp1", + Reference("#/components/messageBindings/amqp1") + ), + Pair("anypointmq", AnypointMQV0_0_1Test.messageBinding()), + Pair("googlepubsub", GooglePubSubV0_1_0Test.messageBinding()), + Pair("http", HTTPV0_3_0Test.messageBinding()), + Pair("ibmmq", IBMMQV0_1_0Test.messageBinding()), + Pair("jms", + Reference("#/components/messageBindings/jms") + ), + Pair("kafka", KafkaV0_5_0Test.messageBinding()), + Pair("mercure", + Reference("#/components/messageBindings/mercure") + ), + Pair("mqtt", MQTTV0_1_0Test.messageBinding()), + Pair("mqtt5", + Reference("#/components/messageBindings/mqtt5") + ), + Pair("nats", + Reference("#/components/messageBindings/nats") + ), + Pair("pulsar", + Reference("#/components/messageBindings/pulsar") + ), + Pair("redis", + Reference("#/components/messageBindings/redis") + ), + Pair("sns", + Reference("#/components/messageBindings/sns") + ), + Pair("solace", + Reference("#/components/messageBindings/solace") + ), + Pair("sqs", + Reference("#/components/messageBindings/sqs") + ), + Pair("stomp", + Reference("#/components/messageBindings/stomp") + ), + Pair("ws", + Reference("#/components/messageBindings/ws") + ) )) .examples(listOf(MessageExampleTest().build())) .build() diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/channel/message/MessageWithArrayPayloadTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/channel/message/MessageWithArrayPayloadTest.kt index f82d84c2..80ce5ed8 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/channel/message/MessageWithArrayPayloadTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/channel/message/MessageWithArrayPayloadTest.kt @@ -1,7 +1,7 @@ package com.asyncapi.v3._0_0.model.channel.message import com.asyncapi.v3.ClasspathUtils -import com.asyncapi.v3.schema.AsyncAPISchema +import com.asyncapi.schemas.asyncapi.AsyncAPISchema import com.fasterxml.jackson.databind.ObjectMapper import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Test diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/component/ComponentsTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/component/ComponentsTest.kt index 8d85f021..ddf6b1f2 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/component/ComponentsTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/component/ComponentsTest.kt @@ -1,6 +1,6 @@ package com.asyncapi.v3._0_0.model.component -import com.asyncapi.v3.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v3.SerDeTest import com.asyncapi.v3._0_0.model.ExternalDocumentationTest import com.asyncapi.v3._0_0.model.TagTest @@ -18,16 +18,16 @@ import com.asyncapi.v3._0_0.model.operation.reply.OperationReplyTest import com.asyncapi.v3._0_0.model.operation.reply.OperationReplyTestWithReference import com.asyncapi.v3._0_0.model.server.ServerTest import com.asyncapi.v3._0_0.model.server.ServerVariableTest -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.JsonSchema -import com.asyncapi.v3.schema.Type -import com.asyncapi.v3.schema.multiformat.JsonFormatSchema -import com.asyncapi.v3.security_scheme.ApiKeySecuritySchemeTest -import com.asyncapi.v3.security_scheme.OpenIdConnectSecuritySchemeTest -import com.asyncapi.v3.security_scheme.http.HttpApiKeySecuritySchemeTest -import com.asyncapi.v3.security_scheme.http.HttpSecuritySchemeBasicTest -import com.asyncapi.v3.security_scheme.http.HttpSecuritySchemeBearerTest -import com.asyncapi.v3.security_scheme.oauth2.OAuth2SecuritySchemeTest +import com.asyncapi.schemas.asyncapi.AsyncAPISchema +import com.asyncapi.schemas.json.JsonSchema +import com.asyncapi.schemas.Type +import com.asyncapi.schemas.asyncapi.multiformat.JsonFormatSchema +import com.asyncapi.schemas.security.v3.ApiKeySecuritySchemeTest +import com.asyncapi.schemas.security.v3.OpenIdConnectSecuritySchemeTest +import com.asyncapi.schemas.security.v3.http.HttpApiKeySecuritySchemeTest +import com.asyncapi.schemas.security.v3.http.HttpSecuritySchemeBasicTest +import com.asyncapi.schemas.security.v3.http.HttpSecuritySchemeBearerTest +import com.asyncapi.schemas.security.v3.oauth2.OAuth2SecuritySchemeTest /** * @version 3.0-.0 @@ -62,88 +62,133 @@ class ComponentsTest: SerDeTest() { "application/schema+json;version=draft-07", JsonSchema.builder() .type("object") - .properties(mapOf( - Pair("id", JsonSchema.builder() - .type("integer") - .format("int64") - .build() - ), - Pair("name", JsonSchema.builder() - .type("string") - .build() + .properties( + mapOf( + Pair( + "id", JsonSchema.builder() + .type("integer") + .format("int64") + .build() + ), + Pair( + "name", JsonSchema.builder() + .type("string") + .build() + ) ) - )) + ) .build() - )), - Pair("User", Reference("#/components/schemas/user")) + ) + ), + Pair("User", + Reference("#/components/schemas/user") + ) )) .servers(mapOf( Pair("mqtt-test", ServerTest().build()), - Pair("mqtt-stage", Reference("#/components/servers/mqtt-stage")) + Pair("mqtt-stage", + Reference("#/components/servers/mqtt-stage") + ) )) .serverVariables(mapOf( Pair("port", ServerVariableTest().build()), - Pair("basePath", Reference("#/components/serverVariables/basePath")) + Pair("basePath", + Reference("#/components/serverVariables/basePath") + ) )) .channels(mapOf( Pair("channel 1", ChannelTest().build()), Pair("channel 2", ChannelTestWithReference().build()), - Pair("channel 3", Reference("#/components/channels/channel")), + Pair("channel 3", + Reference("#/components/channels/channel") + ), )) .operations(mapOf( Pair("operation 1", OperationTest().build()), Pair("operation 2", OperationTestWithReference().build()), - Pair("operation 3", Reference("#/components/operations/operation")) + Pair("operation 3", + Reference("#/components/operations/operation") + ) )) .replies(mapOf( Pair("reply 1", OperationReplyTest().build()), Pair("reply 2", OperationReplyTestWithReference().build()), - Pair("reply 3", Reference("#/components/replies/reply")) + Pair("reply 3", + Reference("#/components/replies/reply") + ) )) .replyAddresses(mapOf( Pair("reply addresses 1", OperationReplyAddressTest().build()), - Pair("reply addresses 2", Reference("#/components/replyAddresses/replyAddress")) + Pair("reply addresses 2", + Reference("#/components/replyAddresses/replyAddress") + ) )) .messages(mapOf( Pair("message 1", MessageTestWithSchema().build()), Pair("message 2", MessageTestWithMultiFormatSchema().build()), Pair("message 3", MessageTestWithReference().build()), - Pair("message 4", Reference("#/components/messages/message")) + Pair("message 4", + Reference("#/components/messages/message") + ) )) .securitySchemes(mapOf( Pair("apiKey", ApiKeySecuritySchemeTest().build()), - Pair("asymmetricEncryption", Reference("#/components/securitySchemes/asymmetricEncryption")), - Pair("gssapi", Reference("#/components/securitySchemes/gssapi")), + Pair("asymmetricEncryption", + Reference("#/components/securitySchemes/asymmetricEncryption") + ), + Pair("gssapi", + Reference("#/components/securitySchemes/gssapi") + ), Pair("oauth2", OAuth2SecuritySchemeTest().build()), Pair("openIdConnect", OpenIdConnectSecuritySchemeTest().build()), Pair("httpApiKey", HttpApiKeySecuritySchemeTest().build()), Pair("httpBasic", HttpSecuritySchemeBasicTest().build()), Pair("httpBearer", HttpSecuritySchemeBearerTest().build()), - Pair("plain", Reference("#/components/securitySchemes/plain")), - Pair("scramSha256", Reference("#/components/securitySchemes/scramSha256")), - Pair("scramSha512", Reference("#/components/securitySchemes/scramSha512")), - Pair("symmetricEncryption", Reference("#/components/securitySchemes/symmetricEncryption")), - Pair("userPassword", Reference("#/components/securitySchemes/userPassword")), - Pair("X509", Reference("#/components/securitySchemes/X509")), + Pair("plain", + Reference("#/components/securitySchemes/plain") + ), + Pair("scramSha256", + Reference("#/components/securitySchemes/scramSha256") + ), + Pair("scramSha512", + Reference("#/components/securitySchemes/scramSha512") + ), + Pair("symmetricEncryption", + Reference("#/components/securitySchemes/symmetricEncryption") + ), + Pair("userPassword", + Reference("#/components/securitySchemes/userPassword") + ), + Pair("X509", + Reference("#/components/securitySchemes/X509") + ), )) .parameters(mapOf( Pair("parameter 1", ParameterTest().build()), - Pair("parameter 2", Reference("#/components/parameters/parameter")) + Pair("parameter 2", + Reference("#/components/parameters/parameter") + ) )) .correlationIds(mapOf( Pair("correlationId 1", CorrelationIdTest().build()), - Pair("correlationId 2", Reference("#/correlationIds/parameters/correlationId")) + Pair("correlationId 2", + Reference("#/correlationIds/parameters/correlationId") + ) )) .operationTraits(mapOf( Pair("operationTrait 1", OperationTraitTest().build()), Pair("operationTrait 2", OperationTraitTestWithReference().build()), - Pair("operationTrait 3", Reference("#/components/operationTraits/operationTrait")) + Pair("operationTrait 3", + Reference("#/components/operationTraits/operationTrait") + ) )) .messageTraits(mapOf( Pair("messageTrait 1", MessageTraitTestWithSchema().build()), Pair("messageTrait 2", MessageTraitTestWithMultiFormatSchema().build()), Pair("messageTrait 3", MessageTraitTestWithReference().build()), - Pair("messageTrait 4", Reference("#/components/messageTraits/messageTrait")) + Pair("messageTrait 4", + Reference("#/components/messageTraits/messageTrait") + ) )) .serverBindings(ServerTest.bindings()) .channelBindings(ChannelTest.bindings()) @@ -151,12 +196,16 @@ class ComponentsTest: SerDeTest() { .messageBindings(MessageTestWithSchema.bindings()) .externalDocs(mapOf( Pair("externalDoc 1", ExternalDocumentationTest().build()), - Pair("externalDoc 2", Reference("#/components/externalDocs/externalDoc")), + Pair("externalDoc 2", + Reference("#/components/externalDocs/externalDoc") + ), )) .tags(mapOf( Pair("tag 1", TagTest().build()), Pair("tag 2", TagTestWithReferenceToExternalDocs().build()), - Pair("tag 3", Reference("#/components/tags/tag")), + Pair("tag 3", + Reference("#/components/tags/tag") + ), )) .build() } diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/info/InfoTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/info/InfoTest.kt index 9c2ccfbc..becf5045 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/info/InfoTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/info/InfoTest.kt @@ -1,6 +1,6 @@ package com.asyncapi.v3._0_0.model.info -import com.asyncapi.v3.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v3.SerDeTest import com.asyncapi.v3._0_0.model.ExternalDocumentationTest import com.asyncapi.v3._0_0.model.TagTest @@ -52,7 +52,7 @@ class InfoTestWithReferences: SerDeTest() { ContactTest().build(), LicenseTest().build(), listOf(Reference("#/components/schemas/tag")), - Reference("#/components/schemas/externalDoc"), + Reference("#/components/schemas/externalDoc"), ) } diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/operation/OperationTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/operation/OperationTest.kt index 295ef12b..543d25be 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/operation/OperationTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/operation/OperationTest.kt @@ -1,17 +1,17 @@ package com.asyncapi.v3._0_0.model.operation -import com.asyncapi.v3.binding.operation.amqp.AMQPOperationBindingTest -import com.asyncapi.v3.binding.operation.http.HTTPOperationBindingTest -import com.asyncapi.v3.binding.operation.kafka.KafkaOperationBindingTest -import com.asyncapi.v3.binding.operation.mqtt.MQTTOperationBindingTest -import com.asyncapi.v3.binding.operation.nats.NATSOperationBindingTest -import com.asyncapi.v3.binding.operation.solace.SolaceOperationBindingTest -import com.asyncapi.v3.Reference +import com.asyncapi.bindings.amqp.AMQPV0_2_0Test +import com.asyncapi.bindings.http.HTTPV0_3_0Test +import com.asyncapi.bindings.kafka.KafkaV0_5_0Test +import com.asyncapi.bindings.mqtt.MQTTV0_1_0Test +import com.asyncapi.bindings.nats.NATSV0_1_0Test +import com.asyncapi.bindings.solace.SolaceV0_4_0Test +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v3.SerDeTest import com.asyncapi.v3._0_0.model.ExternalDocumentation import com.asyncapi.v3._0_0.model.Tag import com.asyncapi.v3._0_0.model.operation.reply.OperationReplyTest -import com.asyncapi.v3.security_scheme.ApiKeySecuritySchemeTest +import com.asyncapi.schemas.security.v3.ApiKeySecuritySchemeTest /** * @version 3.0.0 @@ -36,25 +36,25 @@ class OperationTest: SerDeTest() { .description("Send message to remote server") .security(listOf( ApiKeySecuritySchemeTest().build(), - Reference("#/components/security/plain") + Reference("#/components/security/plain") )) .tags(listOf( Tag("messages", "operations with messages", ExternalDocumentation( "Messages validation rules", "messages/validation-rules" )), - Reference("#/components/tags/tag") + Reference("#/components/tags/tag") )) .externalDocs(ExternalDocumentation("Messages validation rules", "messages/validation-rules")) .bindings(bindings()) .traits(listOf( OperationTraitTest().build(), OperationTraitTestWithReference().build(), - Reference("#/components/operations/trait") + Reference("#/components/operations/trait") )) .messages(listOf( - Reference("#/components/messages/message 1"), - Reference("#/components/messages/message 2"), - Reference("#/components/messages/message 3"), + Reference("#/components/messages/message 1"), + Reference("#/components/messages/message 2"), + Reference("#/components/messages/message 3"), )) .reply(OperationReplyTest().build()) .build() @@ -63,25 +63,51 @@ class OperationTest: SerDeTest() { companion object { fun bindings(): Map { return mapOf( - Pair("amqp", AMQPOperationBindingTest().build()), - Pair("amqp1", Reference("#/components/operationBindings/amqp1")), - Pair("anypointmq", Reference("#/components/operationBindings/anypointmq")), - Pair("googlepubsub", Reference("#/components/operationBindings/googlepubsub")), - Pair("http", HTTPOperationBindingTest().build()), - Pair("ibmmq", Reference("#/components/operationBindings/ibmmq")), - Pair("jms", Reference("#/components/operationBindings/jms")), - Pair("kafka", KafkaOperationBindingTest().build()), - Pair("mercure", Reference("#/components/operationBindings/mercure")), - Pair("mqtt", MQTTOperationBindingTest().build()), - Pair("mqtt5", Reference("#/components/operationBindings/mqtt5")), - Pair("nats", NATSOperationBindingTest().build()), - Pair("pulsar", Reference("#/components/operationBindings/pulsar")), - Pair("redis", Reference("#/components/operationBindings/redis")), - Pair("sns", Reference("#/components/operationBindings/sns")), - Pair("solace", SolaceOperationBindingTest().build()), - Pair("sqs", Reference("#/components/operationBindings/sqs")), - Pair("stomp", Reference("#/components/operationBindings/stomp")), - Pair("ws", Reference("#/components/operationBindings/ws")) + Pair("amqp", AMQPV0_2_0Test.operationBinding()), + Pair("amqp1", + Reference("#/components/operationBindings/amqp1") + ), + Pair("anypointmq", + Reference("#/components/operationBindings/anypointmq") + ), + Pair("googlepubsub", + Reference("#/components/operationBindings/googlepubsub") + ), + Pair("http", HTTPV0_3_0Test.operationBinding()), + Pair("ibmmq", + Reference("#/components/operationBindings/ibmmq") + ), + Pair("jms", + Reference("#/components/operationBindings/jms") + ), + Pair("kafka", KafkaV0_5_0Test.operationBinding()), + Pair("mercure", + Reference("#/components/operationBindings/mercure") + ), + Pair("mqtt", MQTTV0_1_0Test.operationBinding()), + Pair("mqtt5", + Reference("#/components/operationBindings/mqtt5") + ), + Pair("nats", NATSV0_1_0Test.operationBinding()), + Pair("pulsar", + Reference("#/components/operationBindings/pulsar") + ), + Pair("redis", + Reference("#/components/operationBindings/redis") + ), + Pair("sns", + Reference("#/components/operationBindings/sns") + ), + Pair("solace", SolaceV0_4_0Test.operationBinding()), + Pair("sqs", + Reference("#/components/operationBindings/sqs") + ), + Pair("stomp", + Reference("#/components/operationBindings/stomp") + ), + Pair("ws", + Reference("#/components/operationBindings/ws") + ) ) } } @@ -107,45 +133,71 @@ class OperationTestWithReference: SerDeTest() { .description("Send message to remote server") .security(listOf( ApiKeySecuritySchemeTest().build(), - Reference("#/components/security/plain") + Reference("#/components/security/plain") )) .tags(listOf( Tag("messages", "operations with messages", ExternalDocumentation( "Messages validation rules", "messages/validation-rules" )), - Reference("#/components/tags/tag") + Reference("#/components/tags/tag") )) .externalDocs(Reference("#/components/externalDocs/external-doc")) .bindings(mapOf( - Pair("amqp", AMQPOperationBindingTest().build()), - Pair("amqp1", Reference("#/components/operationBindings/amqp1")), - Pair("anypointmq", Reference("#/components/operationBindings/anypointmq")), - Pair("googlepubsub", Reference("#/components/operationBindings/googlepubsub")), - Pair("http", HTTPOperationBindingTest().build()), - Pair("ibmmq", Reference("#/components/operationBindings/ibmmq")), - Pair("jms", Reference("#/components/operationBindings/jms")), - Pair("kafka", KafkaOperationBindingTest().build()), - Pair("mercure", Reference("#/components/operationBindings/mercure")), - Pair("mqtt", MQTTOperationBindingTest().build()), - Pair("mqtt5", Reference("#/components/operationBindings/mqtt5")), - Pair("nats", NATSOperationBindingTest().build()), - Pair("pulsar", Reference("#/components/operationBindings/pulsar")), - Pair("redis", Reference("#/components/operationBindings/redis")), - Pair("sns", Reference("#/components/operationBindings/sns")), - Pair("solace", SolaceOperationBindingTest().build()), - Pair("sqs", Reference("#/components/operationBindings/sqs")), - Pair("stomp", Reference("#/components/operationBindings/stomp")), - Pair("ws", Reference("#/components/operationBindings/ws")) + Pair("amqp", AMQPV0_2_0Test.operationBinding()), + Pair("amqp1", + Reference("#/components/operationBindings/amqp1") + ), + Pair("anypointmq", + Reference("#/components/operationBindings/anypointmq") + ), + Pair("googlepubsub", + Reference("#/components/operationBindings/googlepubsub") + ), + Pair("http", HTTPV0_3_0Test.operationBinding()), + Pair("ibmmq", + Reference("#/components/operationBindings/ibmmq") + ), + Pair("jms", + Reference("#/components/operationBindings/jms") + ), + Pair("kafka", KafkaV0_5_0Test.operationBinding()), + Pair("mercure", + Reference("#/components/operationBindings/mercure") + ), + Pair("mqtt", MQTTV0_1_0Test.operationBinding()), + Pair("mqtt5", + Reference("#/components/operationBindings/mqtt5") + ), + Pair("nats", NATSV0_1_0Test.operationBinding()), + Pair("pulsar", + Reference("#/components/operationBindings/pulsar") + ), + Pair("redis", + Reference("#/components/operationBindings/redis") + ), + Pair("sns", + Reference("#/components/operationBindings/sns") + ), + Pair("solace", SolaceV0_4_0Test.operationBinding()), + Pair("sqs", + Reference("#/components/operationBindings/sqs") + ), + Pair("stomp", + Reference("#/components/operationBindings/stomp") + ), + Pair("ws", + Reference("#/components/operationBindings/ws") + ) )) .traits(listOf( OperationTraitTest().build(), OperationTraitTestWithReference().build(), - Reference("#/components/operations/trait") + Reference("#/components/operations/trait") )) .messages(listOf( - Reference("#/components/messages/message 1"), - Reference("#/components/messages/message 2"), - Reference("#/components/messages/message 3"), + Reference("#/components/messages/message 1"), + Reference("#/components/messages/message 2"), + Reference("#/components/messages/message 3"), )) .reply(Reference("#/components/replies/reply")) .build() diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/operation/OperationTraitTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/operation/OperationTraitTest.kt index 437f2ff3..b08d59d9 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/operation/OperationTraitTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/operation/OperationTraitTest.kt @@ -1,17 +1,16 @@ package com.asyncapi.v3._0_0.model.operation -import com.asyncapi.v3.binding.operation.amqp.AMQPOperationBindingTest -import com.asyncapi.v3.binding.operation.http.HTTPOperationBindingTest -import com.asyncapi.v3.binding.operation.kafka.KafkaOperationBindingTest -import com.asyncapi.v3.binding.operation.mqtt.MQTTOperationBindingTest -import com.asyncapi.v3.binding.operation.nats.NATSOperationBindingTest -import com.asyncapi.v3.binding.operation.solace.SolaceOperationBindingTest -import com.asyncapi.v3.Reference +import com.asyncapi.bindings.amqp.AMQPV0_2_0Test +import com.asyncapi.bindings.http.HTTPV0_3_0Test +import com.asyncapi.bindings.kafka.KafkaV0_5_0Test +import com.asyncapi.bindings.mqtt.MQTTV0_1_0Test +import com.asyncapi.bindings.nats.NATSV0_1_0Test +import com.asyncapi.bindings.solace.SolaceV0_4_0Test +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v3.SerDeTest import com.asyncapi.v3._0_0.model.ExternalDocumentation import com.asyncapi.v3._0_0.model.Tag -import com.asyncapi.v3._0_0.model.operation.reply.OperationReplyTest -import com.asyncapi.v3.security_scheme.ApiKeySecuritySchemeTest +import com.asyncapi.schemas.security.v3.ApiKeySecuritySchemeTest /** * @version 3.0.0 @@ -34,35 +33,61 @@ class OperationTraitTest: SerDeTest() { .description("Send message to remote server") .security(listOf( ApiKeySecuritySchemeTest().build(), - Reference("#/components/security/plain") + Reference("#/components/security/plain") )) .tags(listOf( Tag("messages", "operations with messages", ExternalDocumentation( "Messages validation rules", "messages/validation-rules" )), - Reference("#/components/tags/tag") + Reference("#/components/tags/tag") )) .externalDocs(ExternalDocumentation("Messages validation rules", "messages/validation-rules")) .bindings(mapOf( - Pair("amqp", AMQPOperationBindingTest().build()), - Pair("amqp1", Reference("#/components/operationBindings/amqp1")), - Pair("anypointmq", Reference("#/components/operationBindings/anypointmq")), - Pair("googlepubsub", Reference("#/components/operationBindings/googlepubsub")), - Pair("http", HTTPOperationBindingTest().build()), - Pair("ibmmq", Reference("#/components/operationBindings/ibmmq")), - Pair("jms", Reference("#/components/operationBindings/jms")), - Pair("kafka", KafkaOperationBindingTest().build()), - Pair("mercure", Reference("#/components/operationBindings/mercure")), - Pair("mqtt", MQTTOperationBindingTest().build()), - Pair("mqtt5", Reference("#/components/operationBindings/mqtt5")), - Pair("nats", NATSOperationBindingTest().build()), - Pair("pulsar", Reference("#/components/operationBindings/pulsar")), - Pair("redis", Reference("#/components/operationBindings/redis")), - Pair("sns", Reference("#/components/operationBindings/sns")), - Pair("solace", SolaceOperationBindingTest().build()), - Pair("sqs", Reference("#/components/operationBindings/sqs")), - Pair("stomp", Reference("#/components/operationBindings/stomp")), - Pair("ws", Reference("#/components/operationBindings/ws")) + Pair("amqp", AMQPV0_2_0Test.operationBinding()), + Pair("amqp1", + Reference("#/components/operationBindings/amqp1") + ), + Pair("anypointmq", + Reference("#/components/operationBindings/anypointmq") + ), + Pair("googlepubsub", + Reference("#/components/operationBindings/googlepubsub") + ), + Pair("http", HTTPV0_3_0Test.operationBinding()), + Pair("ibmmq", + Reference("#/components/operationBindings/ibmmq") + ), + Pair("jms", + Reference("#/components/operationBindings/jms") + ), + Pair("kafka", KafkaV0_5_0Test.operationBinding()), + Pair("mercure", + Reference("#/components/operationBindings/mercure") + ), + Pair("mqtt", MQTTV0_1_0Test.operationBinding()), + Pair("mqtt5", + Reference("#/components/operationBindings/mqtt5") + ), + Pair("nats", NATSV0_1_0Test.operationBinding()), + Pair("pulsar", + Reference("#/components/operationBindings/pulsar") + ), + Pair("redis", + Reference("#/components/operationBindings/redis") + ), + Pair("sns", + Reference("#/components/operationBindings/sns") + ), + Pair("solace", SolaceV0_4_0Test.operationBinding()), + Pair("sqs", + Reference("#/components/operationBindings/sqs") + ), + Pair("stomp", + Reference("#/components/operationBindings/stomp") + ), + Pair("ws", + Reference("#/components/operationBindings/ws") + ) )) .build() } @@ -86,35 +111,61 @@ class OperationTraitTestWithReference: SerDeTest() { .description("Send message to remote server") .security(listOf( ApiKeySecuritySchemeTest().build(), - Reference("#/components/security/plain") + Reference("#/components/security/plain") )) .tags(listOf( Tag("messages", "operations with messages", ExternalDocumentation( "Messages validation rules", "messages/validation-rules" )), - Reference("#/components/tags/tag") + Reference("#/components/tags/tag") )) .externalDocs(Reference("#/components/externalDocs/external-doc")) .bindings(mapOf( - Pair("amqp", AMQPOperationBindingTest().build()), - Pair("amqp1", Reference("#/components/operationBindings/amqp1")), - Pair("anypointmq", Reference("#/components/operationBindings/anypointmq")), - Pair("googlepubsub", Reference("#/components/operationBindings/googlepubsub")), - Pair("http", HTTPOperationBindingTest().build()), - Pair("ibmmq", Reference("#/components/operationBindings/ibmmq")), - Pair("jms", Reference("#/components/operationBindings/jms")), - Pair("kafka", KafkaOperationBindingTest().build()), - Pair("mercure", Reference("#/components/operationBindings/mercure")), - Pair("mqtt", MQTTOperationBindingTest().build()), - Pair("mqtt5", Reference("#/components/operationBindings/mqtt5")), - Pair("nats", NATSOperationBindingTest().build()), - Pair("pulsar", Reference("#/components/operationBindings/pulsar")), - Pair("redis", Reference("#/components/operationBindings/redis")), - Pair("sns", Reference("#/components/operationBindings/sns")), - Pair("solace", SolaceOperationBindingTest().build()), - Pair("sqs", Reference("#/components/operationBindings/sqs")), - Pair("stomp", Reference("#/components/operationBindings/stomp")), - Pair("ws", Reference("#/components/operationBindings/ws")) + Pair("amqp", AMQPV0_2_0Test.operationBinding()), + Pair("amqp1", + Reference("#/components/operationBindings/amqp1") + ), + Pair("anypointmq", + Reference("#/components/operationBindings/anypointmq") + ), + Pair("googlepubsub", + Reference("#/components/operationBindings/googlepubsub") + ), + Pair("http", HTTPV0_3_0Test.operationBinding()), + Pair("ibmmq", + Reference("#/components/operationBindings/ibmmq") + ), + Pair("jms", + Reference("#/components/operationBindings/jms") + ), + Pair("kafka", KafkaV0_5_0Test.operationBinding()), + Pair("mercure", + Reference("#/components/operationBindings/mercure") + ), + Pair("mqtt", MQTTV0_1_0Test.operationBinding()), + Pair("mqtt5", + Reference("#/components/operationBindings/mqtt5") + ), + Pair("nats", NATSV0_1_0Test.operationBinding()), + Pair("pulsar", + Reference("#/components/operationBindings/pulsar") + ), + Pair("redis", + Reference("#/components/operationBindings/redis") + ), + Pair("sns", + Reference("#/components/operationBindings/sns") + ), + Pair("solace", SolaceV0_4_0Test.operationBinding()), + Pair("sqs", + Reference("#/components/operationBindings/sqs") + ), + Pair("stomp", + Reference("#/components/operationBindings/stomp") + ), + Pair("ws", + Reference("#/components/operationBindings/ws") + ) )) .build() } diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/operation/reply/OperationReplyTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/operation/reply/OperationReplyTest.kt index 74af36c6..a3ab8553 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/operation/reply/OperationReplyTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/operation/reply/OperationReplyTest.kt @@ -1,6 +1,6 @@ package com.asyncapi.v3._0_0.model.operation.reply -import com.asyncapi.v3.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v3.SerDeTest /** @@ -22,9 +22,9 @@ class OperationReplyTest: SerDeTest() { .address(OperationReplyAddressTest().build()) .channel(Reference("#/components/channels/channel")) .messages(listOf( - Reference("#/components/messages/message 1"), - Reference("#/components/messages/message 2"), - Reference("#/components/messages/message 3"), + Reference("#/components/messages/message 1"), + Reference("#/components/messages/message 2"), + Reference("#/components/messages/message 3"), )) .build() } @@ -46,9 +46,9 @@ class OperationReplyTestWithReference: SerDeTest() { .address(Reference("#/components/addresses/address")) .channel(Reference("#/components/channels/channel")) .messages(listOf( - Reference("#/components/messages/message 1"), - Reference("#/components/messages/message 2"), - Reference("#/components/messages/message 3"), + Reference("#/components/messages/message 1"), + Reference("#/components/messages/message 2"), + Reference("#/components/messages/message 3"), )) .build() } diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/server/ServerTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/server/ServerTest.kt index cee89d7a..993c5f02 100644 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/server/ServerTest.kt +++ b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/_0_0/model/server/ServerTest.kt @@ -1,30 +1,30 @@ package com.asyncapi.v3._0_0.model.server -import com.asyncapi.v3.Reference +import com.asyncapi.schemas.asyncapi.Reference import com.asyncapi.v3.SerDeTest import com.asyncapi.v3._0_0.model.ExternalDocumentationTest import com.asyncapi.v3._0_0.model.Tag -import com.asyncapi.v3.binding.server.amqp1.AMQP1ServerBinding -import com.asyncapi.v3.binding.server.anypointmq.AnypointMQServerBinding -import com.asyncapi.v3.binding.server.googlepubsub.GooglePubSubServerBinding -import com.asyncapi.v3.binding.server.http.HTTPServerBinding -import com.asyncapi.v3.binding.server.ibmmq.IBMMQServerBinding -import com.asyncapi.v3.binding.server.jms.JMSServerBinding -import com.asyncapi.v3.binding.server.kafka.KafkaServerBinding -import com.asyncapi.v3.binding.server.mercure.MercureServerBinding -import com.asyncapi.v3.binding.server.mqtt.MQTTServerBinding -import com.asyncapi.v3.binding.server.mqtt.MQTTServerLastWillConfiguration -import com.asyncapi.v3.binding.server.mqtt5.MQTT5ServerBinding -import com.asyncapi.v3.binding.server.nats.NATSServerBinding -import com.asyncapi.v3.binding.server.pulsar.PulsarServerBinding -import com.asyncapi.v3.binding.server.redis.RedisServerBinding -import com.asyncapi.v3.binding.server.sns.SNSServerBinding -import com.asyncapi.v3.binding.server.solace.SolaceServerBinding -import com.asyncapi.v3.binding.server.sqs.SQSServerBinding -import com.asyncapi.v3.binding.server.stomp.STOMPServerBinding -import com.asyncapi.v3.binding.server.ws.WebSocketsServerBinding -import com.asyncapi.v3.security_scheme.ApiKeySecuritySchemeTest -import com.asyncapi.v3.security_scheme.http.HttpSecuritySchemeBearerTest +import com.asyncapi.bindings.amqp1.v0._1_0.server.AMQP1ServerBinding +import com.asyncapi.bindings.anypointmq.v0._0_1.server.AnypointMQServerBinding +import com.asyncapi.bindings.googlepubsub.GooglePubSubV0_2_0Test +import com.asyncapi.bindings.http.HTTPV0_3_0Test +import com.asyncapi.bindings.ibmmq.v0._1_0.server.IBMMQServerBinding +import com.asyncapi.bindings.jms.v0._0_1.server.JMSServerBinding +import com.asyncapi.bindings.kafka.v0._5_0.server.KafkaServerBinding +import com.asyncapi.bindings.mercure.v0._1_0.server.MercureServerBinding +import com.asyncapi.bindings.mqtt.v0._1_0.server.MQTTServerBinding +import com.asyncapi.bindings.mqtt.v0._1_0.server.MQTTServerLastWillConfiguration +import com.asyncapi.bindings.mqtt5.v0._2_0.server.MQTT5ServerBinding +import com.asyncapi.bindings.nats.v0._1_0.server.NATSServerBinding +import com.asyncapi.bindings.pulsar.v0._1_0.server.PulsarServerBinding +import com.asyncapi.bindings.redis.v0._1_0.server.RedisServerBinding +import com.asyncapi.bindings.sns.v0._1_0.server.SNSServerBinding +import com.asyncapi.bindings.solace.v0._4_0.server.SolaceServerBinding +import com.asyncapi.bindings.sqs.SQSV0_2_0Test +import com.asyncapi.bindings.stomp.v0._1_0.server.STOMPServerBinding +import com.asyncapi.bindings.websockets.v0._1_0.server.WebSocketsServerBinding +import com.asyncapi.schemas.security.v3.ApiKeySecuritySchemeTest +import com.asyncapi.schemas.security.v3.http.HttpSecuritySchemeBearerTest /** * @version 3.0.0 @@ -58,7 +58,9 @@ class ServerTest: SerDeTest() { .enumValues(listOf("8883", "8884")) .defaultValue("8883") .build()), - Pair("basePath", Reference("#/components/serverVariables/basePath")) + Pair("basePath", + Reference("#/components/serverVariables/basePath") + ) )) .security(listOf( ApiKeySecuritySchemeTest().build(), @@ -76,11 +78,13 @@ class ServerTest: SerDeTest() { @JvmStatic fun bindings(): Map { return mapOf( - Pair("amqp", Reference("#/components/serverBindings/amqp")), + Pair("amqp", + Reference("#/components/serverBindings/amqp") + ), Pair("amqp1", AMQP1ServerBinding()), Pair("anypointmq", AnypointMQServerBinding()), - Pair("googlepubsub", GooglePubSubServerBinding()), - Pair("http", HTTPServerBinding()), + Pair("googlepubsub", GooglePubSubV0_2_0Test.serverBinding()), + Pair("http", HTTPV0_3_0Test.serverBinding()), Pair( "ibmmq", IBMMQServerBinding.builder() @@ -96,7 +100,9 @@ class ServerTest: SerDeTest() { .schemaRegistryVendor("confluent") .build() ), - Pair("mercure", MercureServerBinding()), + Pair("mercure", + MercureServerBinding() + ), Pair( "mqtt", MQTTServerBinding.builder() @@ -126,13 +132,12 @@ class ServerTest: SerDeTest() { ), Pair("redis", RedisServerBinding()), Pair("sns", SNSServerBinding()), - Pair( - "solace", - SolaceServerBinding.builder() - .msgVpn("solace.private.net") - .build() + Pair("solace", SolaceServerBinding.builder() + .msgVpn("ProdVPN") + .clientName("transactions-broker") + .build() ), - Pair("sqs", SQSServerBinding()), + Pair("sqs", SQSV0_2_0Test.serverBinding()), Pair("stomp", STOMPServerBinding()), Pair("ws", WebSocketsServerBinding()), ) @@ -169,16 +174,18 @@ class ServerTestWithReference: SerDeTest() { .enumValues(listOf("8883", "8884")) .defaultValue("8883") .build()), - Pair("basePath", Reference("#/components/serverVariables/basePath")) + Pair("basePath", + Reference("#/components/serverVariables/basePath") + ) )) .security(listOf( ApiKeySecuritySchemeTest().build(), HttpSecuritySchemeBearerTest().build(), - Reference("#/components/securitySchemes/openId") + Reference("#/components/securitySchemes/openId") )) .tags(listOf( Tag("env:staging", "This environment is a replica of the production environment", null), - Reference("#/components/tags/tag_name") + Reference("#/components/tags/tag_name") )) .externalDocs(Reference("#/components/externalDocs/externalDoc")) .bindings(bindings()) @@ -189,11 +196,13 @@ class ServerTestWithReference: SerDeTest() { @JvmStatic fun bindings(): Map { return mapOf( - Pair("amqp", Reference("#/components/serverBindings/amqp")), + Pair("amqp", + Reference("#/components/serverBindings/amqp") + ), Pair("amqp1", AMQP1ServerBinding()), Pair("anypointmq", AnypointMQServerBinding()), - Pair("googlepubsub", GooglePubSubServerBinding()), - Pair("http", HTTPServerBinding()), + Pair("googlepubsub", GooglePubSubV0_2_0Test.serverBinding()), + Pair("http", HTTPV0_3_0Test.serverBinding()), Pair( "ibmmq", IBMMQServerBinding.builder() @@ -209,7 +218,9 @@ class ServerTestWithReference: SerDeTest() { .schemaRegistryVendor("confluent") .build() ), - Pair("mercure", MercureServerBinding()), + Pair("mercure", + MercureServerBinding() + ), Pair( "mqtt", MQTTServerBinding.builder() @@ -239,13 +250,12 @@ class ServerTestWithReference: SerDeTest() { ), Pair("redis", RedisServerBinding()), Pair("sns", SNSServerBinding()), - Pair( - "solace", - SolaceServerBinding.builder() - .msgVpn("solace.private.net") - .build() + Pair("solace", SolaceServerBinding.builder() + .msgVpn("ProdVPN") + .clientName("transactions-broker") + .build() ), - Pair("sqs", SQSServerBinding()), + Pair("sqs", SQSV0_2_0Test.serverBinding()), Pair("stomp", STOMPServerBinding()), Pair("ws", WebSocketsServerBinding()), ) diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/channel/amqp/AMQPChannelBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/channel/amqp/AMQPChannelBindingTest.kt deleted file mode 100644 index f45456ca..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/channel/amqp/AMQPChannelBindingTest.kt +++ /dev/null @@ -1,42 +0,0 @@ -package com.asyncapi.v3.binding.channel.amqp - -import com.asyncapi.v3.SerDeTest -import com.asyncapi.v3.binding.channel.amqp.exchange.AMQPChannelExchangeProperties -import com.asyncapi.v3.binding.channel.amqp.exchange.AMQPChannelExchangeType -import com.asyncapi.v3.binding.channel.amqp.queue.AMQPChannelQueueProperties - -/** - * @version 3.0.0 - * @author Pavel Bodiachevskii - */ -class AMQPChannelBindingTest: SerDeTest() { - - override fun objectClass() = AMQPChannelBinding::class.java - - override fun baseObjectJson() = "/json/v3/binding/channel/amqp/amqpChannelBinding.json" - - override fun extendedObjectJson() = "/json/v3/binding/channel/amqp/amqpChannelBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/binding/channel/amqp/amqpChannelBinding - wrongly extended.json" - - override fun build(): AMQPChannelBinding { - return AMQPChannelBinding.builder() - .`is`(AMQPChannelType.ROUTING_KEY) - .queue(AMQPChannelQueueProperties.builder() - .name("my-queue-name") - .durable(true) - .exclusive(true) - .autoDelete(false) - .build() - ) - .exchange(AMQPChannelExchangeProperties.builder() - .name("myExchange") - .type(AMQPChannelExchangeType.TOPIC) - .durable(true) - .autoDelete(false) - .build() - ) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/channel/anypointmq/AnypointMQChannelBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/channel/anypointmq/AnypointMQChannelBindingTest.kt deleted file mode 100644 index a345ee89..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/channel/anypointmq/AnypointMQChannelBindingTest.kt +++ /dev/null @@ -1,26 +0,0 @@ -package com.asyncapi.v3.binding.channel.anypointmq - -import com.asyncapi.v3.SerDeTest - -/** - * @version 3.0.0 - * @author Pavel Bodiachevskii - */ -class AnypointMQChannelBindingTest: SerDeTest() { - - override fun objectClass() = AnypointMQChannelBinding::class.java - - override fun baseObjectJson() = "/json/v3/binding/channel/anypoint/anypointMQChannelBinding.json" - - override fun extendedObjectJson() = "/json/v3/binding/channel/anypoint/anypointMQChannelBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/binding/channel/anypoint/anypointMQChannelBinding - wrongly extended.json" - - override fun build(): AnypointMQChannelBinding { - return AnypointMQChannelBinding.builder() - .destination("user-signup-exchg") - .destinationType(AnypointMQChannelDestinationType.EXCHANGE) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/channel/googlepubsub/GooglePubSubChannelBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/channel/googlepubsub/GooglePubSubChannelBindingTest.kt deleted file mode 100644 index e4e85536..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/channel/googlepubsub/GooglePubSubChannelBindingTest.kt +++ /dev/null @@ -1,42 +0,0 @@ -package com.asyncapi.v3.binding.channel.googlepubsub - -import com.asyncapi.v3.SerDeTest - -class GooglePubSubChannelBindingTest: SerDeTest() { - - override fun objectClass() = GooglePubSubChannelBinding::class.java - - override fun baseObjectJson() = "/json/v3/binding/channel/googlepubsub/googlePubSubChannelBinding.json" - - override fun extendedObjectJson() = "/json/v3/binding/channel/googlepubsub/googlePubSubChannelBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/binding/channel/googlepubsub/googlePubSubChannelBinding - wrongly extended.json" - - override fun build(): GooglePubSubChannelBinding { - return GooglePubSubChannelBinding.builder() - .topic("projects/your-project/topics/topic-proto-schema") - .messageRetentionDuration("86400s") - .messageStoragePolicy(GooglePubSubChannelMessageStoragePolicy( - listOf( - "us-central1", - "us-central2", - "us-east1", - "us-east4", - "us-east5", - "us-east7", - "us-south1", - "us-west1", - "us-west2", - "us-west3", - "us-west4" - ) - )) - .schemaSettings(GooglePubSubChannelSchemaSettings.builder() - .encoding("binary") - .name("projects/your-project/schemas/message-proto") - .build() - ) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/channel/ibmmq/IBMMQChannelBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/channel/ibmmq/IBMMQChannelBindingTest.kt deleted file mode 100644 index 44b62126..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/channel/ibmmq/IBMMQChannelBindingTest.kt +++ /dev/null @@ -1,35 +0,0 @@ -package com.asyncapi.v3.binding.channel.ibmmq - -import com.asyncapi.v3.SerDeTest - -class IBMMQChannelBindingTest: SerDeTest() { - - override fun objectClass() = IBMMQChannelBinding::class.java - - override fun baseObjectJson() = "/json/v3/binding/channel/ibmmq/ibmMQChannelBinding.json" - - override fun extendedObjectJson() = "/json/v3/binding/channel/ibmmq/ibmMQChannelBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/binding/channel/ibmmq/ibmMQChannelBinding - wrongly extended.json" - - override fun build(): IBMMQChannelBinding { - return IBMMQChannelBinding.builder() - .destinationType(IBMMQChannelDestinationType.TOPIC) - .queue(IBMMQChannelQueueProperties.builder() - .objectName("message") - .isPartitioned(false) - .exclusive(true) - .build() - ) - .topic(IBMMQChannelTopicProperties.builder() - .string("messages") - .objectName("message") - .durablePermitted(true) - .lastMsgRetained(true) - .build() - ) - .maxMsgLength(1024) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/channel/kafka/KafkaChannelBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/channel/kafka/KafkaChannelBindingTest.kt deleted file mode 100644 index 6b53ef17..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/channel/kafka/KafkaChannelBindingTest.kt +++ /dev/null @@ -1,38 +0,0 @@ -package com.asyncapi.v3.binding.channel.kafka - -import com.asyncapi.v3.SerDeTest - -/** - * @version 3.0.0 - * @author Pavel Bodiachevskii - */ -class KafkaChannelBindingTest: SerDeTest() { - - override fun objectClass() = KafkaChannelBinding::class.java - - override fun baseObjectJson() = "/json/v3/binding/channel/kafka/kafkaChannelBinding.json" - - override fun extendedObjectJson() = "/json/v3/binding/channel/kafka/kafkaChannelBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/binding/channel/kafka/kafkaChannelBinding - wrongly extended.json" - - override fun build(): KafkaChannelBinding { - return KafkaChannelBinding.builder() - .topic("my-specific-topic-name") - .partitions(20) - .replicas(3) - .topicConfiguration(KafkaChannelTopicConfiguration.builder() - .cleanupPolicy(listOf( - KafkaChannelTopicCleanupPolicy.DELETE, - KafkaChannelTopicCleanupPolicy.COMPACT - )) - .retentionMs(604_800_000) - .retentionBytes(1_000_000_000) - .deleteRetentionMs(86_400_000) - .maxMessageBytes(1_048_588) - .build() - ) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/channel/pulsar/PulsarChannelBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/channel/pulsar/PulsarChannelBindingTest.kt deleted file mode 100644 index 2c2d6da8..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/channel/pulsar/PulsarChannelBindingTest.kt +++ /dev/null @@ -1,31 +0,0 @@ -package com.asyncapi.v3.binding.channel.pulsar - -import com.asyncapi.v3.SerDeTest - -class PulsarChannelBindingTest: SerDeTest() { - - override fun objectClass() = PulsarChannelBinding::class.java - - override fun baseObjectJson() = "/json/v3/binding/channel/pulsar/pulsarChannelBinding.json" - - override fun extendedObjectJson() = "/json/v3/binding/channel/pulsar/pulsarChannelBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/binding/channel/pulsar/pulsarChannelBinding - wrongly extended.json" - - override fun build(): PulsarChannelBinding { - return PulsarChannelBinding.builder() - .namespace("staging") - .persistence(PulsarChannelPersistence.PERSISTENT) - .compaction(1000) - .geoReplication(listOf("us-east1", "us-west1")) - .retention(PulsarChannelRetentionDefinition.builder() - .time(7) - .size(1000) - .build() - ) - .ttl(360) - .deduplication(false) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/channel/ws/WebSocketsChannelBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/channel/ws/WebSocketsChannelBindingTest.kt deleted file mode 100644 index 1159d1a1..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/channel/ws/WebSocketsChannelBindingTest.kt +++ /dev/null @@ -1,53 +0,0 @@ -package com.asyncapi.v3.binding.channel.ws - -import com.asyncapi.v3.SerDeTest -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.Type - -/** - * @version 3.0.0 - * @author Pavel Bodiachevskii - */ -class WebSocketsChannelBindingTest: SerDeTest() { - - override fun objectClass() = WebSocketsChannelBinding::class.java - - override fun baseObjectJson() = "/json/v3/binding/channel/ws/webSocketsChannelBinding.json" - - override fun extendedObjectJson() = "/json/v3/binding/channel/ws/webSocketsChannelBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/binding/channel/ws/webSocketsChannelBinding - wrongly extended.json" - - override fun build(): WebSocketsChannelBinding { - return WebSocketsChannelBinding.builder() - .method(WebSocketsChannelMethod.GET) - .query(AsyncAPISchema.builder() - .type(Type.OBJECT) - .properties(mapOf( - Pair( - "ref", - AsyncAPISchema.builder() - .type(Type.STRING) - .description("Referral.") - .build() - ) - )) - .build() - ) - .headers(AsyncAPISchema.builder() - .type(Type.OBJECT) - .properties(mapOf( - Pair( - "Authentication", - AsyncAPISchema.builder() - .type(Type.STRING) - .description("Authentication token") - .build() - ) - )) - .build() - ) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/message/amqp/AMQPMessageBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/message/amqp/AMQPMessageBindingTest.kt deleted file mode 100644 index 46ce1df5..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/message/amqp/AMQPMessageBindingTest.kt +++ /dev/null @@ -1,22 +0,0 @@ -package com.asyncapi.v3.binding.message.amqp - -import com.asyncapi.v3.SerDeTest - -class AMQPMessageBindingTest: SerDeTest() { - - override fun objectClass() = AMQPMessageBinding::class.java - - override fun baseObjectJson() = "/json/v3/binding/message/amqp/amqpMessageBinding.json" - - override fun extendedObjectJson() = "/json/v3/binding/message/amqp/amqpMessageBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/binding/message/amqp/amqpMessageBinding - wrongly extended.json" - - override fun build(): AMQPMessageBinding { - return AMQPMessageBinding.builder() - .contentEncoding("gzip") - .messageType("user.signup") - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/message/anypointmq/AnypointMQMessageBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/message/anypointmq/AnypointMQMessageBindingTest.kt deleted file mode 100644 index be3c7be8..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/message/anypointmq/AnypointMQMessageBindingTest.kt +++ /dev/null @@ -1,34 +0,0 @@ -package com.asyncapi.v3.binding.message.anypointmq - -import com.asyncapi.v3.SerDeTest -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.Type - -class AnypointMQMessageBindingTest: SerDeTest() { - - override fun objectClass() = AnypointMQMessageBinding::class.java - - override fun baseObjectJson() = "/json/v3/binding/message/anypointmq/anypointMQMessageBinding.json" - - override fun extendedObjectJson() = "/json/v3/binding/message/anypointmq/anypointMQMessageBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/binding/message/anypointmq/anypointMQMessageBinding - wrongly extended.json" - - override fun build(): AnypointMQMessageBinding { - return AnypointMQMessageBinding.builder() - .headers(AsyncAPISchema.builder() - .type(Type.OBJECT) - .properties(mapOf( - Pair( - "correlationId", - AsyncAPISchema.builder() - .type(Type.STRING) - .description("Correlation ID set by application") - .build() - ) - )) - .build()) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/message/googlepubsub/GooglePubSubMessageBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/message/googlepubsub/GooglePubSubMessageBindingTest.kt deleted file mode 100644 index 201aa44e..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/message/googlepubsub/GooglePubSubMessageBindingTest.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.asyncapi.v3.binding.message.googlepubsub - -import com.asyncapi.v3.SerDeTest - -class GooglePubSubMessageBindingTest: SerDeTest() { - - override fun objectClass() = GooglePubSubMessageBinding::class.java - - override fun baseObjectJson() = "/json/v3/binding/message/googlepubsub/googlePubSubMessageBinding.json" - - override fun extendedObjectJson() = "/json/v3/binding/message/googlepubsub/googlePubSubMessageBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/binding/message/googlepubsub/googlePubSubMessageBinding - wrongly extended.json" - - override fun build(): GooglePubSubMessageBinding { - return GooglePubSubMessageBinding.builder() - .schema(GooglePubSubMessageSchemaDefinition( - "projects/your-project/schemas/message-avro", - GooglePubSubMessageSchemaDefinitionType.AVRO - )) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/message/http/HTTPMessageBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/message/http/HTTPMessageBindingTest.kt deleted file mode 100644 index 7b7ef2c5..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/message/http/HTTPMessageBindingTest.kt +++ /dev/null @@ -1,34 +0,0 @@ -package com.asyncapi.v3.binding.message.http - -import com.asyncapi.v3.SerDeTest -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.Type - -class HTTPMessageBindingTest: SerDeTest() { - - override fun objectClass() = HTTPMessageBinding::class.java - - override fun baseObjectJson() = "/json/v3/binding/message/http/httpMessageBinding.json" - - override fun extendedObjectJson() = "/json/v3/binding/message/http/httpMessageBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/binding/message/http/httpMessageBinding - wrongly extended.json" - - override fun build(): HTTPMessageBinding { - return HTTPMessageBinding.builder() - .headers(AsyncAPISchema.builder() - .type(Type.OBJECT) - .properties(mapOf( - Pair( - "Content-Type", - AsyncAPISchema.builder() - .type(Type.STRING) - .enumValue(listOf("application/json")) - .build() - ) - )) - .build()) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/message/ibmmq/IBMMQMessageBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/message/ibmmq/IBMMQMessageBindingTest.kt deleted file mode 100644 index 4924a3e5..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/message/ibmmq/IBMMQMessageBindingTest.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.asyncapi.v3.binding.message.ibmmq - -import com.asyncapi.v3.SerDeTest - -class IBMMQMessageBindingTest: SerDeTest() { - - override fun objectClass() = IBMMQMessageBinding::class.java - - override fun baseObjectJson() = "/json/v3/binding/message/ibmmq/ibmMQMessageBinding.json" - - override fun extendedObjectJson() = "/json/v3/binding/message/ibmmq/ibmMQMessageBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/binding/message/ibmmq/ibmMQMessageBinding - wrongly extended.json" - - override fun build(): IBMMQMessageBinding { - return IBMMQMessageBinding.builder() - .type(IBMMQMessageType.JMS) - .description("JMS stream message") - .headers("Content-Type: application/json") - .expiry(0) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/message/kafka/KafkaMessageBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/message/kafka/KafkaMessageBindingTest.kt deleted file mode 100644 index 1cf3e5b4..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/message/kafka/KafkaMessageBindingTest.kt +++ /dev/null @@ -1,29 +0,0 @@ -package com.asyncapi.v3.binding.message.kafka - -import com.asyncapi.v3.SerDeTest -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.Type - -class KafkaMessageBindingTest: SerDeTest() { - - override fun objectClass() = KafkaMessageBinding::class.java - - override fun baseObjectJson() = "/json/v3/binding/message/kafka/kafkaMessageBinding.json" - - override fun extendedObjectJson() = "/json/v3/binding/message/kafka/kafkaMessageBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/binding/message/kafka/kafkaMessageBinding - wrongly extended.json" - - override fun build(): KafkaMessageBinding { - return KafkaMessageBinding.builder() - .key(AsyncAPISchema.builder() - .type(Type.STRING) - .enumValue(listOf("myKey")) - .build()) - .schemaIdLocation(KafkaMessageSchemaIdLocation.PAYLOAD) - .schemaIdPayloadEncoding("apicurio-new") - .schemaLookupStrategy("TopicIdStrategy") - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/message/mqtt/MQTTMessageBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/message/mqtt/MQTTMessageBindingTest.kt deleted file mode 100644 index d327ec4e..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/message/mqtt/MQTTMessageBindingTest.kt +++ /dev/null @@ -1,20 +0,0 @@ -package com.asyncapi.v3.binding.message.mqtt - -import com.asyncapi.v3.SerDeTest - -class MQTTMessageBindingTest: SerDeTest() { - - override fun objectClass() = MQTTMessageBinding::class.java - - override fun baseObjectJson() = "/json/v3/binding/message/mqtt/mqttMessageBinding.json" - - override fun extendedObjectJson() = "/json/v3/binding/message/mqtt/mqttMessageBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/binding/message/mqtt/mqttMessageBinding - wrongly extended.json" - - override fun build(): MQTTMessageBinding { - return MQTTMessageBinding.builder() - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/operation/amqp/AMQPOperationBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/operation/amqp/AMQPOperationBindingTest.kt deleted file mode 100644 index 0fc26178..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/operation/amqp/AMQPOperationBindingTest.kt +++ /dev/null @@ -1,30 +0,0 @@ -package com.asyncapi.v3.binding.operation.amqp - -import com.asyncapi.v3.SerDeTest - -class AMQPOperationBindingTest: SerDeTest() { - - override fun objectClass() = AMQPOperationBinding::class.java - - override fun baseObjectJson() = "/json/v3/binding/operation/amqp/amqpOperationBinding.json" - - override fun extendedObjectJson() = "/json/v3/binding/operation/amqp/amqpOperationBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/binding/operation/amqp/amqpOperationBinding - wrongly extended.json" - - override fun build(): AMQPOperationBinding { - return AMQPOperationBinding.builder() - .expiration(100_000) - .userId("guest") - .cc(listOf("user.logs")) - .priority(10) - .deliveryMode(2) - .mandatory(false) - .bcc(listOf("external.audit")) - .replyTo("user.signedup") - .timestamp(true) - .ack(false) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/operation/http/HTTPOperationBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/operation/http/HTTPOperationBindingTest.kt deleted file mode 100644 index 14990d90..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/operation/http/HTTPOperationBindingTest.kt +++ /dev/null @@ -1,41 +0,0 @@ -package com.asyncapi.v3.binding.operation.http - -import com.asyncapi.v3.SerDeTest -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.Type -import java.math.BigDecimal - -class HTTPOperationBindingTest: SerDeTest() { - - override fun objectClass() = HTTPOperationBinding::class.java - - override fun baseObjectJson() = "/json/v3/binding/operation/http/httpOperationBinding.json" - - override fun extendedObjectJson() = "/json/v3/binding/operation/http/httpOperationBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/binding/operation/http/httpOperationBinding - wrongly extended.json" - - override fun build(): HTTPOperationBinding { - return HTTPOperationBinding.builder() - .type(HTTPOperationType.REQUEST) - .method(HTTPOperationMethod.GET) - .query(AsyncAPISchema.builder() - .type(Type.OBJECT) - .required(listOf("companyId")) - .properties(mapOf( - Pair( - "companyId", - AsyncAPISchema.builder() - .type(Type.NUMBER) - .minimum(BigDecimal.ONE) - .description("The Id of the company.") - .build() - ) - )) - .additionalProperties(false) - .build() - ) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/operation/kafka/KafkaOperationBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/operation/kafka/KafkaOperationBindingTest.kt deleted file mode 100644 index ab88192f..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/operation/kafka/KafkaOperationBindingTest.kt +++ /dev/null @@ -1,30 +0,0 @@ -package com.asyncapi.v3.binding.operation.kafka - -import com.asyncapi.v3.SerDeTest -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.Type - -class KafkaOperationBindingTest: SerDeTest() { - - override fun objectClass() = KafkaOperationBinding::class.java - - override fun baseObjectJson() = "/json/v3/binding/operation/kafka/kafkaOperationBinding.json" - - override fun extendedObjectJson() = "/json/v3/binding/operation/kafka/kafkaOperationBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/binding/operation/kafka/kafkaOperationBinding - wrongly extended.json" - - override fun build(): KafkaOperationBinding { - return KafkaOperationBinding.builder() - .groupId(AsyncAPISchema.builder() - .type(Type.STRING) - .enumValue(listOf("myGroupId")) - .build()) - .clientId(AsyncAPISchema.builder() - .type(Type.STRING) - .enumValue(listOf("myClientId")) - .build()) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/operation/mqtt/MQTTOperationBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/operation/mqtt/MQTTOperationBindingTest.kt deleted file mode 100644 index e199cf50..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/operation/mqtt/MQTTOperationBindingTest.kt +++ /dev/null @@ -1,22 +0,0 @@ -package com.asyncapi.v3.binding.operation.mqtt - -import com.asyncapi.v3.SerDeTest - -class MQTTOperationBindingTest: SerDeTest() { - - override fun objectClass() = MQTTOperationBinding::class.java - - override fun baseObjectJson() = "/json/v3/binding/operation/mqtt/mqttOperationBinding.json" - - override fun extendedObjectJson() = "/json/v3/binding/operation/mqtt/mqttOperationBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/binding/operation/mqtt/mqttOperationBinding - wrongly extended.json" - - override fun build(): MQTTOperationBinding { - return MQTTOperationBinding.builder() - .qos(2) - .retain(true) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/operation/nats/NATSOperationBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/operation/nats/NATSOperationBindingTest.kt deleted file mode 100644 index 60f0ef6c..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/operation/nats/NATSOperationBindingTest.kt +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.binding.operation.nats - -import com.asyncapi.v3.SerDeTest - -class NATSOperationBindingTest: SerDeTest() { - - override fun objectClass() = NATSOperationBinding::class.java - - override fun baseObjectJson() = "/json/v3/binding/operation/nats/natsOperationBinding.json" - - override fun extendedObjectJson() = "/json/v3/binding/operation/nats/natsOperationBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/binding/operation/nats/natsOperationBinding - wrongly extended.json" - - override fun build(): NATSOperationBinding { - return NATSOperationBinding.builder() - .queue("messages") - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/operation/solace/SolaceOperationBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/operation/solace/SolaceOperationBindingTest.kt deleted file mode 100644 index cae516f2..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/operation/solace/SolaceOperationBindingTest.kt +++ /dev/null @@ -1,47 +0,0 @@ -package com.asyncapi.v3.binding.operation.solace - -import com.asyncapi.v3.SerDeTest -import com.asyncapi.v3.binding.operation.solace.queue.SolaceOperationQueue -import com.asyncapi.v3.binding.operation.solace.topic.SolaceOperationTopic - -class SolaceOperationBindingTest: SerDeTest() { - - override fun objectClass() = SolaceOperationBinding::class.java - - override fun baseObjectJson() = "/json/v3/binding/operation/solace/solaceOperationBinding.json" - - override fun extendedObjectJson() = "/json/v3/binding/operation/solace/solaceOperationBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/binding/operation/solace/solaceOperationBinding - wrongly extended.json" - - override fun build(): SolaceOperationBinding { - return SolaceOperationBinding.builder() - .destinations(listOf( - SolaceOperationDestination.builder() - .destinationType(SolaceOperationDestination.Type.QUEUE) - .queue(SolaceOperationQueue.builder() - .name("CreatedHREvents") - .topicSubscriptions(listOf("person/*/created")) - .accessType(SolaceOperationQueue.AccessType.EXCLUSIVE) - .maxMsgSpoolSize("1,500") - .maxTtl("60") - .build() - ) - .build(), - SolaceOperationDestination.builder() - .destinationType(SolaceOperationDestination.Type.QUEUE) - .queue(SolaceOperationQueue.builder() - .name("UpdatedHREvents") - .topicSubscriptions(listOf("person/*/updated")) - .build() - ) - .topic(SolaceOperationTopic.builder() - .topicSubscriptions(listOf("person/*/updated")) - .build() - ) - .build() - )) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/server/ibmmq/IBMMQServerBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/server/ibmmq/IBMMQServerBindingTest.kt deleted file mode 100644 index 67670a7b..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/server/ibmmq/IBMMQServerBindingTest.kt +++ /dev/null @@ -1,26 +0,0 @@ -package com.asyncapi.v3.binding.server.ibmmq - -import com.asyncapi.v3.SerDeTest - -/** - * @version 3.0.0 - * @author Pavel Bodiachevskii - */ -class IBMMQServerBindingTest: SerDeTest() { - - override fun objectClass() = IBMMQServerBinding::class.java - - override fun baseObjectJson() = "/json/v3/binding/server/ibmmq/ibmmqServerBinding.json" - - override fun extendedObjectJson() = "/json/v3/binding/server/ibmmq/ibmmqServerBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/binding/server/ibmmq/ibmmqServerBinding - wrongly extended.json" - - override fun build(): IBMMQServerBinding { - return IBMMQServerBinding.builder() - .groupId("PRODCLSTR1") - .cipherSpec("ANY_TLS12_OR_HIGHER") - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/server/kafka/KafkaServerBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/server/kafka/KafkaServerBindingTest.kt deleted file mode 100644 index dea2146f..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/server/kafka/KafkaServerBindingTest.kt +++ /dev/null @@ -1,26 +0,0 @@ -package com.asyncapi.v3.binding.server.kafka - -import com.asyncapi.v3.SerDeTest - -/** - * @version 3.0.0 - * @author Pavel Bodiachevskii - */ -class KafkaServerBindingTest: SerDeTest() { - - override fun objectClass() = KafkaServerBinding::class.java - - override fun baseObjectJson() = "/json/v3/binding/server/kafka/kafkaServerBinding.json" - - override fun extendedObjectJson() = "/json/v3/binding/server/kafka/kafkaServerBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/binding/server/kafka/kafkaServerBinding - wrongly extended.json" - - override fun build(): KafkaServerBinding { - return KafkaServerBinding.builder() - .schemaRegistryUrl("https://my-schema-registry.com") - .schemaRegistryVendor("confluent") - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/server/mqtt/MQTTServerBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/server/mqtt/MQTTServerBindingTest.kt deleted file mode 100644 index 9dccffeb..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/server/mqtt/MQTTServerBindingTest.kt +++ /dev/null @@ -1,33 +0,0 @@ -package com.asyncapi.v3.binding.server.mqtt - -import com.asyncapi.v3.SerDeTest - -/** - * @version 3.0.0 - * @author Pavel Bodiachevskii - */ -class MQTTServerBindingTest: SerDeTest() { - - override fun objectClass() = MQTTServerBinding::class.java - - override fun baseObjectJson() = "/json/v3/binding/server/mqtt/mqttServerBinding.json" - - override fun extendedObjectJson() = "/json/v3/binding/server/mqtt/mqttServerBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/binding/server/mqtt/mqttServerBinding - wrongly extended.json" - - override fun build(): MQTTServerBinding { - return MQTTServerBinding.builder() - .clientId("guest") - .cleanSession(true) - .lastWill(MQTTServerLastWillConfiguration( - "/last-wills", - 2, - "Guest gone offline.", - false - )) - .keepAlive(60) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/server/mqtt5/MQTT5ServerBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/server/mqtt5/MQTT5ServerBindingTest.kt deleted file mode 100644 index 23cd7f3d..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/server/mqtt5/MQTT5ServerBindingTest.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v3.binding.server.mqtt5 - -import com.asyncapi.v3.SerDeTest - -/** - * @version 3.0.0 - * @author Pavel Bodiachevskii - */ -class MQTT5ServerBindingTest: SerDeTest() { - - override fun objectClass() = MQTT5ServerBinding::class.java - - override fun baseObjectJson() = "/json/v3/binding/server/mqtt5/mqtt5ServerBinding.json" - - override fun extendedObjectJson() = "/json/v3/binding/server/mqtt5/mqtt5ServerBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/binding/server/mqtt5/mqtt5ServerBinding - wrongly extended.json" - - override fun build(): MQTT5ServerBinding { - return MQTT5ServerBinding.builder() - .sessionExpiryInterval(60) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/server/pulsar/PulsarServerBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/server/pulsar/PulsarServerBindingTest.kt deleted file mode 100644 index 1daee16b..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/server/pulsar/PulsarServerBindingTest.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v3.binding.server.pulsar - -import com.asyncapi.v3.SerDeTest - -/** - * @version 3.0.0 - * @author Pavel Bodiachevskii - */ -class PulsarServerBindingTest: SerDeTest() { - - override fun objectClass() = PulsarServerBinding::class.java - - override fun baseObjectJson() = "/json/v3/binding/server/pulsar/pulsarServerBinding.json" - - override fun extendedObjectJson() = "/json/v3/binding/server/pulsar/pulsarServerBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/binding/server/pulsar/pulsarServerBinding - wrongly extended.json" - - override fun build(): PulsarServerBinding { - return PulsarServerBinding.builder() - .tenant("contoso") - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/server/solace/SolaceServerBindingTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/server/solace/SolaceServerBindingTest.kt deleted file mode 100644 index a95a49d4..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/binding/server/solace/SolaceServerBindingTest.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v3.binding.server.solace - -import com.asyncapi.v3.SerDeTest - -/** - * @version 3.0.0 - * @author Pavel Bodiachevskii - */ -class SolaceServerBindingTest: SerDeTest() { - - override fun objectClass() = SolaceServerBinding::class.java - - override fun baseObjectJson() = "/json/v3/binding/server/solace/solaceServerBinding.json" - - override fun extendedObjectJson() = "/json/v3/binding/server/solace/solaceServerBinding - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/binding/server/solace/solaceServerBinding - wrongly extended.json" - - override fun build(): SolaceServerBinding { - return SolaceServerBinding.builder() - .msgVpn("solace.private.net") - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/ReadJsonPropertiesTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/ReadJsonPropertiesTest.kt deleted file mode 100644 index 33127806..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/ReadJsonPropertiesTest.kt +++ /dev/null @@ -1,100 +0,0 @@ -package com.asyncapi.v3.schema - -import com.asyncapi.v3.ClasspathUtils -import com.asyncapi.v3.schema.json.properties.* -import com.fasterxml.jackson.annotation.JsonInclude -import com.fasterxml.jackson.databind.DeserializationFeature -import com.fasterxml.jackson.databind.ObjectMapper -import org.junit.jupiter.api.* -import org.junit.jupiter.api.extension.ExtensionContext -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.Arguments -import org.junit.jupiter.params.provider.ArgumentsProvider -import org.junit.jupiter.params.provider.ArgumentsSource -import java.math.BigDecimal -import java.util.stream.Stream - -class ReadJsonPropertiesTest { - - private val objectMapper: ObjectMapper = ObjectMapper() - .setSerializationInclusion(JsonInclude.Include.NON_NULL) - - private val bigDecimalObjectMapper: ObjectMapper = ObjectMapper() - .configure(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS, true) - .setSerializationInclusion(JsonInclude.Include.NON_NULL) - - fun compareSchemas(schemaToCompareWith: String, - schemaClass: Class<*>, - schemaProvider: SchemaProvider - ) { - val jsonSchemaString = ClasspathUtils.readAsString(schemaToCompareWith) - val jsonSchema = if (schemaProvider.jsonSchema().defaultValue is BigDecimal) { - bigDecimalObjectMapper.readValue(jsonSchemaString, schemaClass) - } else { - objectMapper.readValue(jsonSchemaString, schemaClass) - } - val schemaToCheck: Any? = when (schemaClass) { - JsonSchema::class.java -> schemaProvider.jsonSchema() - AsyncAPISchema::class.java -> schemaProvider.asyncAPISchema() - else -> null - } - - Assertions.assertEquals(jsonSchema, schemaToCheck) - } - - @Nested - inner class JsonSchemaImplementation { - - @ArgumentsSource(Properties::class) - @ParameterizedTest(name = "Read: {0}") - fun readAnyTypeProperty(constPropertyToRead: String, schemaProvider: SchemaProvider) { - compareSchemas(constPropertyToRead, JsonSchema::class.java, schemaProvider) - } - - } - - @Nested - inner class AsyncAPISchemaImplementation { - - @ArgumentsSource(Properties::class) - @ParameterizedTest(name = "Read: {0}") - fun readAnyTypeProperty(constPropertyToRead: String, schemaProvider: SchemaProvider) { - compareSchemas(constPropertyToRead, AsyncAPISchema::class.java, schemaProvider) - } - - } - - class Properties: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of("/json/v3/schema/json/properties/bigdecimal.json", ConstDefaultExamplesBigDecimalTest()), - Arguments.of("/json/v3/schema/json/properties/bigdecimal-maximum.json", ConstDefaultExamplesBigDecimalMaximumTest()), - Arguments.of("/json/v3/schema/json/properties/bigdecimal-minimum.json", ConstDefaultExamplesBigDecimalMinimumTest()), - - Arguments.of("/json/v3/schema/json/properties/biginteger.json", ConstDefaultExamplesBigIntegerTest()), - Arguments.of("/json/v3/schema/json/properties/biginteger-maximum.json", ConstDefaultExamplesBigIntegerMaximumTest()), - Arguments.of("/json/v3/schema/json/properties/biginteger-minimum.json", ConstDefaultExamplesBigIntegerMinimumTest()), - - Arguments.of("/json/v3/schema/json/properties/boolean-false.json", ConstDefaultExamplesBooleanFalseTest()), - Arguments.of("/json/v3/schema/json/properties/boolean-true.json", ConstDefaultExamplesBooleanTrueTest()), - - Arguments.of("/json/v3/schema/json/properties/double.json", ConstDefaultExamplesDoubleTest()), - Arguments.of("/json/v3/schema/json/properties/double-maximum.json", ConstDefaultExamplesDoubleMaximumTest()), - Arguments.of("/json/v3/schema/json/properties/double-minimum.json", ConstDefaultExamplesDoubleMinimumTest()), - - Arguments.of("/json/v3/schema/json/properties/int.json", ConstDefaultExamplesIntTest()), - Arguments.of("/json/v3/schema/json/properties/int-maximum.json", ConstDefaultExamplesIntMaximumTest()), - Arguments.of("/json/v3/schema/json/properties/int-minimum.json", ConstDefaultExamplesIntMinimumTest()), - - Arguments.of("/json/v3/schema/json/properties/null.json", ConstDefaultExamplesNullTest()), - - Arguments.of("/json/v3/schema/json/properties/object.json", ConstDefaultExamplesObjectTest()), - - Arguments.of("/json/v3/schema/json/properties/array.json", ConstDefaultExamplesArrayTest()), - ) - } - - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/ReadJsonSchemaTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/ReadJsonSchemaTest.kt deleted file mode 100644 index 5946e7b2..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/ReadJsonSchemaTest.kt +++ /dev/null @@ -1,73 +0,0 @@ -package com.asyncapi.v3.schema - -import com.asyncapi.v3.ClasspathUtils -import com.asyncapi.v3.schema.json.* -import com.fasterxml.jackson.annotation.JsonInclude -import com.fasterxml.jackson.databind.ObjectMapper -import org.junit.jupiter.api.* -import org.junit.jupiter.api.extension.ExtensionContext -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.Arguments -import org.junit.jupiter.params.provider.ArgumentsProvider -import org.junit.jupiter.params.provider.ArgumentsSource -import java.util.stream.Stream - -class ReadJsonSchemaTest { - - private val objectMapper: ObjectMapper = ObjectMapper() - .setSerializationInclusion(JsonInclude.Include.NON_NULL) - - fun compareSchemas(schemaToCompareWith: String, - schemaClass: Class<*>, - schemaProvider: SchemaProvider - ) { - val jsonSchemaString = ClasspathUtils.readAsString(schemaToCompareWith) - val jsonSchema = objectMapper.readValue(jsonSchemaString, schemaClass) - val schemaToCheck: Any? = when (schemaClass) { - JsonSchema::class.java -> schemaProvider.jsonSchema() - AsyncAPISchema::class.java -> schemaProvider.asyncAPISchema() - else -> null - } - - Assertions.assertEquals(jsonSchema, schemaToCheck) - } - - @Nested - inner class JsonSchemaImplementation { - - @ArgumentsSource(JsonSchemas::class) - @ParameterizedTest(name = "Read: {0}") - fun readJsonSchema(schemaToCompareWith: String, schemaProvider: SchemaProvider) { - compareSchemas(schemaToCompareWith, JsonSchema::class.java, schemaProvider) - } - - } - - @Nested - inner class AsyncAPISchemaImplementation { - - @ArgumentsSource(JsonSchemas::class) - @ParameterizedTest(name = "Read: {0}") - fun readJsonSchema(schemaToCompareWith: String, schemaProvider: SchemaProvider) { - compareSchemas(schemaToCompareWith, AsyncAPISchema::class.java, schemaProvider) - } - - } - - class JsonSchemas: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of("/json/v3/schema/json/arrays.schema.json", ArraysSchemaTest()), - Arguments.of("/json/v3/schema/json/complex-object.schema.json", ComplexObjectTest()), - Arguments.of("/json/v3/schema/json/conditional-validation-if-else.schema.json", ConditionalValidationIfElse()), - Arguments.of("/json/v3/schema/json/draft-07-core-schema-meta-schema.json", Draft07CoreSchemaMetaSchemaTest()), - Arguments.of("/json/v3/schema/json/enumerated-values.schema.json", EnumeratedValuesTest()), - Arguments.of("/json/v3/schema/json/person.schema.json", PersonTest()), - Arguments.of("/json/v3/schema/json/regex-pattern.schema.json", RegexPatternTest()) - ) - } - - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/SchemaProvider.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/SchemaProvider.kt deleted file mode 100644 index 1174ee68..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/SchemaProvider.kt +++ /dev/null @@ -1,21 +0,0 @@ -package com.asyncapi.v3.schema - -import com.asyncapi.v3.schema.multiformat.AsyncAPIFormatSchema -import com.asyncapi.v3.schema.multiformat.JsonFormatSchema -import com.asyncapi.v3.schema.openapi.v3._0_0.OpenAPISchema - -interface SchemaProvider { - - fun jsonSchema(): JsonSchema = JsonSchema() - - fun jsonFormatSchemaJson(): JsonFormatSchema = JsonFormatSchema(jsonSchema()) - - fun jsonFormatSchemaYaml(): JsonFormatSchema = JsonFormatSchema("application/schema+yaml;version=draft-07", jsonSchema()) - - fun asyncAPISchema(): AsyncAPISchema = AsyncAPISchema() - - fun asyncAPIFormatSchemaEmptySchemaFormat(): AsyncAPIFormatSchema = AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", asyncAPISchema()) - - fun openAPISchema(): OpenAPISchema = OpenAPISchema() - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/avro/AvroTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/avro/AvroTest.kt deleted file mode 100644 index ec2b0d6a..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/avro/AvroTest.kt +++ /dev/null @@ -1,67 +0,0 @@ -package com.asyncapi.v3.schema.avro - -import com.asyncapi.v3.ClasspathUtils -import com.asyncapi.v3.schema.avro.v1._9_0.AvroSchema -import com.asyncapi.v3.schema.avro.v1._9_0.AvroSchemaUnion -import com.fasterxml.jackson.annotation.JsonInclude -import com.fasterxml.jackson.databind.ObjectMapper -import com.fasterxml.jackson.dataformat.yaml.YAMLFactory -import org.junit.jupiter.api.Assertions -import org.junit.jupiter.api.extension.ExtensionContext -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.Arguments -import org.junit.jupiter.params.provider.ArgumentsProvider -import org.junit.jupiter.params.provider.ArgumentsSource -import java.util.stream.Stream - -class AvroSchemaSchemaTest { - - fun compareSchemas( - schemaToCheckPath: String, - clazz: Class<*>, - schemaToCheck: Any - ) { - val schemaAsJson = ClasspathUtils.readAsString(schemaToCheckPath) - val schema = objectMapper.readValue(schemaAsJson, clazz) - - Assertions.assertEquals(schema, schemaToCheck) - } - - private val objectMapper: ObjectMapper = ObjectMapper(YAMLFactory()) - .setSerializationInclusion(JsonInclude.Include.NON_NULL) - .findAndRegisterModules() - - @ArgumentsSource(AvroSchemas::class) - @ParameterizedTest(name = "Read: {0}") - fun read(schemaToCheckPath: String, clazz: Class<*>, avroSchema: Any) { - compareSchemas(schemaToCheckPath, clazz, avroSchema) - } - - class AvroSchemas: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of("/json/v3/schema/avro/ApplicationEvent.avsc", AvroSchema::class.java, AvroSchemasProvider().applicationEventTest()), - Arguments.of("/json/v3/schema/avro/DocumentInfo.avsc", AvroSchema::class.java, AvroSchemasProvider().documentInfo()), - Arguments.of("/json/v3/schema/avro/foo.Bar.avsc", AvroSchema::class.java, AvroSchemasProvider().fooBar()), - Arguments.of("/json/v3/schema/avro/full_record_v1.avsc", AvroSchema::class.java, AvroSchemasProvider().fullRecordV1()), - Arguments.of("/json/v3/schema/avro/full_record_v2.avsc", AvroSchema::class.java, AvroSchemasProvider().fullRecordV2()), - Arguments.of("/json/v3/schema/avro/logical-uuid.avsc", AvroSchema::class.java, AvroSchemasProvider().logicalUUID()), - Arguments.of("/json/v3/schema/avro/logical_types_with_multiple_fields.avsc", AvroSchema::class.java, AvroSchemasProvider().logicalTypesWithMultipleFields()), - Arguments.of("/json/v3/schema/avro/MyResponse.avsc", AvroSchema::class.java, AvroSchemasProvider().myResponse()), - Arguments.of("/json/v3/schema/avro/regression_error_field_in_record.avsc", AvroSchema::class.java, AvroSchemasProvider().regressionErrorFieldInRecord()), - Arguments.of("/json/v3/schema/avro/schema-location.json", AvroSchema::class.java, AvroSchemasProvider().schemaLocation()), - Arguments.of("/json/v3/schema/avro/schema-location-read.json", AvroSchema::class.java, AvroSchemasProvider().schemaLocationRead()), - Arguments.of("/json/v3/schema/avro/schema-location-write.json", AvroSchema::class.java, AvroSchemasProvider().schemaLocationWrite()), - Arguments.of("/json/v3/schema/avro/SchemaBuilder.avsc", AvroSchema::class.java, AvroSchemasProvider().schemaBuilder()), - Arguments.of("/json/v3/schema/avro/simple_record.avsc", AvroSchema::class.java, AvroSchemasProvider().simpleRecord()), - Arguments.of("/json/v3/schema/avro/TestRecordWithLogicalTypes.avsc", AvroSchema::class.java, AvroSchemasProvider().testRecordWithLogicalTypes()), - Arguments.of("/json/v3/schema/avro/TestRecordWithMapsAndArrays.avsc", AvroSchema::class.java, AvroSchemasProvider().testRecordWithMapsAndArrays()), - Arguments.of("/json/v3/schema/avro/TestUnionRecord.avsc", AvroSchemaUnion::class.java, AvroSchemasProvider().testUnionRecord()), - Arguments.of("/json/v3/schema/avro/union_and_fixed_fields.avsc", AvroSchema::class.java, AvroSchemasProvider().unionAndFixedFields()), - ) - } - - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesIntTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesIntTest.kt deleted file mode 100644 index d6e677e9..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesIntTest.kt +++ /dev/null @@ -1,28 +0,0 @@ -package com.asyncapi.v3.schema.json.properties - -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.JsonSchema -import com.asyncapi.v3.schema.SchemaProvider - -class ConstDefaultExamplesIntTest: SchemaProvider { - - private val value: Int = 0 - - - override fun jsonSchema(): JsonSchema { - return JsonSchema.builder() - .constValue(value) - .defaultValue(value) - .examples(listOf(value)) - .build() - } - - override fun asyncAPISchema(): AsyncAPISchema { - return AsyncAPISchema.builder() - .constValue(value) - .defaultValue(value) - .examples(listOf(value)) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesNullTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesNullTest.kt deleted file mode 100644 index ff007981..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/json/properties/ConstDefaultExamplesNullTest.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.asyncapi.v3.schema.json.properties - -import com.asyncapi.v3.schema.AsyncAPISchema -import com.asyncapi.v3.schema.JsonSchema -import com.asyncapi.v3.schema.SchemaProvider - -class ConstDefaultExamplesNullTest: SchemaProvider { - - private val value = null - - override fun jsonSchema(): JsonSchema { - return JsonSchema.builder() - .constValue(value) - .defaultValue(value) - .examples(listOf(value)) - .build() - } - - override fun asyncAPISchema(): AsyncAPISchema { - return AsyncAPISchema.builder() - .constValue(value) - .defaultValue(value) - .examples(listOf(value)) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/AsyncAPIFormatSchemaV2_0_0Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/AsyncAPIFormatSchemaV2_0_0Test.kt deleted file mode 100644 index 6c70dda0..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/AsyncAPIFormatSchemaV2_0_0Test.kt +++ /dev/null @@ -1,164 +0,0 @@ -package com.asyncapi.v3.schema.multiformat.asyncapi - -import com.asyncapi.v3.schema.json.* -import com.asyncapi.v3.schema.multiformat.AsyncAPIFormatSchema -import org.junit.jupiter.api.extension.ExtensionContext -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.Arguments -import org.junit.jupiter.params.provider.ArgumentsProvider -import org.junit.jupiter.params.provider.ArgumentsSource -import java.util.stream.Stream - -abstract class AsyncAPIFormatSchemaV2_0_0Test: AsyncAPIFormatSchemaTest() { - - @ArgumentsSource(JsonFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseJson( - asyncAPIFormatSchemaToCompareWithFilePath: String, - asyncAPIFormatSchema: AsyncAPIFormatSchema - ) { - compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) - } - - @ArgumentsSource(YamlFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseYaml( - asyncAPIFormatSchemaToCompareWithFilePath: String, - asyncAPIFormatSchema: AsyncAPIFormatSchema - ) { - compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) - } - - class JsonFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/arrays.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.0.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/complex-object.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.0.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.0.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.0.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/enumerated-values.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.0.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/person.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.0.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/regex-pattern.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.0.0", RegexPatternTest().asyncAPISchema()) - ), - // - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/arrays.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.0.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/complex-object.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.0.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.0.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.0.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/enumerated-values.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.0.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/person.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.0.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/regex-pattern.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.0.0", RegexPatternTest().asyncAPISchema()) - ) - ) - } - - } - - class YamlFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.0.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.0.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.0.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.0.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.0.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/person.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.0.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.0.0", RegexPatternTest().asyncAPISchema()) - ), - // - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/arrays.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.0.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/complex-object.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.0.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.0.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.0.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/enumerated-values.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.0.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/person.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.0.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/regex-pattern.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.0.0", RegexPatternTest().asyncAPISchema()) - ) - ) - } - - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/AsyncAPIFormatSchemaV2_1_0Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/AsyncAPIFormatSchemaV2_1_0Test.kt deleted file mode 100644 index fde6fb5c..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/AsyncAPIFormatSchemaV2_1_0Test.kt +++ /dev/null @@ -1,164 +0,0 @@ -package com.asyncapi.v3.schema.multiformat.asyncapi - -import com.asyncapi.v3.schema.json.* -import com.asyncapi.v3.schema.multiformat.AsyncAPIFormatSchema -import org.junit.jupiter.api.extension.ExtensionContext -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.Arguments -import org.junit.jupiter.params.provider.ArgumentsProvider -import org.junit.jupiter.params.provider.ArgumentsSource -import java.util.stream.Stream - -abstract class AsyncAPIFormatSchemaV2_1_0Test: AsyncAPIFormatSchemaTest() { - - @ArgumentsSource(JsonFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseJson( - asyncAPIFormatSchemaToCompareWithFilePath: String, - asyncAPIFormatSchema: AsyncAPIFormatSchema - ) { - compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) - } - - @ArgumentsSource(YamlFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseYaml( - asyncAPIFormatSchemaToCompareWithFilePath: String, - asyncAPIFormatSchema: AsyncAPIFormatSchema - ) { - compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) - } - - class JsonFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/arrays.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.1.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/complex-object.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.1.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.1.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.1.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/enumerated-values.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.1.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/person.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.1.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/regex-pattern.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.1.0", RegexPatternTest().asyncAPISchema()) - ), - // - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/arrays.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.1.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/complex-object.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.1.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.1.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.1.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/enumerated-values.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.1.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/person.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.1.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/regex-pattern.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.1.0", RegexPatternTest().asyncAPISchema()) - ) - ) - } - - } - - class YamlFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.1.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.1.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.1.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.1.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.1.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/person.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.1.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.1.0", RegexPatternTest().asyncAPISchema()) - ), - // - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/arrays.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.1.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/complex-object.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.1.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.1.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.1.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/enumerated-values.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.1.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/person.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.1.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/regex-pattern.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.1.0", RegexPatternTest().asyncAPISchema()) - ) - ) - } - - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/AsyncAPIFormatSchemaV2_2_0Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/AsyncAPIFormatSchemaV2_2_0Test.kt deleted file mode 100644 index 205bdd81..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/AsyncAPIFormatSchemaV2_2_0Test.kt +++ /dev/null @@ -1,164 +0,0 @@ -package com.asyncapi.v3.schema.multiformat.asyncapi - -import com.asyncapi.v3.schema.json.* -import com.asyncapi.v3.schema.multiformat.AsyncAPIFormatSchema -import org.junit.jupiter.api.extension.ExtensionContext -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.Arguments -import org.junit.jupiter.params.provider.ArgumentsProvider -import org.junit.jupiter.params.provider.ArgumentsSource -import java.util.stream.Stream - -abstract class AsyncAPIFormatSchemaV2_2_0Test: AsyncAPIFormatSchemaTest() { - - @ArgumentsSource(JsonFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseJson( - asyncAPIFormatSchemaToCompareWithFilePath: String, - asyncAPIFormatSchema: AsyncAPIFormatSchema - ) { - compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) - } - - @ArgumentsSource(YamlFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseYaml( - asyncAPIFormatSchemaToCompareWithFilePath: String, - asyncAPIFormatSchema: AsyncAPIFormatSchema - ) { - compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) - } - - class JsonFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/arrays.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.2.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/complex-object.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.2.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.2.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.2.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/enumerated-values.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.2.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/person.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.2.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/regex-pattern.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.2.0", RegexPatternTest().asyncAPISchema()) - ), - // - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/arrays.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.2.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/complex-object.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.2.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.2.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.2.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/enumerated-values.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.2.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/person.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.2.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/regex-pattern.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.2.0", RegexPatternTest().asyncAPISchema()) - ) - ) - } - - } - - class YamlFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.2.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.2.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.2.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.2.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.2.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/person.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.2.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.2.0", RegexPatternTest().asyncAPISchema()) - ), - // - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/arrays.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.2.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/complex-object.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.2.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.2.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.2.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/enumerated-values.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.2.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/person.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.2.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/regex-pattern.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.2.0", RegexPatternTest().asyncAPISchema()) - ) - ) - } - - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/AsyncAPIFormatSchemaV2_3_0Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/AsyncAPIFormatSchemaV2_3_0Test.kt deleted file mode 100644 index da5fe7ad..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/AsyncAPIFormatSchemaV2_3_0Test.kt +++ /dev/null @@ -1,164 +0,0 @@ -package com.asyncapi.v3.schema.multiformat.asyncapi - -import com.asyncapi.v3.schema.json.* -import com.asyncapi.v3.schema.multiformat.AsyncAPIFormatSchema -import org.junit.jupiter.api.extension.ExtensionContext -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.Arguments -import org.junit.jupiter.params.provider.ArgumentsProvider -import org.junit.jupiter.params.provider.ArgumentsSource -import java.util.stream.Stream - -abstract class AsyncAPIFormatSchemaV2_3_0Test: AsyncAPIFormatSchemaTest() { - - @ArgumentsSource(JsonFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseJson( - asyncAPIFormatSchemaToCompareWithFilePath: String, - asyncAPIFormatSchema: AsyncAPIFormatSchema - ) { - compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) - } - - @ArgumentsSource(YamlFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseYaml( - asyncAPIFormatSchemaToCompareWithFilePath: String, - asyncAPIFormatSchema: AsyncAPIFormatSchema - ) { - compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) - } - - class JsonFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/arrays.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.3.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/complex-object.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.3.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.3.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.3.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/enumerated-values.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.3.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/person.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.3.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/regex-pattern.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.3.0", RegexPatternTest().asyncAPISchema()) - ), - // - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/arrays.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.3.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/complex-object.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.3.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.3.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.3.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/enumerated-values.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.3.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/person.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.3.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/regex-pattern.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.3.0", RegexPatternTest().asyncAPISchema()) - ) - ) - } - - } - - class YamlFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.3.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.3.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.3.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.3.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.3.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/person.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.3.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.3.0", RegexPatternTest().asyncAPISchema()) - ), - // - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/arrays.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.3.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/complex-object.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.3.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.3.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.3.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/enumerated-values.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.3.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/person.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.3.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/regex-pattern.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.3.0", RegexPatternTest().asyncAPISchema()) - ) - ) - } - - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/AsyncAPIFormatSchemaV2_4_0Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/AsyncAPIFormatSchemaV2_4_0Test.kt deleted file mode 100644 index c7063fbc..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/AsyncAPIFormatSchemaV2_4_0Test.kt +++ /dev/null @@ -1,164 +0,0 @@ -package com.asyncapi.v3.schema.multiformat.asyncapi - -import com.asyncapi.v3.schema.json.* -import com.asyncapi.v3.schema.multiformat.AsyncAPIFormatSchema -import org.junit.jupiter.api.extension.ExtensionContext -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.Arguments -import org.junit.jupiter.params.provider.ArgumentsProvider -import org.junit.jupiter.params.provider.ArgumentsSource -import java.util.stream.Stream - -abstract class AsyncAPIFormatSchemaV2_4_0Test: AsyncAPIFormatSchemaTest() { - - @ArgumentsSource(JsonFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseJson( - asyncAPIFormatSchemaToCompareWithFilePath: String, - asyncAPIFormatSchema: AsyncAPIFormatSchema - ) { - compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) - } - - @ArgumentsSource(YamlFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseYaml( - asyncAPIFormatSchemaToCompareWithFilePath: String, - asyncAPIFormatSchema: AsyncAPIFormatSchema - ) { - compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) - } - - class JsonFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/arrays.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.4.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/complex-object.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.4.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.4.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.4.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/enumerated-values.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.4.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/person.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.4.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/regex-pattern.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.4.0", RegexPatternTest().asyncAPISchema()) - ), - // - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/arrays.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.4.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/complex-object.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.4.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.4.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.4.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/enumerated-values.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.4.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/person.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.4.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/regex-pattern.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.4.0", RegexPatternTest().asyncAPISchema()) - ) - ) - } - - } - - class YamlFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.4.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.4.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.4.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.4.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.4.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/person.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.4.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.4.0", RegexPatternTest().asyncAPISchema()) - ), - // - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/arrays.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.4.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/complex-object.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.4.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.4.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.4.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/enumerated-values.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.4.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/person.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.4.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/regex-pattern.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.4.0", RegexPatternTest().asyncAPISchema()) - ) - ) - } - - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/AsyncAPIFormatSchemaV2_5_0Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/AsyncAPIFormatSchemaV2_5_0Test.kt deleted file mode 100644 index 61424c32..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/AsyncAPIFormatSchemaV2_5_0Test.kt +++ /dev/null @@ -1,164 +0,0 @@ -package com.asyncapi.v3.schema.multiformat.asyncapi - -import com.asyncapi.v3.schema.json.* -import com.asyncapi.v3.schema.multiformat.AsyncAPIFormatSchema -import org.junit.jupiter.api.extension.ExtensionContext -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.Arguments -import org.junit.jupiter.params.provider.ArgumentsProvider -import org.junit.jupiter.params.provider.ArgumentsSource -import java.util.stream.Stream - -abstract class AsyncAPIFormatSchemaV2_5_0Test: AsyncAPIFormatSchemaTest() { - - @ArgumentsSource(JsonFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseJson( - asyncAPIFormatSchemaToCompareWithFilePath: String, - asyncAPIFormatSchema: AsyncAPIFormatSchema - ) { - compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) - } - - @ArgumentsSource(YamlFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseYaml( - asyncAPIFormatSchemaToCompareWithFilePath: String, - asyncAPIFormatSchema: AsyncAPIFormatSchema - ) { - compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) - } - - class JsonFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/arrays.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.5.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/complex-object.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.5.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.5.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.5.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/enumerated-values.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.5.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/person.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.5.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/regex-pattern.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.5.0", RegexPatternTest().asyncAPISchema()) - ), - // - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/arrays.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.5.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/complex-object.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.5.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.5.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.5.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/enumerated-values.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.5.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/person.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.5.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/regex-pattern.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.5.0", RegexPatternTest().asyncAPISchema()) - ) - ) - } - - } - - class YamlFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.5.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.5.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.5.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.5.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.5.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/person.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.5.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.5.0", RegexPatternTest().asyncAPISchema()) - ), - // - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/arrays.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.5.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/complex-object.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.5.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.5.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.5.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/enumerated-values.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.5.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/person.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.5.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/regex-pattern.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.5.0", RegexPatternTest().asyncAPISchema()) - ) - ) - } - - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/AsyncAPIFormatSchemaV2_6_0Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/AsyncAPIFormatSchemaV2_6_0Test.kt deleted file mode 100644 index 97d059e6..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/AsyncAPIFormatSchemaV2_6_0Test.kt +++ /dev/null @@ -1,164 +0,0 @@ -package com.asyncapi.v3.schema.multiformat.asyncapi - -import com.asyncapi.v3.schema.json.* -import com.asyncapi.v3.schema.multiformat.AsyncAPIFormatSchema -import org.junit.jupiter.api.extension.ExtensionContext -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.Arguments -import org.junit.jupiter.params.provider.ArgumentsProvider -import org.junit.jupiter.params.provider.ArgumentsSource -import java.util.stream.Stream - -abstract class AsyncAPIFormatSchemaV2_6_0Test: AsyncAPIFormatSchemaTest() { - - @ArgumentsSource(JsonFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseJson( - asyncAPIFormatSchemaToCompareWithFilePath: String, - asyncAPIFormatSchema: AsyncAPIFormatSchema - ) { - compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) - } - - @ArgumentsSource(YamlFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseYaml( - asyncAPIFormatSchemaToCompareWithFilePath: String, - asyncAPIFormatSchema: AsyncAPIFormatSchema - ) { - compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) - } - - class JsonFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/arrays.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.6.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/complex-object.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.6.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.6.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.6.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/enumerated-values.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.6.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/person.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.6.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/regex-pattern.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=2.6.0", RegexPatternTest().asyncAPISchema()) - ), - // - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/arrays.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.6.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/complex-object.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.6.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.6.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.6.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/enumerated-values.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.6.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/person.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.6.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/regex-pattern.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.6.0", RegexPatternTest().asyncAPISchema()) - ) - ) - } - - } - - class YamlFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.6.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.6.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.6.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.6.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.6.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/person.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.6.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=2.6.0", RegexPatternTest().asyncAPISchema()) - ), - // - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/arrays.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.6.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/complex-object.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.6.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.6.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.6.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/enumerated-values.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.6.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/person.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.6.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/regex-pattern.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=2.6.0", RegexPatternTest().asyncAPISchema()) - ) - ) - } - - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/AsyncAPIFormatSchemaV3_0_0Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/AsyncAPIFormatSchemaV3_0_0Test.kt deleted file mode 100644 index 1f432975..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/AsyncAPIFormatSchemaV3_0_0Test.kt +++ /dev/null @@ -1,164 +0,0 @@ -package com.asyncapi.v3.schema.multiformat.asyncapi - -import com.asyncapi.v3.schema.json.* -import com.asyncapi.v3.schema.multiformat.AsyncAPIFormatSchema -import org.junit.jupiter.api.extension.ExtensionContext -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.Arguments -import org.junit.jupiter.params.provider.ArgumentsProvider -import org.junit.jupiter.params.provider.ArgumentsSource -import java.util.stream.Stream - -abstract class AsyncAPIFormatSchemaV3_0_0Test: AsyncAPIFormatSchemaTest() { - - @ArgumentsSource(JsonFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseJson( - asyncAPIFormatSchemaToCompareWithFilePath: String, - asyncAPIFormatSchema: AsyncAPIFormatSchema - ) { - compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) - } - - @ArgumentsSource(YamlFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseYaml( - asyncAPIFormatSchemaToCompareWithFilePath: String, - asyncAPIFormatSchema: AsyncAPIFormatSchema - ) { - compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) - } - - class JsonFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/arrays.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/complex-object.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/enumerated-values.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/person.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/regex-pattern.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", RegexPatternTest().asyncAPISchema()) - ), - // - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/arrays.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=3.0.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/complex-object.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=3.0.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=3.0.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=3.0.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/enumerated-values.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=3.0.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/person.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=3.0.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/regex-pattern.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=3.0.0", RegexPatternTest().asyncAPISchema()) - ) - ) - } - - } - - class YamlFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=3.0.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=3.0.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=3.0.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=3.0.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=3.0.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/person.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=3.0.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+yaml;version=3.0.0", RegexPatternTest().asyncAPISchema()) - ), - // - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/arrays.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=3.0.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/complex-object.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=3.0.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=3.0.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=3.0.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/enumerated-values.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=3.0.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/person.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=3.0.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/regex-pattern.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi;version=3.0.0", RegexPatternTest().asyncAPISchema()) - ) - ) - } - - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/EmptySchemaFormatTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/EmptySchemaFormatTest.kt deleted file mode 100644 index 009363db..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/EmptySchemaFormatTest.kt +++ /dev/null @@ -1,104 +0,0 @@ -package com.asyncapi.v3.schema.multiformat.asyncapi - -import com.asyncapi.v3.schema.json.* -import com.asyncapi.v3.schema.multiformat.AsyncAPIFormatSchema -import org.junit.jupiter.api.extension.ExtensionContext -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.Arguments -import org.junit.jupiter.params.provider.ArgumentsProvider -import org.junit.jupiter.params.provider.ArgumentsSource -import java.util.stream.Stream - -abstract class EmptySchemaFormatTest: AsyncAPIFormatSchemaTest() { - - @ArgumentsSource(Json::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseJson( - asyncAPIFormatSchemaToCompareWithFilePath: String, - asyncAPIFormatSchema: AsyncAPIFormatSchema - ) { - compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) - } - - @ArgumentsSource(Yaml::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseYaml( - asyncAPIFormatSchemaToCompareWithFilePath: String, - asyncAPIFormatSchema: AsyncAPIFormatSchema - ) { - compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) - } - - class Json: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/schemaFormat is empty/arrays.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of("/json/v3/schema/multiformat/schemaFormat is empty/complex-object.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/schemaFormat is empty/conditional-validation-if-else.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/schemaFormat is empty/draft-07-core-schema-meta-schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/schemaFormat is empty/enumerated-values.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/schemaFormat is empty/person.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/schemaFormat is empty/regex-pattern.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", RegexPatternTest().asyncAPISchema()) - ) - ) - } - - } - - class Yaml: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/schemaFormat is empty/arrays.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of("/json/v3/schema/multiformat/schemaFormat is empty/complex-object.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/schemaFormat is empty/conditional-validation-if-else.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/schemaFormat is empty/draft-07-core-schema-meta-schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/schemaFormat is empty/enumerated-values.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/schemaFormat is empty/person.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/schemaFormat is empty/regex-pattern.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", RegexPatternTest().asyncAPISchema()) - ) - ) - } - - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/NullSchemaFormatTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/NullSchemaFormatTest.kt deleted file mode 100644 index 043ae506..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/NullSchemaFormatTest.kt +++ /dev/null @@ -1,106 +0,0 @@ -package com.asyncapi.v3.schema.multiformat.asyncapi - -import com.asyncapi.v3.schema.json.* -import com.asyncapi.v3.schema.multiformat.AsyncAPIFormatSchema -import org.junit.jupiter.api.extension.ExtensionContext -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.Arguments -import org.junit.jupiter.params.provider.ArgumentsProvider -import org.junit.jupiter.params.provider.ArgumentsSource -import java.util.stream.Stream - -abstract class NullSchemaFormatTest: AsyncAPIFormatSchemaTest() { - - @ArgumentsSource(Json::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseJson( - asyncAPIFormatSchemaToCompareWithFilePath: String, - asyncAPIFormatSchema: AsyncAPIFormatSchema - ) { - compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) - } - - @ArgumentsSource(Yaml::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseYaml( - asyncAPIFormatSchemaToCompareWithFilePath: String, - asyncAPIFormatSchema: AsyncAPIFormatSchema - ) { - compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) - } - - class Json: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/schemaFormat is null/arrays.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/schemaFormat is null/complex-object.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/schemaFormat is null/conditional-validation-if-else.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/schemaFormat is null/draft-07-core-schema-meta-schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/schemaFormat is null/enumerated-values.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/schemaFormat is null/person.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/schemaFormat is null/regex-pattern.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", RegexPatternTest().asyncAPISchema()) - ) - ) - } - - } - - class Yaml: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/schemaFormat is null/arrays.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/schemaFormat is null/complex-object.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/schemaFormat is null/conditional-validation-if-else.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/schemaFormat is null/draft-07-core-schema-meta-schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/schemaFormat is null/enumerated-values.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/schemaFormat is null/person.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/schemaFormat is null/regex-pattern.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", RegexPatternTest().asyncAPISchema()) - ) - ) - } - - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/WithoutSchemaFormatTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/WithoutSchemaFormatTest.kt deleted file mode 100644 index 86333980..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/asyncapi/WithoutSchemaFormatTest.kt +++ /dev/null @@ -1,106 +0,0 @@ -package com.asyncapi.v3.schema.multiformat.asyncapi - -import com.asyncapi.v3.schema.json.* -import com.asyncapi.v3.schema.multiformat.AsyncAPIFormatSchema -import org.junit.jupiter.api.extension.ExtensionContext -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.Arguments -import org.junit.jupiter.params.provider.ArgumentsProvider -import org.junit.jupiter.params.provider.ArgumentsSource -import java.util.stream.Stream - -abstract class WithoutSchemaFormatTest: AsyncAPIFormatSchemaTest() { - - @ArgumentsSource(Json::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseJson( - asyncAPIFormatSchemaToCompareWithFilePath: String, - asyncAPIFormatSchema: AsyncAPIFormatSchema - ) { - compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) - } - - @ArgumentsSource(Yaml::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseYaml( - asyncAPIFormatSchemaToCompareWithFilePath: String, - asyncAPIFormatSchema: AsyncAPIFormatSchema - ) { - compareSchemas(asyncAPIFormatSchemaToCompareWithFilePath, asyncAPIFormatSchema) - } - - class Json: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/without schemaFormat/arrays.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/without schemaFormat/complex-object.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/without schemaFormat/conditional-validation-if-else.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/without schemaFormat/draft-07-core-schema-meta-schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/without schemaFormat/enumerated-values.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/without schemaFormat/person.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/without schemaFormat/regex-pattern.schema.json", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", RegexPatternTest().asyncAPISchema()) - ) - ) - } - - } - - class Yaml: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/without schemaFormat/arrays.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", ArraysSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/without schemaFormat/complex-object.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", ComplexObjectTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/without schemaFormat/conditional-validation-if-else.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", ConditionalValidationIfElse().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/without schemaFormat/draft-07-core-schema-meta-schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", Draft07CoreSchemaMetaSchemaTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/without schemaFormat/enumerated-values.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", EnumeratedValuesTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/without schemaFormat/person.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", PersonTest().asyncAPISchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/without schemaFormat/regex-pattern.schema.yaml", - AsyncAPIFormatSchema("application/vnd.aai.asyncapi+json;version=3.0.0", RegexPatternTest().asyncAPISchema()) - ) - ) - } - - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/avro/AvroSchemaFormatSchemaV1_10_0Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/avro/AvroSchemaFormatSchemaV1_10_0Test.kt deleted file mode 100644 index 8b28c946..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/avro/AvroSchemaFormatSchemaV1_10_0Test.kt +++ /dev/null @@ -1,340 +0,0 @@ -package com.asyncapi.v3.schema.multiformat.avro - -import com.asyncapi.v3.schema.avro.AvroSchemasProvider -import com.asyncapi.v3.schema.multiformat.AvroFormatSchema -import org.junit.jupiter.api.extension.ExtensionContext -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.Arguments -import org.junit.jupiter.params.provider.ArgumentsProvider -import org.junit.jupiter.params.provider.ArgumentsSource -import java.util.stream.Stream - -abstract class AvroFormatSchemaV1_10_0Test: AvroFormatSchemaTest() { - - @ArgumentsSource(JsonFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseJson( - avroFormatSchemaToCompareWithFilePath: String, - avroFormatSchema: AvroFormatSchema - ) { - compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) - } - - @ArgumentsSource(YamlFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseYaml( - avroFormatSchemaToCompareWithFilePath: String, - avroFormatSchema: AvroFormatSchema - ) { - compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) - } - - class JsonFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/ApplicationEvent.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.0", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/DocumentInfo.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.0", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/foo.Bar.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.0", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/full_record_v1.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.0", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/full_record_v2.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.0", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/logical-uuid.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.0", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/logical_types_with_multiple_fields.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.0", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/MyResponse.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.0", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/regression_error_field_in_record.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.0", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/schema-location.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.0", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/schema-location-read.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.0", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/schema-location-write.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.0", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/SchemaBuilder.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.0", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/simple_record.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.0", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/TestRecordWithLogicalTypes.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.0", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.0", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/TestUnionRecord.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.0", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/union_and_fixed_fields.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.0", AvroSchemasProvider().unionAndFixedFields()) - ), - - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/ApplicationEvent.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/DocumentInfo.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/foo.Bar.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/full_record_v1.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/full_record_v2.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/logical-uuid.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/logical_types_with_multiple_fields.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/MyResponse.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/regression_error_field_in_record.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/schema-location.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/schema-location-read.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/schema-location-write.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/SchemaBuilder.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/simple_record.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/TestRecordWithLogicalTypes.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/TestRecordWithMapsAndArrays.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/TestUnionRecord.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/union_and_fixed_fields.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().unionAndFixedFields()) - ), - ) - } - - } - - class YamlFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/ApplicationEvent.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.0", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/DocumentInfo.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.0", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/foo.Bar.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.0", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/full_record_v1.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.0", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/full_record_v2.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.0", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/logical-uuid.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.0", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.0", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/MyResponse.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.0", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/regression_error_field_in_record.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.0", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/schema-location.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.0", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/schema-location-read.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.0", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/schema-location-write.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.0", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/SchemaBuilder.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.0", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/simple_record.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.0", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.0", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.0", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/TestUnionRecord.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.0", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/union_and_fixed_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.0", AvroSchemasProvider().unionAndFixedFields()) - ), - - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/ApplicationEvent.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/DocumentInfo.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/foo.Bar.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/full_record_v1.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/full_record_v2.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/logical-uuid.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/logical_types_with_multiple_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/MyResponse.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/regression_error_field_in_record.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/schema-location.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/schema-location-read.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/schema-location-write.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/SchemaBuilder.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/simple_record.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/TestRecordWithLogicalTypes.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/TestUnionRecord.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/union_and_fixed_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.0", AvroSchemasProvider().unionAndFixedFields()) - ), - ) - } - - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/avro/AvroSchemaFormatSchemaV1_10_1Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/avro/AvroSchemaFormatSchemaV1_10_1Test.kt deleted file mode 100644 index b9291bab..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/avro/AvroSchemaFormatSchemaV1_10_1Test.kt +++ /dev/null @@ -1,340 +0,0 @@ -package com.asyncapi.v3.schema.multiformat.avro - -import com.asyncapi.v3.schema.avro.AvroSchemasProvider -import com.asyncapi.v3.schema.multiformat.AvroFormatSchema -import org.junit.jupiter.api.extension.ExtensionContext -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.Arguments -import org.junit.jupiter.params.provider.ArgumentsProvider -import org.junit.jupiter.params.provider.ArgumentsSource -import java.util.stream.Stream - -abstract class AvroFormatSchemaV1_10_1Test: AvroFormatSchemaTest() { - - @ArgumentsSource(JsonFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseJson( - avroFormatSchemaToCompareWithFilePath: String, - avroFormatSchema: AvroFormatSchema - ) { - compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) - } - - @ArgumentsSource(YamlFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseYaml( - avroFormatSchemaToCompareWithFilePath: String, - avroFormatSchema: AvroFormatSchema - ) { - compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) - } - - class JsonFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/ApplicationEvent.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.1", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/DocumentInfo.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.1", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/foo.Bar.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.1", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/full_record_v1.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.1", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/full_record_v2.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.1", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/logical-uuid.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.1", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/logical_types_with_multiple_fields.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.1", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/MyResponse.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.1", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/regression_error_field_in_record.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.1", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/schema-location.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.1", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/schema-location-read.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.1", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/schema-location-write.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.1", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/SchemaBuilder.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.1", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/simple_record.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.1", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/TestRecordWithLogicalTypes.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.1", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.1", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/TestUnionRecord.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.1", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/union_and_fixed_fields.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.1", AvroSchemasProvider().unionAndFixedFields()) - ), - - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/ApplicationEvent.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/DocumentInfo.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/foo.Bar.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/full_record_v1.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/full_record_v2.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/logical-uuid.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/logical_types_with_multiple_fields.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/MyResponse.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/regression_error_field_in_record.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/schema-location.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/schema-location-read.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/schema-location-write.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/SchemaBuilder.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/simple_record.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/TestRecordWithLogicalTypes.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/TestRecordWithMapsAndArrays.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/TestUnionRecord.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/union_and_fixed_fields.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().unionAndFixedFields()) - ), - ) - } - - } - - class YamlFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/ApplicationEvent.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.1", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/DocumentInfo.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.1", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/foo.Bar.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.1", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/full_record_v1.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.1", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/full_record_v2.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.1", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/logical-uuid.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.1", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.1", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/MyResponse.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.1", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/regression_error_field_in_record.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.1", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/schema-location.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.1", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/schema-location-read.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.1", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/schema-location-write.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.1", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/SchemaBuilder.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.1", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/simple_record.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.1", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.1", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.1", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/TestUnionRecord.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.1", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/union_and_fixed_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.1", AvroSchemasProvider().unionAndFixedFields()) - ), - - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/ApplicationEvent.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/DocumentInfo.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/foo.Bar.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/full_record_v1.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/full_record_v2.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/logical-uuid.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/logical_types_with_multiple_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/MyResponse.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/regression_error_field_in_record.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/schema-location.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/schema-location-read.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/schema-location-write.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/SchemaBuilder.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/simple_record.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/TestRecordWithLogicalTypes.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/TestUnionRecord.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/union_and_fixed_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.1", AvroSchemasProvider().unionAndFixedFields()) - ), - ) - } - - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/avro/AvroSchemaFormatSchemaV1_10_2Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/avro/AvroSchemaFormatSchemaV1_10_2Test.kt deleted file mode 100644 index d6ddda20..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/avro/AvroSchemaFormatSchemaV1_10_2Test.kt +++ /dev/null @@ -1,340 +0,0 @@ -package com.asyncapi.v3.schema.multiformat.avro - -import com.asyncapi.v3.schema.avro.AvroSchemasProvider -import com.asyncapi.v3.schema.multiformat.AvroFormatSchema -import org.junit.jupiter.api.extension.ExtensionContext -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.Arguments -import org.junit.jupiter.params.provider.ArgumentsProvider -import org.junit.jupiter.params.provider.ArgumentsSource -import java.util.stream.Stream - -abstract class AvroFormatSchemaV1_10_2Test: AvroFormatSchemaTest() { - - @ArgumentsSource(JsonFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseJson( - avroFormatSchemaToCompareWithFilePath: String, - avroFormatSchema: AvroFormatSchema - ) { - compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) - } - - @ArgumentsSource(YamlFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseYaml( - avroFormatSchemaToCompareWithFilePath: String, - avroFormatSchema: AvroFormatSchema - ) { - compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) - } - - class JsonFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/ApplicationEvent.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.2", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/DocumentInfo.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.2", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/foo.Bar.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.2", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/full_record_v1.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.2", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/full_record_v2.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.2", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/logical-uuid.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.2", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/logical_types_with_multiple_fields.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.2", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/MyResponse.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.2", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/regression_error_field_in_record.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.2", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/schema-location.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.2", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/schema-location-read.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.2", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/schema-location-write.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.2", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/SchemaBuilder.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.2", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/simple_record.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.2", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/TestRecordWithLogicalTypes.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.2", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.2", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/TestUnionRecord.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.2", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/union_and_fixed_fields.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.10.2", AvroSchemasProvider().unionAndFixedFields()) - ), - - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/ApplicationEvent.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/DocumentInfo.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/foo.Bar.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/full_record_v1.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/full_record_v2.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/logical-uuid.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/logical_types_with_multiple_fields.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/MyResponse.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/regression_error_field_in_record.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/schema-location.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/schema-location-read.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/schema-location-write.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/SchemaBuilder.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/simple_record.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/TestRecordWithLogicalTypes.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/TestRecordWithMapsAndArrays.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/TestUnionRecord.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/union_and_fixed_fields.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().unionAndFixedFields()) - ), - ) - } - - } - - class YamlFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/ApplicationEvent.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.2", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/DocumentInfo.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.2", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/foo.Bar.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.2", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/full_record_v1.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.2", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/full_record_v2.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.2", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/logical-uuid.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.2", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.2", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/MyResponse.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.2", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/regression_error_field_in_record.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.2", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/schema-location.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.2", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/schema-location-read.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.2", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/schema-location-write.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.2", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/SchemaBuilder.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.2", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/simple_record.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.2", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.2", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.2", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/TestUnionRecord.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.2", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/union_and_fixed_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.10.2", AvroSchemasProvider().unionAndFixedFields()) - ), - - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/ApplicationEvent.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/DocumentInfo.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/foo.Bar.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/full_record_v1.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/full_record_v2.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/logical-uuid.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/logical_types_with_multiple_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/MyResponse.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/regression_error_field_in_record.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/schema-location.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/schema-location-read.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/schema-location-write.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/SchemaBuilder.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/simple_record.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/TestRecordWithLogicalTypes.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/TestUnionRecord.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/union_and_fixed_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.10.2", AvroSchemasProvider().unionAndFixedFields()) - ), - ) - } - - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/avro/AvroSchemaFormatSchemaV1_11_0Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/avro/AvroSchemaFormatSchemaV1_11_0Test.kt deleted file mode 100644 index 13ee0c27..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/avro/AvroSchemaFormatSchemaV1_11_0Test.kt +++ /dev/null @@ -1,340 +0,0 @@ -package com.asyncapi.v3.schema.multiformat.avro - -import com.asyncapi.v3.schema.avro.AvroSchemasProvider -import com.asyncapi.v3.schema.multiformat.AvroFormatSchema -import org.junit.jupiter.api.extension.ExtensionContext -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.Arguments -import org.junit.jupiter.params.provider.ArgumentsProvider -import org.junit.jupiter.params.provider.ArgumentsSource -import java.util.stream.Stream - -abstract class AvroFormatSchemaV1_11_0Test: AvroFormatSchemaTest() { - - @ArgumentsSource(JsonFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseJson( - avroFormatSchemaToCompareWithFilePath: String, - avroFormatSchema: AvroFormatSchema - ) { - compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) - } - - @ArgumentsSource(YamlFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseYaml( - avroFormatSchemaToCompareWithFilePath: String, - avroFormatSchema: AvroFormatSchema - ) { - compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) - } - - class JsonFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/ApplicationEvent.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.0", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/DocumentInfo.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.0", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/foo.Bar.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.0", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/full_record_v1.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.0", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/full_record_v2.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.0", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/logical-uuid.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.0", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/logical_types_with_multiple_fields.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.0", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/MyResponse.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.0", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/regression_error_field_in_record.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.0", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/schema-location.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.0", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/schema-location-read.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.0", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/schema-location-write.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.0", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/SchemaBuilder.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.0", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/simple_record.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.0", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/TestRecordWithLogicalTypes.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.0", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.0", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/TestUnionRecord.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.0", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/union_and_fixed_fields.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.0", AvroSchemasProvider().unionAndFixedFields()) - ), - - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/ApplicationEvent.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/DocumentInfo.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/foo.Bar.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/full_record_v1.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/full_record_v2.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/logical-uuid.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/logical_types_with_multiple_fields.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/MyResponse.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/regression_error_field_in_record.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/schema-location.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/schema-location-read.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/schema-location-write.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/SchemaBuilder.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/simple_record.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/TestRecordWithLogicalTypes.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/TestRecordWithMapsAndArrays.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/TestUnionRecord.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/union_and_fixed_fields.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().unionAndFixedFields()) - ), - ) - } - - } - - class YamlFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/ApplicationEvent.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.0", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/DocumentInfo.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.0", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/foo.Bar.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.0", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/full_record_v1.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.0", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/full_record_v2.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.0", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/logical-uuid.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.0", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.0", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/MyResponse.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.0", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/regression_error_field_in_record.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.0", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/schema-location.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.0", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/schema-location-read.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.0", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/schema-location-write.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.0", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/SchemaBuilder.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.0", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/simple_record.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.0", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.0", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.0", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/TestUnionRecord.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.0", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/union_and_fixed_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.0", AvroSchemasProvider().unionAndFixedFields()) - ), - - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/ApplicationEvent.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/DocumentInfo.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/foo.Bar.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/full_record_v1.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/full_record_v2.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/logical-uuid.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/logical_types_with_multiple_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/MyResponse.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/regression_error_field_in_record.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/schema-location.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/schema-location-read.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/schema-location-write.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/SchemaBuilder.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/simple_record.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/TestRecordWithLogicalTypes.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/TestUnionRecord.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/union_and_fixed_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.0", AvroSchemasProvider().unionAndFixedFields()) - ), - ) - } - - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/avro/AvroSchemaFormatSchemaV1_11_1Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/avro/AvroSchemaFormatSchemaV1_11_1Test.kt deleted file mode 100644 index d972a95f..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/avro/AvroSchemaFormatSchemaV1_11_1Test.kt +++ /dev/null @@ -1,340 +0,0 @@ -package com.asyncapi.v3.schema.multiformat.avro - -import com.asyncapi.v3.schema.avro.AvroSchemasProvider -import com.asyncapi.v3.schema.multiformat.AvroFormatSchema -import org.junit.jupiter.api.extension.ExtensionContext -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.Arguments -import org.junit.jupiter.params.provider.ArgumentsProvider -import org.junit.jupiter.params.provider.ArgumentsSource -import java.util.stream.Stream - -abstract class AvroFormatSchemaV1_11_1Test: AvroFormatSchemaTest() { - - @ArgumentsSource(JsonFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseJson( - avroFormatSchemaToCompareWithFilePath: String, - avroFormatSchema: AvroFormatSchema - ) { - compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) - } - - @ArgumentsSource(YamlFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseYaml( - avroFormatSchemaToCompareWithFilePath: String, - avroFormatSchema: AvroFormatSchema - ) { - compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) - } - - class JsonFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/ApplicationEvent.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.1", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/DocumentInfo.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.1", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/foo.Bar.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.1", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/full_record_v1.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.1", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/full_record_v2.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.1", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/logical-uuid.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.1", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/logical_types_with_multiple_fields.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.1", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/MyResponse.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.1", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/regression_error_field_in_record.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.1", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/schema-location.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.1", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/schema-location-read.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.1", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/schema-location-write.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.1", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/SchemaBuilder.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.1", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/simple_record.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.1", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/TestRecordWithLogicalTypes.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.1", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.1", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/TestUnionRecord.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.1", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/union_and_fixed_fields.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.11.1", AvroSchemasProvider().unionAndFixedFields()) - ), - - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/ApplicationEvent.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/DocumentInfo.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/foo.Bar.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/full_record_v1.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/full_record_v2.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/logical-uuid.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/logical_types_with_multiple_fields.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/MyResponse.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/regression_error_field_in_record.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/schema-location.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/schema-location-read.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/schema-location-write.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/SchemaBuilder.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/simple_record.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/TestRecordWithLogicalTypes.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/TestRecordWithMapsAndArrays.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/TestUnionRecord.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/union_and_fixed_fields.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().unionAndFixedFields()) - ), - ) - } - - } - - class YamlFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/ApplicationEvent.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.1", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/DocumentInfo.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.1", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/foo.Bar.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.1", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/full_record_v1.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.1", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/full_record_v2.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.1", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/logical-uuid.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.1", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.1", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/MyResponse.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.1", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/regression_error_field_in_record.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.1", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/schema-location.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.1", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/schema-location-read.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.1", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/schema-location-write.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.1", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/SchemaBuilder.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.1", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/simple_record.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.1", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.1", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.1", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/TestUnionRecord.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.1", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/union_and_fixed_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.11.1", AvroSchemasProvider().unionAndFixedFields()) - ), - - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/ApplicationEvent.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/DocumentInfo.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/foo.Bar.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/full_record_v1.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/full_record_v2.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/logical-uuid.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/logical_types_with_multiple_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/MyResponse.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/regression_error_field_in_record.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/schema-location.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/schema-location-read.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/schema-location-write.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/SchemaBuilder.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/simple_record.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/TestRecordWithLogicalTypes.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/TestUnionRecord.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/union_and_fixed_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.11.1", AvroSchemasProvider().unionAndFixedFields()) - ), - ) - } - - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/avro/AvroSchemaFormatSchemaV1_9_0Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/avro/AvroSchemaFormatSchemaV1_9_0Test.kt deleted file mode 100644 index 9bd6c750..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/avro/AvroSchemaFormatSchemaV1_9_0Test.kt +++ /dev/null @@ -1,340 +0,0 @@ -package com.asyncapi.v3.schema.multiformat.avro - -import com.asyncapi.v3.schema.avro.AvroSchemasProvider -import com.asyncapi.v3.schema.multiformat.AvroFormatSchema -import org.junit.jupiter.api.extension.ExtensionContext -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.Arguments -import org.junit.jupiter.params.provider.ArgumentsProvider -import org.junit.jupiter.params.provider.ArgumentsSource -import java.util.stream.Stream - -abstract class AvroFormatSchemaV1_9_0Test: AvroFormatSchemaTest() { - - @ArgumentsSource(JsonFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseJson( - avroFormatSchemaToCompareWithFilePath: String, - avroFormatSchema: AvroFormatSchema - ) { - compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) - } - - @ArgumentsSource(YamlFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseYaml( - avroFormatSchemaToCompareWithFilePath: String, - avroFormatSchema: AvroFormatSchema - ) { - compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) - } - - class JsonFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/ApplicationEvent.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.0", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/DocumentInfo.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.0", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/foo.Bar.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.0", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/full_record_v1.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.0", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/full_record_v2.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.0", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/logical-uuid.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.0", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/logical_types_with_multiple_fields.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.0", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/MyResponse.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.0", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/regression_error_field_in_record.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.0", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/schema-location.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.0", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/schema-location-read.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.0", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/schema-location-write.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.0", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/SchemaBuilder.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.0", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/simple_record.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.0", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/TestRecordWithLogicalTypes.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.0", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.0", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/TestUnionRecord.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.0", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/union_and_fixed_fields.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.0", AvroSchemasProvider().unionAndFixedFields()) - ), - - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/ApplicationEvent.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/DocumentInfo.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/foo.Bar.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/full_record_v1.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/full_record_v2.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/logical-uuid.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/logical_types_with_multiple_fields.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/MyResponse.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/regression_error_field_in_record.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/schema-location.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/schema-location-read.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/schema-location-write.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/SchemaBuilder.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/simple_record.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/TestRecordWithLogicalTypes.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/TestRecordWithMapsAndArrays.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/TestUnionRecord.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/union_and_fixed_fields.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().unionAndFixedFields()) - ), - ) - } - - } - - class YamlFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/ApplicationEvent.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.0", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/DocumentInfo.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.0", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/foo.Bar.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.0", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/full_record_v1.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.0", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/full_record_v2.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.0", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/logical-uuid.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.0", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.0", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/MyResponse.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.0", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/regression_error_field_in_record.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.0", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/schema-location.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.0", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/schema-location-read.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.0", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/schema-location-write.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.0", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/SchemaBuilder.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.0", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/simple_record.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.0", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.0", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.0", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/TestUnionRecord.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.0", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/union_and_fixed_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.0", AvroSchemasProvider().unionAndFixedFields()) - ), - - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/ApplicationEvent.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/DocumentInfo.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/foo.Bar.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/full_record_v1.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/full_record_v2.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/logical-uuid.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/logical_types_with_multiple_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/MyResponse.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/regression_error_field_in_record.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/schema-location.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/schema-location-read.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/schema-location-write.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/SchemaBuilder.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/simple_record.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/TestRecordWithLogicalTypes.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/TestUnionRecord.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/union_and_fixed_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.0", AvroSchemasProvider().unionAndFixedFields()) - ), - ) - } - - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/avro/AvroSchemaFormatSchemaV1_9_1Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/avro/AvroSchemaFormatSchemaV1_9_1Test.kt deleted file mode 100644 index 5cbe22bc..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/avro/AvroSchemaFormatSchemaV1_9_1Test.kt +++ /dev/null @@ -1,340 +0,0 @@ -package com.asyncapi.v3.schema.multiformat.avro - -import com.asyncapi.v3.schema.avro.AvroSchemasProvider -import com.asyncapi.v3.schema.multiformat.AvroFormatSchema -import org.junit.jupiter.api.extension.ExtensionContext -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.Arguments -import org.junit.jupiter.params.provider.ArgumentsProvider -import org.junit.jupiter.params.provider.ArgumentsSource -import java.util.stream.Stream - -abstract class AvroFormatSchemaV1_9_1Test: AvroFormatSchemaTest() { - - @ArgumentsSource(JsonFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseJson( - avroFormatSchemaToCompareWithFilePath: String, - avroFormatSchema: AvroFormatSchema - ) { - compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) - } - - @ArgumentsSource(YamlFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseYaml( - avroFormatSchemaToCompareWithFilePath: String, - avroFormatSchema: AvroFormatSchema - ) { - compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) - } - - class JsonFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/ApplicationEvent.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.1", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/DocumentInfo.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.1", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/foo.Bar.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.1", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/full_record_v1.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.1", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/full_record_v2.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.1", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/logical-uuid.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.1", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/logical_types_with_multiple_fields.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.1", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/MyResponse.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.1", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/regression_error_field_in_record.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.1", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/schema-location.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.1", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/schema-location-read.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.1", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/schema-location-write.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.1", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/SchemaBuilder.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.1", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/simple_record.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.1", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/TestRecordWithLogicalTypes.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.1", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.1", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/TestUnionRecord.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.1", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/union_and_fixed_fields.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.1", AvroSchemasProvider().unionAndFixedFields()) - ), - - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/ApplicationEvent.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/DocumentInfo.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/foo.Bar.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/full_record_v1.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/full_record_v2.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/logical-uuid.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/logical_types_with_multiple_fields.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/MyResponse.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/regression_error_field_in_record.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/schema-location.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/schema-location-read.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/schema-location-write.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/SchemaBuilder.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/simple_record.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/TestRecordWithLogicalTypes.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/TestRecordWithMapsAndArrays.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/TestUnionRecord.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/union_and_fixed_fields.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().unionAndFixedFields()) - ), - ) - } - - } - - class YamlFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/ApplicationEvent.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.1", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/DocumentInfo.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.1", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/foo.Bar.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.1", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/full_record_v1.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.1", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/full_record_v2.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.1", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/logical-uuid.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.1", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.1", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/MyResponse.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.1", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/regression_error_field_in_record.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.1", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/schema-location.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.1", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/schema-location-read.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.1", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/schema-location-write.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.1", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/SchemaBuilder.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.1", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/simple_record.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.1", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.1", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.1", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/TestUnionRecord.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.1", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/union_and_fixed_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.1", AvroSchemasProvider().unionAndFixedFields()) - ), - - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/ApplicationEvent.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/DocumentInfo.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/foo.Bar.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/full_record_v1.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/full_record_v2.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/logical-uuid.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/logical_types_with_multiple_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/MyResponse.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/regression_error_field_in_record.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/schema-location.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/schema-location-read.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/schema-location-write.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/SchemaBuilder.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/simple_record.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/TestRecordWithLogicalTypes.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/TestUnionRecord.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/union_and_fixed_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.1", AvroSchemasProvider().unionAndFixedFields()) - ), - ) - } - - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/avro/AvroSchemaFormatSchemaV1_9_2Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/avro/AvroSchemaFormatSchemaV1_9_2Test.kt deleted file mode 100644 index 9d8e448b..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/avro/AvroSchemaFormatSchemaV1_9_2Test.kt +++ /dev/null @@ -1,340 +0,0 @@ -package com.asyncapi.v3.schema.multiformat.avro - -import com.asyncapi.v3.schema.avro.AvroSchemasProvider -import com.asyncapi.v3.schema.multiformat.AvroFormatSchema -import org.junit.jupiter.api.extension.ExtensionContext -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.Arguments -import org.junit.jupiter.params.provider.ArgumentsProvider -import org.junit.jupiter.params.provider.ArgumentsSource -import java.util.stream.Stream - -abstract class AvroFormatSchemaV1_9_2Test: AvroFormatSchemaTest() { - - @ArgumentsSource(JsonFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseJson( - avroFormatSchemaToCompareWithFilePath: String, - avroFormatSchema: AvroFormatSchema - ) { - compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) - } - - @ArgumentsSource(YamlFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseYaml( - avroFormatSchemaToCompareWithFilePath: String, - avroFormatSchema: AvroFormatSchema - ) { - compareSchemas(avroFormatSchemaToCompareWithFilePath, avroFormatSchema) - } - - class JsonFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/ApplicationEvent.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.2", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/DocumentInfo.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.2", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/foo.Bar.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.2", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/full_record_v1.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.2", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/full_record_v2.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.2", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/logical-uuid.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.2", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/logical_types_with_multiple_fields.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.2", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/MyResponse.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.2", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/regression_error_field_in_record.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.2", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/schema-location.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.2", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/schema-location-read.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.2", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/schema-location-write.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.2", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/SchemaBuilder.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.2", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/simple_record.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.2", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/TestRecordWithLogicalTypes.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.2", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.2", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/TestUnionRecord.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.2", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/union_and_fixed_fields.json", - AvroFormatSchema("application/vnd.apache.avro+json;version=1.9.2", AvroSchemasProvider().unionAndFixedFields()) - ), - - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/ApplicationEvent.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/DocumentInfo.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/foo.Bar.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/full_record_v1.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/full_record_v2.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/logical-uuid.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/logical_types_with_multiple_fields.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/MyResponse.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/regression_error_field_in_record.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/schema-location.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/schema-location-read.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/schema-location-write.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/SchemaBuilder.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/simple_record.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/TestRecordWithLogicalTypes.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/TestRecordWithMapsAndArrays.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/TestUnionRecord.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/union_and_fixed_fields.json", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().unionAndFixedFields()) - ), - ) - } - - } - - class YamlFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/ApplicationEvent.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.2", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/DocumentInfo.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.2", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/foo.Bar.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.2", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/full_record_v1.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.2", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/full_record_v2.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.2", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/logical-uuid.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.2", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.2", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/MyResponse.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.2", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/regression_error_field_in_record.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.2", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/schema-location.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.2", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/schema-location-read.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.2", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/schema-location-write.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.2", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/SchemaBuilder.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.2", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/simple_record.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.2", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.2", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.2", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/TestUnionRecord.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.2", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/union_and_fixed_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro+yaml;version=1.9.2", AvroSchemasProvider().unionAndFixedFields()) - ), - - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/ApplicationEvent.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().applicationEventTest()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/DocumentInfo.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().documentInfo()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/foo.Bar.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().fooBar()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/full_record_v1.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().fullRecordV1()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/full_record_v2.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().fullRecordV2()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/logical-uuid.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().logicalUUID()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/logical_types_with_multiple_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().logicalTypesWithMultipleFields()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/MyResponse.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().myResponse()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/regression_error_field_in_record.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().regressionErrorFieldInRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/schema-location.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().schemaLocation()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/schema-location-read.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().schemaLocationRead()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/schema-location-write.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().schemaLocationWrite()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/SchemaBuilder.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().schemaBuilder()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/simple_record.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().simpleRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/TestRecordWithLogicalTypes.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().testRecordWithLogicalTypes()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().testRecordWithMapsAndArrays()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/TestUnionRecord.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().testUnionRecord()) - ), - Arguments.of( - "/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/union_and_fixed_fields.yaml", - AvroFormatSchema("application/vnd.apache.avro;version=1.9.2", AvroSchemasProvider().unionAndFixedFields()) - ), - ) - } - - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/json/JsonFormatSchemaTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/json/JsonFormatSchemaTest.kt deleted file mode 100644 index b8d5f9ff..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/json/JsonFormatSchemaTest.kt +++ /dev/null @@ -1,126 +0,0 @@ -package com.asyncapi.v3.schema.multiformat.json - -import com.asyncapi.v3.ClasspathUtils -import com.asyncapi.v3.schema.json.* -import com.asyncapi.v3.schema.multiformat.JsonFormatSchema -import com.fasterxml.jackson.annotation.JsonInclude -import com.fasterxml.jackson.databind.ObjectMapper -import com.fasterxml.jackson.dataformat.yaml.YAMLFactory -import org.junit.jupiter.api.Assertions -import org.junit.jupiter.api.extension.ExtensionContext -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.Arguments -import org.junit.jupiter.params.provider.ArgumentsProvider -import org.junit.jupiter.params.provider.ArgumentsSource -import java.util.stream.Stream - -abstract class JsonFormatSchemaTest { - - private val objectMapper: ObjectMapper = ObjectMapper(YAMLFactory()) - .setSerializationInclusion(JsonInclude.Include.NON_NULL) - .findAndRegisterModules() - - fun compareSchemas( - jsonFormatSchemaToCompareWithFilePath: String, - schemaToCheck: JsonFormatSchema - ) { - val schemaAsJson = ClasspathUtils.readAsString(jsonFormatSchemaToCompareWithFilePath) - val schema = objectMapper.readValue(schemaAsJson, JsonFormatSchema::class.java) - - Assertions.assertEquals(schema, schemaToCheck) - } - - @ArgumentsSource(Json::class) - @ParameterizedTest(name = "Read: {0}") - fun parseJson( - jsonFormatSchemaToCompareWithFilePath: String, - jsonFormatSchema: JsonFormatSchema - ) { - compareSchemas(jsonFormatSchemaToCompareWithFilePath, jsonFormatSchema) - - } - - @ArgumentsSource(Yaml::class) - @ParameterizedTest(name = "Read: {0}") - fun parseYaml( - jsonFormatSchemaToCompareWithFilePath: String, - jsonFormatSchema: JsonFormatSchema - ) { - compareSchemas(jsonFormatSchemaToCompareWithFilePath, jsonFormatSchema) - } - - class Json: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/json/schema+json/arrays.schema.json", - JsonFormatSchema(ArraysSchemaTest().jsonSchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/json/schema+json/complex-object.schema.json", - JsonFormatSchema(ComplexObjectTest().jsonSchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/json/schema+json/conditional-validation-if-else.schema.json", - JsonFormatSchema(ConditionalValidationIfElse().jsonSchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/json/schema+json/draft-07-core-schema-meta-schema.json", - JsonFormatSchema(Draft07CoreSchemaMetaSchemaTest().jsonSchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/json/schema+json/enumerated-values.schema.json", - JsonFormatSchema(EnumeratedValuesTest().jsonSchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/json/schema+json/person.schema.json", - JsonFormatSchema(PersonTest().jsonSchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/json/schema+json/regex-pattern.schema.json", - JsonFormatSchema(RegexPatternTest().jsonSchema()) - ) - ) - } - - } - - class Yaml: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of( - "/json/v3/schema/multiformat/json/schema+yaml/arrays.schema.yaml", - JsonFormatSchema("application/schema+yaml;version=draft-07", ArraysSchemaTest().jsonSchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/json/schema+yaml/complex-object.schema.yaml", - JsonFormatSchema("application/schema+yaml;version=draft-07", ComplexObjectTest().jsonSchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/json/schema+yaml/conditional-validation-if-else.schema.yaml", - JsonFormatSchema("application/schema+yaml;version=draft-07", ConditionalValidationIfElse().jsonSchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/json/schema+yaml/draft-07-core-schema-meta-schema.yaml", - JsonFormatSchema("application/schema+yaml;version=draft-07", Draft07CoreSchemaMetaSchemaTest().jsonSchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/json/schema+yaml/enumerated-values.schema.yaml", - JsonFormatSchema("application/schema+yaml;version=draft-07", EnumeratedValuesTest().jsonSchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/json/schema+yaml/person.schema.yaml", - JsonFormatSchema("application/schema+yaml;version=draft-07", PersonTest().jsonSchema()) - ), - Arguments.of( - "/json/v3/schema/multiformat/json/schema+yaml/regex-pattern.schema.yaml", - JsonFormatSchema("application/schema+yaml;version=draft-07", RegexPatternTest().jsonSchema()) - ) - ) - } - - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/openapi/OpenAPIFormatSchemaV3_0_0Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/openapi/OpenAPIFormatSchemaV3_0_0Test.kt deleted file mode 100644 index 1643aae4..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/openapi/OpenAPIFormatSchemaV3_0_0Test.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.asyncapi.v3.schema.multiformat.openapi - -import com.asyncapi.v3.schema.multiformat.OpenAPIFormatSchema -import com.asyncapi.v3.schema.openapi.v3._0_0.SchemaTest -import org.junit.jupiter.api.extension.ExtensionContext -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.Arguments -import org.junit.jupiter.params.provider.ArgumentsProvider -import org.junit.jupiter.params.provider.ArgumentsSource -import java.util.stream.Stream - -abstract class OpenAPIFormatSchemaV3_0_0Test: OpenAPIFormatSchemaTest() { - - @ArgumentsSource(JsonFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseJson( - openAPIFormatSchemaToCompareWithFilePath: String, - openAPIFormatSchema: OpenAPIFormatSchema - ) { - compareSchemas(openAPIFormatSchemaToCompareWithFilePath, openAPIFormatSchema) - } - - @ArgumentsSource(YamlFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseYaml( - openAPIFormatSchemaToCompareWithFilePath: String, - openAPIFormatSchema: OpenAPIFormatSchema - ) { - compareSchemas(openAPIFormatSchemaToCompareWithFilePath, openAPIFormatSchema) - } - - class JsonFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of("/json/v3/schema/multiformat/openapi/3.0.0/vnd.oai.openapi/schema.json", - OpenAPIFormatSchema("application/vnd.oai.openapi;version=3.0.0", SchemaTest().openAPISchema()) - ), - Arguments.of("/json/v3/schema/multiformat/openapi/3.0.0/vnd.oai.openapi+json/schema.json", - OpenAPIFormatSchema("application/vnd.oai.openapi+json;version=3.0.0", SchemaTest().openAPISchema()) - ) - ) - } - - } - - class YamlFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of("/json/v3/schema/multiformat/openapi/3.0.0/vnd.oai.openapi/schema.yaml", - OpenAPIFormatSchema("application/vnd.oai.openapi;version=3.0.0", SchemaTest().openAPISchema()) - ), - Arguments.of("/json/v3/schema/multiformat/openapi/3.0.0/vnd.oai.openapi+yaml/schema.yaml", - OpenAPIFormatSchema("application/vnd.oai.openapi+yaml;version=3.0.0", SchemaTest().openAPISchema()) - ) - ) - } - - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/openapi/OpenAPIFormatSchemaV3_0_1Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/openapi/OpenAPIFormatSchemaV3_0_1Test.kt deleted file mode 100644 index f4de776d..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/openapi/OpenAPIFormatSchemaV3_0_1Test.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.asyncapi.v3.schema.multiformat.openapi - -import com.asyncapi.v3.schema.multiformat.OpenAPIFormatSchema -import com.asyncapi.v3.schema.openapi.v3._0_0.SchemaTest -import org.junit.jupiter.api.extension.ExtensionContext -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.Arguments -import org.junit.jupiter.params.provider.ArgumentsProvider -import org.junit.jupiter.params.provider.ArgumentsSource -import java.util.stream.Stream - -abstract class OpenAPIFormatSchemaV3_0_1Test: OpenAPIFormatSchemaTest() { - - @ArgumentsSource(JsonFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseJson( - openAPIFormatSchemaToCompareWithFilePath: String, - openAPIFormatSchema: OpenAPIFormatSchema - ) { - compareSchemas(openAPIFormatSchemaToCompareWithFilePath, openAPIFormatSchema) - } - - @ArgumentsSource(YamlFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseYaml( - openAPIFormatSchemaToCompareWithFilePath: String, - openAPIFormatSchema: OpenAPIFormatSchema - ) { - compareSchemas(openAPIFormatSchemaToCompareWithFilePath, openAPIFormatSchema) - } - - class JsonFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of("/json/v3/schema/multiformat/openapi/3.0.1/vnd.oai.openapi/schema.json", - OpenAPIFormatSchema("application/vnd.oai.openapi;version=3.0.1", SchemaTest().openAPISchema()) - ), - Arguments.of("/json/v3/schema/multiformat/openapi/3.0.1/vnd.oai.openapi+json/schema.json", - OpenAPIFormatSchema("application/vnd.oai.openapi+json;version=3.0.1", SchemaTest().openAPISchema()) - ) - ) - } - - } - - class YamlFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of("/json/v3/schema/multiformat/openapi/3.0.1/vnd.oai.openapi/schema.yaml", - OpenAPIFormatSchema("application/vnd.oai.openapi;version=3.0.1", SchemaTest().openAPISchema()) - ), - Arguments.of("/json/v3/schema/multiformat/openapi/3.0.1/vnd.oai.openapi+yaml/schema.yaml", - OpenAPIFormatSchema("application/vnd.oai.openapi+yaml;version=3.0.1", SchemaTest().openAPISchema()) - ) - ) - } - - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/openapi/OpenAPIFormatSchemaV3_0_2Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/openapi/OpenAPIFormatSchemaV3_0_2Test.kt deleted file mode 100644 index 8bab13d0..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/openapi/OpenAPIFormatSchemaV3_0_2Test.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.asyncapi.v3.schema.multiformat.openapi - -import com.asyncapi.v3.schema.multiformat.OpenAPIFormatSchema -import com.asyncapi.v3.schema.openapi.v3._0_0.SchemaTest -import org.junit.jupiter.api.extension.ExtensionContext -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.Arguments -import org.junit.jupiter.params.provider.ArgumentsProvider -import org.junit.jupiter.params.provider.ArgumentsSource -import java.util.stream.Stream - -abstract class OpenAPIFormatSchemaV3_0_2Test: OpenAPIFormatSchemaTest() { - - @ArgumentsSource(JsonFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseJson( - openAPIFormatSchemaToCompareWithFilePath: String, - openAPIFormatSchema: OpenAPIFormatSchema - ) { - compareSchemas(openAPIFormatSchemaToCompareWithFilePath, openAPIFormatSchema) - } - - @ArgumentsSource(YamlFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseYaml( - openAPIFormatSchemaToCompareWithFilePath: String, - openAPIFormatSchema: OpenAPIFormatSchema - ) { - compareSchemas(openAPIFormatSchemaToCompareWithFilePath, openAPIFormatSchema) - } - - class JsonFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of("/json/v3/schema/multiformat/openapi/3.0.2/vnd.oai.openapi/schema.json", - OpenAPIFormatSchema("application/vnd.oai.openapi;version=3.0.2", SchemaTest().openAPISchema()) - ), - Arguments.of("/json/v3/schema/multiformat/openapi/3.0.2/vnd.oai.openapi+json/schema.json", - OpenAPIFormatSchema("application/vnd.oai.openapi+json;version=3.0.2", SchemaTest().openAPISchema()) - ) - ) - } - - } - - class YamlFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of("/json/v3/schema/multiformat/openapi/3.0.2/vnd.oai.openapi/schema.yaml", - OpenAPIFormatSchema("application/vnd.oai.openapi;version=3.0.2", SchemaTest().openAPISchema()) - ), - Arguments.of("/json/v3/schema/multiformat/openapi/3.0.2/vnd.oai.openapi+yaml/schema.yaml", - OpenAPIFormatSchema("application/vnd.oai.openapi+yaml;version=3.0.2", SchemaTest().openAPISchema()) - ) - ) - } - - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/openapi/OpenAPIFormatSchemaV3_0_3Test.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/openapi/OpenAPIFormatSchemaV3_0_3Test.kt deleted file mode 100644 index b432763d..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/multiformat/openapi/OpenAPIFormatSchemaV3_0_3Test.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.asyncapi.v3.schema.multiformat.openapi - -import com.asyncapi.v3.schema.multiformat.OpenAPIFormatSchema -import com.asyncapi.v3.schema.openapi.v3._0_0.SchemaTest -import org.junit.jupiter.api.extension.ExtensionContext -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.Arguments -import org.junit.jupiter.params.provider.ArgumentsProvider -import org.junit.jupiter.params.provider.ArgumentsSource -import java.util.stream.Stream - -abstract class OpenAPIFormatSchemaV3_0_3Test: OpenAPIFormatSchemaTest() { - - @ArgumentsSource(JsonFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseJson( - openAPIFormatSchemaToCompareWithFilePath: String, - openAPIFormatSchema: OpenAPIFormatSchema - ) { - compareSchemas(openAPIFormatSchemaToCompareWithFilePath, openAPIFormatSchema) - } - - @ArgumentsSource(YamlFormat::class) - @ParameterizedTest(name = "Read: {0}") - override fun parseYaml( - openAPIFormatSchemaToCompareWithFilePath: String, - openAPIFormatSchema: OpenAPIFormatSchema - ) { - compareSchemas(openAPIFormatSchemaToCompareWithFilePath, openAPIFormatSchema) - } - - class JsonFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of("/json/v3/schema/multiformat/openapi/3.0.3/vnd.oai.openapi/schema.json", - OpenAPIFormatSchema("application/vnd.oai.openapi;version=3.0.3", SchemaTest().openAPISchema()) - ), - Arguments.of("/json/v3/schema/multiformat/openapi/3.0.3/vnd.oai.openapi+json/schema.json", - OpenAPIFormatSchema("application/vnd.oai.openapi+json;version=3.0.3", SchemaTest().openAPISchema()) - ) - ) - } - - } - - class YamlFormat: ArgumentsProvider { - - override fun provideArguments(context: ExtensionContext?): Stream { - return Stream.of( - Arguments.of("/json/v3/schema/multiformat/openapi/3.0.3/vnd.oai.openapi/schema.yaml", - OpenAPIFormatSchema("application/vnd.oai.openapi;version=3.0.3", SchemaTest().openAPISchema()) - ), - Arguments.of("/json/v3/schema/multiformat/openapi/3.0.3/vnd.oai.openapi+yaml/schema.yaml", - OpenAPIFormatSchema("application/vnd.oai.openapi+yaml;version=3.0.3", SchemaTest().openAPISchema()) - ) - ) - } - - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/openapi/v3/_0_0/properties/ExampleEnumDefaultNullTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/openapi/v3/_0_0/properties/ExampleEnumDefaultNullTest.kt deleted file mode 100644 index 805357c8..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/schema/openapi/v3/_0_0/properties/ExampleEnumDefaultNullTest.kt +++ /dev/null @@ -1,18 +0,0 @@ -package com.asyncapi.v3.schema.openapi.v3._0_0.properties - -import com.asyncapi.v3.schema.SchemaProvider -import com.asyncapi.v3.schema.openapi.v3._0_0.OpenAPISchema - -class ExampleEnumDefaultNullTest: SchemaProvider { - - private val value = null - - override fun openAPISchema(): OpenAPISchema { - return OpenAPISchema.builder() - .example(value) - .enumValue(value) - .defaultValue(value) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/ApiKeySecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/ApiKeySecuritySchemeTest.kt deleted file mode 100644 index fc7aa22d..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/ApiKeySecuritySchemeTest.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v3.security_scheme - -import com.asyncapi.v3.SerDeTest - -/** - * @author Pavel Bodiachevskii - */ -class ApiKeySecuritySchemeTest: SerDeTest() { - - override fun objectClass() = ApiKeySecurityScheme::class.java - - override fun baseObjectJson() = "/json/v3/security_scheme/apiKey.json" - - override fun extendedObjectJson() = "/json/v3/security_scheme/apiKey - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/security_scheme/apiKey - wrongly extended.json" - - override fun build(): SecurityScheme { - return ApiKeySecurityScheme.apiKeyBuilder() - .description("apiKey") - .`in`(ApiKeySecurityScheme.ApiKeyLocation.USER) - .build() - } - -} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/AsymmetricEncryptionSecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/AsymmetricEncryptionSecuritySchemeTest.kt deleted file mode 100644 index ff6e6cd1..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/AsymmetricEncryptionSecuritySchemeTest.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v3.security_scheme - -import com.asyncapi.v3.SerDeTest - -/** - * @author Pavel Bodiachevskii - */ -class AsymmetricEncryptionSecuritySchemeTest: SerDeTest() { - - override fun objectClass() = SecurityScheme::class.java - - override fun baseObjectJson() = "/json/v3/security_scheme/asymmetricEncryption.json" - - override fun extendedObjectJson() = "/json/v3/security_scheme/asymmetricEncryption - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/security_scheme/asymmetricEncryption - wrongly extended.json" - - override fun build(): SecurityScheme { - return SecurityScheme.builder() - .type(SecurityScheme.Type.ASYMMETRIC_ENCRYPTION) - .description("asymmetricEncryption") - .build() - } - -} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/GssapiSecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/GssapiSecuritySchemeTest.kt deleted file mode 100644 index f0f20f3c..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/GssapiSecuritySchemeTest.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v3.security_scheme - -import com.asyncapi.v3.SerDeTest - -/** - * @author Pavel Bodiachevskii - */ -class GssapiSecuritySchemeTest: SerDeTest() { - - override fun objectClass() = SecurityScheme::class.java - - override fun baseObjectJson() = "/json/v3/security_scheme/gssapi.json" - - override fun extendedObjectJson() = "/json/v3/security_scheme/gssapi - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/security_scheme/gssapi - wrongly extended.json" - - override fun build(): SecurityScheme { - return SecurityScheme.builder() - .type(SecurityScheme.Type.GSSAPI) - .description("gssapi") - .build() - } - -} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/OpenIdConnectSecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/OpenIdConnectSecuritySchemeTest.kt deleted file mode 100644 index baf2ff56..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/OpenIdConnectSecuritySchemeTest.kt +++ /dev/null @@ -1,26 +0,0 @@ -package com.asyncapi.v3.security_scheme - -import com.asyncapi.v3.SerDeTest - -/** - * @author Pavel Bodiachevskii - */ -class OpenIdConnectSecuritySchemeTest: SerDeTest() { - - override fun objectClass() = OpenIdConnectSecurityScheme::class.java - - override fun baseObjectJson() = "/json/v3/security_scheme/openIdConnect.json" - - override fun extendedObjectJson() = "/json/v3/security_scheme/openIdConnect - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/security_scheme/openIdConnect - wrongly extended.json" - - override fun build(): SecurityScheme { - return OpenIdConnectSecurityScheme.openIdBuilder() - .description("openIdConnect") - .openIdConnectUrl("https://server.com/.well-known/openid-configuration") - .scopes(listOf("write:pets", "read:pets")) - .build() - } - -} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/PlainSecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/PlainSecuritySchemeTest.kt deleted file mode 100644 index 9eca4fd4..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/PlainSecuritySchemeTest.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v3.security_scheme - -import com.asyncapi.v3.SerDeTest - -/** - * @author Pavel Bodiachevskii - */ -class PlainSecuritySchemeTest: SerDeTest() { - - override fun objectClass() = SecurityScheme::class.java - - override fun baseObjectJson() = "/json/v3/security_scheme/plain.json" - - override fun extendedObjectJson() = "/json/v3/security_scheme/plain - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/security_scheme/plain - wrongly extended.json" - - override fun build(): SecurityScheme { - return SecurityScheme.builder() - .type(SecurityScheme.Type.PLAIN) - .description("plain") - .build() - } - -} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/ScramSha256SecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/ScramSha256SecuritySchemeTest.kt deleted file mode 100644 index 501f23f3..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/ScramSha256SecuritySchemeTest.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v3.security_scheme - -import com.asyncapi.v3.SerDeTest - -/** - * @author Pavel Bodiachevskii - */ -class ScramSha256SecuritySchemeTest: SerDeTest() { - - override fun objectClass() = SecurityScheme::class.java - - override fun baseObjectJson() = "/json/v3/security_scheme/scramSha256.json" - - override fun extendedObjectJson() = "/json/v3/security_scheme/scramSha256 - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/security_scheme/scramSha256 - wrongly extended.json" - - override fun build(): SecurityScheme { - return SecurityScheme.builder() - .type(SecurityScheme.Type.SCRAM_SHA256) - .description("scramSha256") - .build() - } - -} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/ScramSha512SecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/ScramSha512SecuritySchemeTest.kt deleted file mode 100644 index 1e26e677..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/ScramSha512SecuritySchemeTest.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v3.security_scheme - -import com.asyncapi.v3.SerDeTest - -/** - * @author Pavel Bodiachevskii - */ -class ScramSha512SecuritySchemeTest: SerDeTest() { - - override fun objectClass() = SecurityScheme::class.java - - override fun baseObjectJson() = "/json/v3/security_scheme/scramSha512.json" - - override fun extendedObjectJson() = "/json/v3/security_scheme/scramSha512 - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/security_scheme/scramSha512 - wrongly extended.json" - - override fun build(): SecurityScheme { - return SecurityScheme.builder() - .type(SecurityScheme.Type.SCRAM_SHA512) - .description("scramSha512") - .build() - } - -} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/SymmetricEncryptionSecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/SymmetricEncryptionSecuritySchemeTest.kt deleted file mode 100644 index 4f6057da..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/SymmetricEncryptionSecuritySchemeTest.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v3.security_scheme - -import com.asyncapi.v3.SerDeTest - -/** - * @author Pavel Bodiachevskii - */ -class SymmetricEncryptionSecuritySchemeTest: SerDeTest() { - - override fun objectClass() = SecurityScheme::class.java - - override fun baseObjectJson() = "/json/v3/security_scheme/symmetricEncryption.json" - - override fun extendedObjectJson() = "/json/v3/security_scheme/symmetricEncryption - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/security_scheme/symmetricEncryption - wrongly extended.json" - - override fun build(): SecurityScheme { - return SecurityScheme.builder() - .type(SecurityScheme.Type.SYMMETRIC_ENCRYPTION) - .description("symmetricEncryption") - .build() - } - -} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/UserPasswordSecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/UserPasswordSecuritySchemeTest.kt deleted file mode 100644 index c7aa3980..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/UserPasswordSecuritySchemeTest.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v3.security_scheme - -import com.asyncapi.v3.SerDeTest - -/** - * @author Pavel Bodiachevskii - */ -class UserPasswordSecuritySchemeTest: SerDeTest() { - - override fun objectClass() = SecurityScheme::class.java - - override fun baseObjectJson() = "/json/v3/security_scheme/userPassword.json" - - override fun extendedObjectJson() = "/json/v3/security_scheme/userPassword - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/security_scheme/userPassword - wrongly extended.json" - - override fun build(): SecurityScheme { - return SecurityScheme.builder() - .type(SecurityScheme.Type.USER_PASSWORD) - .description("userPassword") - .build() - } - -} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/X509SecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/X509SecuritySchemeTest.kt deleted file mode 100644 index 849ce42a..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/X509SecuritySchemeTest.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v3.security_scheme - -import com.asyncapi.v3.SerDeTest - -/** - * @author Pavel Bodiachevskii - */ -class X509SecuritySchemeTest: SerDeTest() { - - override fun objectClass() = SecurityScheme::class.java - - override fun baseObjectJson() = "/json/v3/security_scheme/X509.json" - - override fun extendedObjectJson() = "/json/v3/security_scheme/X509 - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/security_scheme/X509 - wrongly extended.json" - - override fun build(): SecurityScheme { - return SecurityScheme.builder() - .type(SecurityScheme.Type.X509) - .description("X509") - .build() - } - -} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/http/HttpApiKeySecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/http/HttpApiKeySecuritySchemeTest.kt deleted file mode 100644 index df47744d..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/http/HttpApiKeySecuritySchemeTest.kt +++ /dev/null @@ -1,23 +0,0 @@ -package com.asyncapi.v3.security_scheme.http - -import com.asyncapi.v3.SerDeTest - -class HttpApiKeySecuritySchemeTest: SerDeTest() { - - override fun objectClass() = HttpApiKeySecurityScheme::class.java - - override fun baseObjectJson() = "/json/v3/security_scheme/http/httpApiKey.json" - - override fun extendedObjectJson() = "/json/v3/security_scheme/http/httpApiKey - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/security_scheme/http/httpApiKey - wrongly extended.json" - - override fun build(): HttpApiKeySecurityScheme { - return HttpApiKeySecurityScheme.httpApiKeyBuilder() - .description("httpApiKey") - .name("api_key") - .`in`(HttpApiKeySecurityScheme.ApiKeyLocation.HEADER) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/http/HttpSecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/http/HttpSecuritySchemeTest.kt deleted file mode 100644 index c06ad616..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/http/HttpSecuritySchemeTest.kt +++ /dev/null @@ -1,42 +0,0 @@ -package com.asyncapi.v3.security_scheme.http - -import com.asyncapi.v3.SerDeTest - -class HttpSecuritySchemeBasicTest: SerDeTest() { - - override fun objectClass() = HttpSecurityScheme::class.java - - override fun baseObjectJson() = "/json/v3/security_scheme/http/httpBasic.json" - - override fun extendedObjectJson() = "/json/v3/security_scheme/http/httpBasic - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/security_scheme/http/httpBasic - wrongly extended.json" - - override fun build(): HttpSecurityScheme { - return HttpSecurityScheme.httpBuilder() - .description("http") - .scheme("basic") - .build() - } - -} - -class HttpSecuritySchemeBearerTest: SerDeTest() { - - override fun objectClass() = HttpSecurityScheme::class.java - - override fun baseObjectJson() = "/json/v3/security_scheme/http/httpBearer.json" - - override fun extendedObjectJson() = "/json/v3/security_scheme/http/httpBearer - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/security_scheme/http/httpBearer - wrongly extended.json" - - override fun build(): HttpSecurityScheme { - return HttpSecurityScheme.httpBuilder() - .description("http") - .scheme("bearer") - .bearerFormat("JWT") - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/oauth2/OAuth2SecuritySchemeTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/oauth2/OAuth2SecuritySchemeTest.kt deleted file mode 100644 index 19d6840c..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/oauth2/OAuth2SecuritySchemeTest.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.asyncapi.v3.security_scheme.oauth2 - -import com.asyncapi.v3.SerDeTest -import com.asyncapi.v3.security_scheme.SecurityScheme - -/** - * @author Pavel Bodiachevskii - */ -class OAuth2SecuritySchemeTest: SerDeTest() { - - override fun objectClass() = OAuth2SecurityScheme::class.java - - override fun baseObjectJson() = "/json/v3/security_scheme/oauth2/oauth2.json" - - override fun extendedObjectJson() = "/json/v3/security_scheme/oauth2/oauth2 - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/security_scheme/oauth2/oauth2 - wrongly extended.json" - - override fun build(): SecurityScheme { - return OAuth2SecurityScheme.oauth2Builder() - .description("oauth2") - .flows(OAuthFlowTest().build()) - .scopes(listOf("write:pets", "read:pets")) - .build() - } - -} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/oauth2/OAuthFlowTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/oauth2/OAuthFlowTest.kt deleted file mode 100644 index 1a943fa8..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/oauth2/OAuthFlowTest.kt +++ /dev/null @@ -1,28 +0,0 @@ -package com.asyncapi.v3.security_scheme.oauth2 - -import com.asyncapi.v3.SerDeTest -import com.asyncapi.v3.security_scheme.oauth2.flow.* - -/** - * @author Pavel Bodiachevskii - */ -class OAuthFlowTest: SerDeTest() { - - override fun objectClass() = OAuthFlows::class.java - - override fun baseObjectJson() = "/json/v3/security_scheme/oauth2/oauthFlows.json" - - override fun extendedObjectJson() = "/json/v3/security_scheme/oauth2/oauthFlows - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/security_scheme/oauth2/oauthFlows - wrongly extended.json" - - override fun build(): OAuthFlows { - return OAuthFlows.builder() - .authorizationCode(AuthorizationCodeOAuthFlowTest().build()) - .clientCredentials(ClientCredentialsOAuthFlowTest().build()) - .implicit(ImplicitOAuthFlowTest().build()) - .password(PasswordOAuthFlowTest().build()) - .build() - } - -} diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/oauth2/flow/AuthorizationCodeOAuthFlowTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/oauth2/flow/AuthorizationCodeOAuthFlowTest.kt deleted file mode 100644 index 7979a95a..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/oauth2/flow/AuthorizationCodeOAuthFlowTest.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.asyncapi.v3.security_scheme.oauth2.flow - -import com.asyncapi.v3.SerDeTest - -class AuthorizationCodeOAuthFlowTest: SerDeTest() { - - override fun objectClass() = AuthorizationCodeOAuthFlow::class.java - - override fun baseObjectJson() = "/json/v3/security_scheme/oauth2/flow/authorizationCodeOAuthFlow.json" - - override fun extendedObjectJson() = "/json/v3/security_scheme/oauth2/flow/authorizationCodeOAuthFlow - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/security_scheme/oauth2/flow/authorizationCodeOAuthFlow - wrongly extended.json" - - override fun build(): AuthorizationCodeOAuthFlow { - return AuthorizationCodeOAuthFlow.authorizationCodeBuilder() - .authorizationUrl("https://example.com/api/oauth/dialog") - .tokenUrl("https://example.com/api/oauth/token") - .refreshUrl("https://example.com/api/oauth/refresh") - .availableScopes(mapOf( - Pair("write:pets", "modify pets in your account"), - Pair("read:pets", "read your pets") - )) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/oauth2/flow/ClientCredentialsOAuthFlowTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/oauth2/flow/ClientCredentialsOAuthFlowTest.kt deleted file mode 100644 index b8b00716..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/oauth2/flow/ClientCredentialsOAuthFlowTest.kt +++ /dev/null @@ -1,26 +0,0 @@ -package com.asyncapi.v3.security_scheme.oauth2.flow - -import com.asyncapi.v3.SerDeTest - -class ClientCredentialsOAuthFlowTest: SerDeTest() { - - override fun objectClass() = ClientCredentialsOAuthFlow::class.java - - override fun baseObjectJson() = "/json/v3/security_scheme/oauth2/flow/clientCredentialsOAuthFlow.json" - - override fun extendedObjectJson() = "/json/v3/security_scheme/oauth2/flow/clientCredentialsOAuthFlow - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/security_scheme/oauth2/flow/clientCredentialsOAuthFlow - wrongly extended.json" - - override fun build(): ClientCredentialsOAuthFlow { - return ClientCredentialsOAuthFlow.clientCredentialsBuilder() - .tokenUrl("https://example.com/api/oauth/token") - .refreshUrl("https://example.com/api/oauth/refresh") - .availableScopes(mapOf( - Pair("write:pets", "modify pets in your account"), - Pair("read:pets", "read your pets") - )) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/oauth2/flow/ImplicitOAuthFlowTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/oauth2/flow/ImplicitOAuthFlowTest.kt deleted file mode 100644 index 12cdc5df..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/oauth2/flow/ImplicitOAuthFlowTest.kt +++ /dev/null @@ -1,26 +0,0 @@ -package com.asyncapi.v3.security_scheme.oauth2.flow - -import com.asyncapi.v3.SerDeTest - -class ImplicitOAuthFlowTest: SerDeTest() { - - override fun objectClass() = ImplicitOAuthFlow::class.java - - override fun baseObjectJson() = "/json/v3/security_scheme/oauth2/flow/implicitOAuthFlow.json" - - override fun extendedObjectJson() = "/json/v3/security_scheme/oauth2/flow/implicitOAuthFlow - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/security_scheme/oauth2/flow/implicitOAuthFlow - wrongly extended.json" - - override fun build(): ImplicitOAuthFlow { - return ImplicitOAuthFlow.implicitBuilder() - .authorizationUrl("https://example.com/api/oauth/dialog") - .refreshUrl("https://example.com/api/oauth/refresh") - .scopes(mapOf( - Pair("write:pets", "modify pets in your account"), - Pair("read:pets", "read your pets") - )) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/oauth2/flow/OAuthFlowTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/oauth2/flow/OAuthFlowTest.kt deleted file mode 100644 index f46d4666..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/oauth2/flow/OAuthFlowTest.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.asyncapi.v3.security_scheme.oauth2.flow - -import com.asyncapi.v3.SerDeTest - -class OAuthFlowTest: SerDeTest() { - - override fun objectClass() = OAuthFlow::class.java - - override fun baseObjectJson() = "/json/v3/security_scheme/oauth2/flow/oauthFlow.json" - - override fun extendedObjectJson() = "/json/v3/security_scheme/oauth2/flow/oauthFlow - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/security_scheme/oauth2/flow/oauthFlow - wrongly extended.json" - - override fun build(): OAuthFlow { - return OAuthFlow.builder() - .refreshUrl("https://example.com/api/oauth/refresh") - .availableScopes(mapOf( - Pair("write:pets", "modify pets in your account"), - Pair("read:pets", "read your pets") - )) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/oauth2/flow/PasswordOAuthFlowTest.kt b/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/oauth2/flow/PasswordOAuthFlowTest.kt deleted file mode 100644 index 531e97ad..00000000 --- a/asyncapi-core/src/test/kotlin/com/asyncapi/v3/security_scheme/oauth2/flow/PasswordOAuthFlowTest.kt +++ /dev/null @@ -1,26 +0,0 @@ -package com.asyncapi.v3.security_scheme.oauth2.flow - -import com.asyncapi.v3.SerDeTest - -class PasswordOAuthFlowTest: SerDeTest() { - - override fun objectClass() = PasswordOAuthFlow::class.java - - override fun baseObjectJson() = "/json/v3/security_scheme/oauth2/flow/passwordOAuthFlow.json" - - override fun extendedObjectJson() = "/json/v3/security_scheme/oauth2/flow/passwordOAuthFlow - extended.json" - - override fun wronglyExtendedObjectJson() = "/json/v3/security_scheme/oauth2/flow/passwordOAuthFlow - wrongly extended.json" - - override fun build(): PasswordOAuthFlow { - return PasswordOAuthFlow.passwordBuilder() - .tokenUrl("https://example.com/api/oauth/token") - .refreshUrl("https://example.com/api/oauth/refresh") - .scopes(mapOf( - Pair("write:pets", "modify pets in your account"), - Pair("read:pets", "read your pets") - )) - .build() - } - -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/channel/binding - extended.json new file mode 100644 index 00000000..1c659ddd --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/channel/binding - extended.json @@ -0,0 +1,21 @@ +{ + "bindingVersion" : "0.1.0", + "is" : "routingKey", + "exchange" : { + "name" : "myExchange", + "type" : "topic", + "durable" : true, + "autoDelete" : false + }, + "queue" : { + "name" : "my-queue-name", + "durable" : true, + "exclusive" : true, + "autoDelete" : false + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/channel/binding - wrongly extended.json new file mode 100644 index 00000000..111cd753 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/channel/binding - wrongly extended.json @@ -0,0 +1,22 @@ +{ + "is": "routingKey", + "queue": { + "name": "my-queue-name", + "durable": true, + "exclusive": true, + "autoDelete": false + }, + "exchange": { + "name": "myExchange", + "type": "topic", + "durable": true, + "autoDelete": false + }, + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/channel/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/channel/binding.json new file mode 100644 index 00000000..06ac7dda --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/channel/binding.json @@ -0,0 +1,16 @@ +{ + "is": "routingKey", + "queue": { + "name": "my-queue-name", + "durable": true, + "exclusive": true, + "autoDelete": false + }, + "exchange": { + "name": "myExchange", + "type": "topic", + "durable": true, + "autoDelete": false + }, + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/message/binding - extended.json new file mode 100644 index 00000000..6673d9d8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/message/binding - extended.json @@ -0,0 +1,10 @@ +{ + "bindingVersion" : "0.1.0", + "contentEncoding" : "gzip", + "messageType" : "user.signup", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/message/binding - wrongly extended.json new file mode 100644 index 00000000..61f8b5f8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/message/binding - wrongly extended.json @@ -0,0 +1,11 @@ +{ + "contentEncoding": "gzip", + "messageType": "user.signup", + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/message/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/message/binding.json new file mode 100644 index 00000000..5e4323a4 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/message/binding.json @@ -0,0 +1,5 @@ +{ + "contentEncoding": "gzip", + "messageType": "user.signup", + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/operation/binding - extended.json new file mode 100644 index 00000000..0ad32381 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/operation/binding - extended.json @@ -0,0 +1,18 @@ +{ + "bindingVersion" : "0.1.0", + "expiration" : 100000, + "userId" : "guest", + "cc" : [ "user.logs" ], + "priority" : 10, + "deliveryMode" : 2, + "mandatory" : false, + "bcc" : [ "external.audit" ], + "replyTo" : "user.signedup", + "timestamp" : true, + "ack" : false, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/operation/binding - wrongly extended.json new file mode 100644 index 00000000..b965b215 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/operation/binding - wrongly extended.json @@ -0,0 +1,23 @@ +{ + "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.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/operation/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/operation/binding.json new file mode 100644 index 00000000..cac652d9 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/operation/binding.json @@ -0,0 +1,17 @@ +{ + "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.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/message/mqtt/mqttMessageBinding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/server/binding - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/message/mqtt/mqttMessageBinding - extended.json rename to asyncapi-core/src/test/resources/bindings/amqp/0.1.0/server/binding - extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/binding/message/mqtt/mqttMessageBinding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/server/binding - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/message/mqtt/mqttMessageBinding - wrongly extended.json rename to asyncapi-core/src/test/resources/bindings/amqp/0.1.0/server/binding - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/binding/message/mqtt/mqttMessageBinding.json b/asyncapi-core/src/test/resources/bindings/amqp/0.1.0/server/binding.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/message/mqtt/mqttMessageBinding.json rename to asyncapi-core/src/test/resources/bindings/amqp/0.1.0/server/binding.json diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/channel/binding - extended.json new file mode 100644 index 00000000..9c9d16e3 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/channel/binding - extended.json @@ -0,0 +1,23 @@ +{ + "bindingVersion" : "0.2.0", + "is" : "routingKey", + "exchange" : { + "name" : "myExchange", + "type" : "topic", + "durable" : true, + "autoDelete" : false, + "vhost" : "/" + }, + "queue" : { + "name" : "my-queue-name", + "durable" : true, + "exclusive" : true, + "autoDelete" : false, + "vhost" : "/" + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/channel/amqp/amqpChannelBinding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/channel/binding - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/channel/amqp/amqpChannelBinding - wrongly extended.json rename to asyncapi-core/src/test/resources/bindings/amqp/0.2.0/channel/binding - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/binding/channel/amqp/amqpChannelBinding.json b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/channel/binding.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/channel/amqp/amqpChannelBinding.json rename to asyncapi-core/src/test/resources/bindings/amqp/0.2.0/channel/binding.json diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/message/binding - extended.json new file mode 100644 index 00000000..443f64cb --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/message/binding - extended.json @@ -0,0 +1,10 @@ +{ + "bindingVersion" : "0.2.0", + "contentEncoding" : "gzip", + "messageType" : "user.signup", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/message/amqp/amqpMessageBinding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/message/binding - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/message/amqp/amqpMessageBinding - wrongly extended.json rename to asyncapi-core/src/test/resources/bindings/amqp/0.2.0/message/binding - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/binding/message/amqp/amqpMessageBinding.json b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/message/binding.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/message/amqp/amqpMessageBinding.json rename to asyncapi-core/src/test/resources/bindings/amqp/0.2.0/message/binding.json diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/operation/binding - extended.json new file mode 100644 index 00000000..65ad1577 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/operation/binding - extended.json @@ -0,0 +1,18 @@ +{ + "bindingVersion" : "0.2.0", + "expiration" : 100000, + "userId" : "guest", + "cc" : [ "user.logs" ], + "priority" : 10, + "deliveryMode" : 2, + "mandatory" : false, + "bcc" : [ "external.audit" ], + "replyTo" : "user.signedup", + "timestamp" : true, + "ack" : false, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/operation/amqp/amqpOperationBinding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/operation/binding - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/operation/amqp/amqpOperationBinding - wrongly extended.json rename to asyncapi-core/src/test/resources/bindings/amqp/0.2.0/operation/binding - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/binding/operation/amqp/amqpOperationBinding.json b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/operation/binding.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/operation/amqp/amqpOperationBinding.json rename to asyncapi-core/src/test/resources/bindings/amqp/0.2.0/operation/binding.json diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/server/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/server/binding - wrongly extended.json new file mode 100644 index 00000000..1cb38f9c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.2.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/server/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/server/binding.json new file mode 100644 index 00000000..a22565a8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.2.0/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.2.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/channel/binding - extended.json new file mode 100644 index 00000000..0711c55c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/channel/binding - extended.json @@ -0,0 +1,23 @@ +{ + "bindingVersion" : "0.3.0", + "is" : "routingKey", + "exchange" : { + "name" : "myExchange", + "type" : "topic", + "durable" : true, + "autoDelete" : false, + "vhost" : "/" + }, + "queue" : { + "name" : "my-queue-name", + "durable" : true, + "exclusive" : true, + "autoDelete" : false, + "vhost" : "/" + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/channel/binding - wrongly extended.json new file mode 100644 index 00000000..4168c470 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/channel/binding - wrongly extended.json @@ -0,0 +1,24 @@ +{ + "is": "routingKey", + "queue": { + "name": "my-queue-name", + "durable": true, + "exclusive": true, + "autoDelete": false, + "vhost": "/" + }, + "exchange": { + "name": "myExchange", + "type": "topic", + "durable": true, + "autoDelete": false, + "vhost": "/" + }, + "bindingVersion": "0.3.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/channel/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/channel/binding.json new file mode 100644 index 00000000..06cff58b --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/channel/binding.json @@ -0,0 +1,18 @@ +{ + "is": "routingKey", + "queue": { + "name": "my-queue-name", + "durable": true, + "exclusive": true, + "autoDelete": false, + "vhost": "/" + }, + "exchange": { + "name": "myExchange", + "type": "topic", + "durable": true, + "autoDelete": false, + "vhost": "/" + }, + "bindingVersion": "0.3.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/message/binding - extended.json new file mode 100644 index 00000000..730ae10b --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/message/binding - extended.json @@ -0,0 +1,10 @@ +{ + "bindingVersion" : "0.3.0", + "contentEncoding" : "gzip", + "messageType" : "user.signup", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/message/binding - wrongly extended.json new file mode 100644 index 00000000..e58030ff --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/message/binding - wrongly extended.json @@ -0,0 +1,11 @@ +{ + "contentEncoding": "gzip", + "messageType": "user.signup", + "bindingVersion": "0.3.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/message/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/message/binding.json new file mode 100644 index 00000000..5cb3ca90 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/message/binding.json @@ -0,0 +1,5 @@ +{ + "contentEncoding": "gzip", + "messageType": "user.signup", + "bindingVersion": "0.3.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/operation/binding - extended.json new file mode 100644 index 00000000..a055dd28 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/operation/binding - extended.json @@ -0,0 +1,17 @@ +{ + "bindingVersion" : "0.3.0", + "expiration" : 100000, + "userId" : "guest", + "cc" : [ "user.logs" ], + "priority" : 10, + "deliveryMode" : 2, + "mandatory" : false, + "bcc" : [ "external.audit" ], + "timestamp" : true, + "ack" : false, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/operation/binding - wrongly extended.json new file mode 100644 index 00000000..61ff2d82 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/operation/binding - wrongly extended.json @@ -0,0 +1,22 @@ +{ + "expiration": 100000, + "userId": "guest", + "cc": [ + "user.logs" + ], + "priority": 10, + "deliveryMode": 2, + "mandatory": false, + "bcc": [ + "external.audit" + ], + "timestamp": true, + "ack": false, + "bindingVersion": "0.3.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/operation/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/operation/binding.json new file mode 100644 index 00000000..2c8ab4b6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/operation/binding.json @@ -0,0 +1,16 @@ +{ + "expiration": 100000, + "userId": "guest", + "cc": [ + "user.logs" + ], + "priority": 10, + "deliveryMode": 2, + "mandatory": false, + "bcc": [ + "external.audit" + ], + "timestamp": true, + "ack": false, + "bindingVersion": "0.3.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/server/binding - extended.json new file mode 100644 index 00000000..8310c9d6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.3.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/server/binding - wrongly extended.json new file mode 100644 index 00000000..943a1361 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.3.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/server/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/server/binding.json new file mode 100644 index 00000000..4c2843f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/0.3.0/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.3.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/latest/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/latest/channel/binding - extended.json new file mode 100644 index 00000000..0711c55c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/latest/channel/binding - extended.json @@ -0,0 +1,23 @@ +{ + "bindingVersion" : "0.3.0", + "is" : "routingKey", + "exchange" : { + "name" : "myExchange", + "type" : "topic", + "durable" : true, + "autoDelete" : false, + "vhost" : "/" + }, + "queue" : { + "name" : "my-queue-name", + "durable" : true, + "exclusive" : true, + "autoDelete" : false, + "vhost" : "/" + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/latest/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/latest/channel/binding - wrongly extended.json new file mode 100644 index 00000000..a0131c3f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/latest/channel/binding - wrongly extended.json @@ -0,0 +1,24 @@ +{ + "is": "routingKey", + "queue": { + "name": "my-queue-name", + "durable": true, + "exclusive": true, + "autoDelete": false, + "vhost": "/" + }, + "exchange": { + "name": "myExchange", + "type": "topic", + "durable": true, + "autoDelete": false, + "vhost": "/" + }, + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/latest/channel/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/latest/channel/binding.json new file mode 100644 index 00000000..b0d109fa --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/latest/channel/binding.json @@ -0,0 +1,18 @@ +{ + "is": "routingKey", + "queue": { + "name": "my-queue-name", + "durable": true, + "exclusive": true, + "autoDelete": false, + "vhost": "/" + }, + "exchange": { + "name": "myExchange", + "type": "topic", + "durable": true, + "autoDelete": false, + "vhost": "/" + }, + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/latest/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/latest/message/binding - extended.json new file mode 100644 index 00000000..730ae10b --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/latest/message/binding - extended.json @@ -0,0 +1,10 @@ +{ + "bindingVersion" : "0.3.0", + "contentEncoding" : "gzip", + "messageType" : "user.signup", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/latest/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/latest/message/binding - wrongly extended.json new file mode 100644 index 00000000..95b801a2 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/latest/message/binding - wrongly extended.json @@ -0,0 +1,11 @@ +{ + "contentEncoding": "gzip", + "messageType": "user.signup", + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/latest/message/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/latest/message/binding.json new file mode 100644 index 00000000..e48dc6d6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/latest/message/binding.json @@ -0,0 +1,5 @@ +{ + "contentEncoding": "gzip", + "messageType": "user.signup", + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/latest/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/latest/operation/binding - extended.json new file mode 100644 index 00000000..a055dd28 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/latest/operation/binding - extended.json @@ -0,0 +1,17 @@ +{ + "bindingVersion" : "0.3.0", + "expiration" : 100000, + "userId" : "guest", + "cc" : [ "user.logs" ], + "priority" : 10, + "deliveryMode" : 2, + "mandatory" : false, + "bcc" : [ "external.audit" ], + "timestamp" : true, + "ack" : false, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/latest/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/latest/operation/binding - wrongly extended.json new file mode 100644 index 00000000..3b31654e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/latest/operation/binding - wrongly extended.json @@ -0,0 +1,22 @@ +{ + "expiration": 100000, + "userId": "guest", + "cc": [ + "user.logs" + ], + "priority": 10, + "deliveryMode": 2, + "mandatory": false, + "bcc": [ + "external.audit" + ], + "timestamp": true, + "ack": false, + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/latest/operation/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/latest/operation/binding.json new file mode 100644 index 00000000..6b6c209f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/latest/operation/binding.json @@ -0,0 +1,16 @@ +{ + "expiration": 100000, + "userId": "guest", + "cc": [ + "user.logs" + ], + "priority": 10, + "deliveryMode": 2, + "mandatory": false, + "bcc": [ + "external.audit" + ], + "timestamp": true, + "ack": false, + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/latest/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/latest/server/binding - extended.json new file mode 100644 index 00000000..8310c9d6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/latest/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.3.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/latest/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/latest/server/binding - wrongly extended.json new file mode 100644 index 00000000..18560ee8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/latest/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/latest/server/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/latest/server/binding.json new file mode 100644 index 00000000..cdf165f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/latest/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/unknown version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/channel/binding - extended.json new file mode 100644 index 00000000..0711c55c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/channel/binding - extended.json @@ -0,0 +1,23 @@ +{ + "bindingVersion" : "0.3.0", + "is" : "routingKey", + "exchange" : { + "name" : "myExchange", + "type" : "topic", + "durable" : true, + "autoDelete" : false, + "vhost" : "/" + }, + "queue" : { + "name" : "my-queue-name", + "durable" : true, + "exclusive" : true, + "autoDelete" : false, + "vhost" : "/" + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/unknown version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..b618ccb6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/channel/binding - wrongly extended.json @@ -0,0 +1,24 @@ +{ + "is": "routingKey", + "queue": { + "name": "my-queue-name", + "durable": true, + "exclusive": true, + "autoDelete": false, + "vhost": "/" + }, + "exchange": { + "name": "myExchange", + "type": "topic", + "durable": true, + "autoDelete": false, + "vhost": "/" + }, + "bindingVersion": "0.199.6", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/unknown version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/channel/binding.json new file mode 100644 index 00000000..7251f3d3 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/channel/binding.json @@ -0,0 +1,18 @@ +{ + "is": "routingKey", + "queue": { + "name": "my-queue-name", + "durable": true, + "exclusive": true, + "autoDelete": false, + "vhost": "/" + }, + "exchange": { + "name": "myExchange", + "type": "topic", + "durable": true, + "autoDelete": false, + "vhost": "/" + }, + "bindingVersion": "0.199.6" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/unknown version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/message/binding - extended.json new file mode 100644 index 00000000..730ae10b --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/message/binding - extended.json @@ -0,0 +1,10 @@ +{ + "bindingVersion" : "0.3.0", + "contentEncoding" : "gzip", + "messageType" : "user.signup", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/unknown version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/message/binding - wrongly extended.json new file mode 100644 index 00000000..af71946d --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/message/binding - wrongly extended.json @@ -0,0 +1,11 @@ +{ + "contentEncoding": "gzip", + "messageType": "user.signup", + "bindingVersion": "0.199.6", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/unknown version/message/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/message/binding.json new file mode 100644 index 00000000..2129134e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/message/binding.json @@ -0,0 +1,5 @@ +{ + "contentEncoding": "gzip", + "messageType": "user.signup", + "bindingVersion": "0.199.6" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/unknown version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/operation/binding - extended.json new file mode 100644 index 00000000..a055dd28 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/operation/binding - extended.json @@ -0,0 +1,17 @@ +{ + "bindingVersion" : "0.3.0", + "expiration" : 100000, + "userId" : "guest", + "cc" : [ "user.logs" ], + "priority" : 10, + "deliveryMode" : 2, + "mandatory" : false, + "bcc" : [ "external.audit" ], + "timestamp" : true, + "ack" : false, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/unknown version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..d5e720fd --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/operation/binding - wrongly extended.json @@ -0,0 +1,22 @@ +{ + "expiration": 100000, + "userId": "guest", + "cc": [ + "user.logs" + ], + "priority": 10, + "deliveryMode": 2, + "mandatory": false, + "bcc": [ + "external.audit" + ], + "timestamp": true, + "ack": false, + "bindingVersion": "0.199.6", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/unknown version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/operation/binding.json new file mode 100644 index 00000000..d30f2034 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/operation/binding.json @@ -0,0 +1,16 @@ +{ + "expiration": 100000, + "userId": "guest", + "cc": [ + "user.logs" + ], + "priority": 10, + "deliveryMode": 2, + "mandatory": false, + "bcc": [ + "external.audit" + ], + "timestamp": true, + "ack": false, + "bindingVersion": "0.199.6" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/unknown version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/server/binding - extended.json new file mode 100644 index 00000000..8310c9d6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.3.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/unknown version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/server/binding - wrongly extended.json new file mode 100644 index 00000000..ab29a71c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.199.6", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/unknown version/server/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/server/binding.json new file mode 100644 index 00000000..03d6b9e6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/unknown version/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.199.6" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/without version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/without version/channel/binding - extended.json new file mode 100644 index 00000000..0711c55c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/without version/channel/binding - extended.json @@ -0,0 +1,23 @@ +{ + "bindingVersion" : "0.3.0", + "is" : "routingKey", + "exchange" : { + "name" : "myExchange", + "type" : "topic", + "durable" : true, + "autoDelete" : false, + "vhost" : "/" + }, + "queue" : { + "name" : "my-queue-name", + "durable" : true, + "exclusive" : true, + "autoDelete" : false, + "vhost" : "/" + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/without version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/without version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..2bd1dd45 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/without version/channel/binding - wrongly extended.json @@ -0,0 +1,23 @@ +{ + "is": "routingKey", + "queue": { + "name": "my-queue-name", + "durable": true, + "exclusive": true, + "autoDelete": false, + "vhost": "/" + }, + "exchange": { + "name": "myExchange", + "type": "topic", + "durable": true, + "autoDelete": false, + "vhost": "/" + }, + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/without version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/without version/channel/binding.json new file mode 100644 index 00000000..6a657317 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/without version/channel/binding.json @@ -0,0 +1,17 @@ +{ + "is": "routingKey", + "queue": { + "name": "my-queue-name", + "durable": true, + "exclusive": true, + "autoDelete": false, + "vhost": "/" + }, + "exchange": { + "name": "myExchange", + "type": "topic", + "durable": true, + "autoDelete": false, + "vhost": "/" + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/without version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/without version/message/binding - extended.json new file mode 100644 index 00000000..730ae10b --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/without version/message/binding - extended.json @@ -0,0 +1,10 @@ +{ + "bindingVersion" : "0.3.0", + "contentEncoding" : "gzip", + "messageType" : "user.signup", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/without version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/without version/message/binding - wrongly extended.json new file mode 100644 index 00000000..b2e9e16d --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/without version/message/binding - wrongly extended.json @@ -0,0 +1,10 @@ +{ + "contentEncoding": "gzip", + "messageType": "user.signup", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/without version/message/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/without version/message/binding.json new file mode 100644 index 00000000..5a989f71 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/without version/message/binding.json @@ -0,0 +1,4 @@ +{ + "contentEncoding": "gzip", + "messageType": "user.signup" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/without version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/without version/operation/binding - extended.json new file mode 100644 index 00000000..a055dd28 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/without version/operation/binding - extended.json @@ -0,0 +1,17 @@ +{ + "bindingVersion" : "0.3.0", + "expiration" : 100000, + "userId" : "guest", + "cc" : [ "user.logs" ], + "priority" : 10, + "deliveryMode" : 2, + "mandatory" : false, + "bcc" : [ "external.audit" ], + "timestamp" : true, + "ack" : false, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/without version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/without version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..528096f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/without version/operation/binding - wrongly extended.json @@ -0,0 +1,21 @@ +{ + "expiration": 100000, + "userId": "guest", + "cc": [ + "user.logs" + ], + "priority": 10, + "deliveryMode": 2, + "mandatory": false, + "bcc": [ + "external.audit" + ], + "timestamp": true, + "ack": false, + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/without version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/without version/operation/binding.json new file mode 100644 index 00000000..74492aac --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/without version/operation/binding.json @@ -0,0 +1,15 @@ +{ + "expiration": 100000, + "userId": "guest", + "cc": [ + "user.logs" + ], + "priority": 10, + "deliveryMode": 2, + "mandatory": false, + "bcc": [ + "external.audit" + ], + "timestamp": true, + "ack": false +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/without version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/amqp/without version/server/binding - extended.json new file mode 100644 index 00000000..8310c9d6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/without version/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.3.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/without version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/amqp/without version/server/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/without version/server/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/amqp/without version/server/binding.json b/asyncapi-core/src/test/resources/bindings/amqp/without version/server/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/amqp/without version/server/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/channel/binding - extended.json new file mode 100644 index 00000000..41b3abd8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/channel/binding - extended.json @@ -0,0 +1,10 @@ +{ + "bindingVersion" : "0.0.1", + "destination" : "user-signup-exchg", + "destinationType" : "exchange", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/channel/anypoint/anypointMQChannelBinding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/channel/binding - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/channel/anypoint/anypointMQChannelBinding - wrongly extended.json rename to asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/channel/binding - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/binding/channel/anypoint/anypointMQChannelBinding.json b/asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/channel/binding.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/channel/anypoint/anypointMQChannelBinding.json rename to asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/channel/binding.json diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/message/binding - extended.json new file mode 100644 index 00000000..8ea89356 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/message/binding - extended.json @@ -0,0 +1,17 @@ +{ + "bindingVersion" : "0.0.1", + "headers" : { + "type" : "object", + "properties" : { + "correlationId" : { + "type" : "string", + "description" : "Correlation ID set by application" + } + } + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/message/anypointmq/anypointMQMessageBinding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/message/binding - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/message/anypointmq/anypointMQMessageBinding - wrongly extended.json rename to asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/message/binding - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/binding/message/anypointmq/anypointMQMessageBinding.json b/asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/message/binding.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/message/anypointmq/anypointMQMessageBinding.json rename to asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/message/binding.json diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/operation/binding - extended.json new file mode 100644 index 00000000..de3a5262 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.0.1", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/operation/binding - wrongly extended.json new file mode 100644 index 00000000..e060a0ea --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/operation/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.0.1", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/operation/binding.json b/asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/operation/binding.json new file mode 100644 index 00000000..be81020d --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/operation/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.0.1" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/server/binding - extended.json new file mode 100644 index 00000000..de3a5262 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.0.1", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/server/binding - wrongly extended.json new file mode 100644 index 00000000..e060a0ea --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.0.1", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/server/binding.json b/asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/server/binding.json new file mode 100644 index 00000000..be81020d --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/0.0.1/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.0.1" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/latest/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/latest/channel/binding - extended.json new file mode 100644 index 00000000..41b3abd8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/latest/channel/binding - extended.json @@ -0,0 +1,10 @@ +{ + "bindingVersion" : "0.0.1", + "destination" : "user-signup-exchg", + "destinationType" : "exchange", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/latest/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/latest/channel/binding - wrongly extended.json new file mode 100644 index 00000000..da7576ee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/latest/channel/binding - wrongly extended.json @@ -0,0 +1,11 @@ +{ + "destination": "user-signup-exchg", + "destinationType": "exchange", + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/latest/channel/binding.json b/asyncapi-core/src/test/resources/bindings/anypointmq/latest/channel/binding.json new file mode 100644 index 00000000..e51a884e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/latest/channel/binding.json @@ -0,0 +1,5 @@ +{ + "destination": "user-signup-exchg", + "destinationType": "exchange", + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/latest/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/latest/message/binding - extended.json new file mode 100644 index 00000000..8ea89356 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/latest/message/binding - extended.json @@ -0,0 +1,17 @@ +{ + "bindingVersion" : "0.0.1", + "headers" : { + "type" : "object", + "properties" : { + "correlationId" : { + "type" : "string", + "description" : "Correlation ID set by application" + } + } + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/latest/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/latest/message/binding - wrongly extended.json new file mode 100644 index 00000000..017374e0 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/latest/message/binding - wrongly extended.json @@ -0,0 +1,18 @@ +{ + "headers": { + "type": "object", + "properties": { + "correlationId": { + "description": "Correlation ID set by application", + "type": "string" + } + } + }, + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/latest/message/binding.json b/asyncapi-core/src/test/resources/bindings/anypointmq/latest/message/binding.json new file mode 100644 index 00000000..22ec5c25 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/latest/message/binding.json @@ -0,0 +1,12 @@ +{ + "headers": { + "type": "object", + "properties": { + "correlationId": { + "description": "Correlation ID set by application", + "type": "string" + } + } + }, + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/latest/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/latest/operation/binding - extended.json new file mode 100644 index 00000000..de3a5262 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/latest/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.0.1", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/latest/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/latest/operation/binding - wrongly extended.json new file mode 100644 index 00000000..18560ee8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/latest/operation/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/latest/operation/binding.json b/asyncapi-core/src/test/resources/bindings/anypointmq/latest/operation/binding.json new file mode 100644 index 00000000..cdf165f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/latest/operation/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/latest/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/latest/server/binding - extended.json new file mode 100644 index 00000000..de3a5262 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/latest/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.0.1", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/latest/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/latest/server/binding - wrongly extended.json new file mode 100644 index 00000000..18560ee8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/latest/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/latest/server/binding.json b/asyncapi-core/src/test/resources/bindings/anypointmq/latest/server/binding.json new file mode 100644 index 00000000..cdf165f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/latest/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/channel/binding - extended.json new file mode 100644 index 00000000..41b3abd8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/channel/binding - extended.json @@ -0,0 +1,10 @@ +{ + "bindingVersion" : "0.0.1", + "destination" : "user-signup-exchg", + "destinationType" : "exchange", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..ff3d9383 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/channel/binding - wrongly extended.json @@ -0,0 +1,11 @@ +{ + "destination": "user-signup-exchg", + "destinationType": "exchange", + "bindingVersion": "0.996.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/channel/binding.json new file mode 100644 index 00000000..c726ed72 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/channel/binding.json @@ -0,0 +1,5 @@ +{ + "destination": "user-signup-exchg", + "destinationType": "exchange", + "bindingVersion": "0.996.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/message/binding - extended.json new file mode 100644 index 00000000..8ea89356 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/message/binding - extended.json @@ -0,0 +1,17 @@ +{ + "bindingVersion" : "0.0.1", + "headers" : { + "type" : "object", + "properties" : { + "correlationId" : { + "type" : "string", + "description" : "Correlation ID set by application" + } + } + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/message/binding - wrongly extended.json new file mode 100644 index 00000000..b98053b4 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/message/binding - wrongly extended.json @@ -0,0 +1,18 @@ +{ + "headers": { + "type": "object", + "properties": { + "correlationId": { + "description": "Correlation ID set by application", + "type": "string" + } + } + }, + "bindingVersion": "0.996.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/message/binding.json b/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/message/binding.json new file mode 100644 index 00000000..217e1d59 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/message/binding.json @@ -0,0 +1,12 @@ +{ + "headers": { + "type": "object", + "properties": { + "correlationId": { + "description": "Correlation ID set by application", + "type": "string" + } + } + }, + "bindingVersion": "0.996.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/operation/binding - extended.json new file mode 100644 index 00000000..de3a5262 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.0.1", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..4355627d --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/operation/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.996.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/operation/binding.json new file mode 100644 index 00000000..3bca743e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/operation/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.996.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/server/binding - extended.json new file mode 100644 index 00000000..de3a5262 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.0.1", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/server/binding - wrongly extended.json new file mode 100644 index 00000000..4355627d --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.996.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/server/binding.json b/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/server/binding.json new file mode 100644 index 00000000..3bca743e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/unknown version/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.996.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/without version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/without version/channel/binding - extended.json new file mode 100644 index 00000000..41b3abd8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/without version/channel/binding - extended.json @@ -0,0 +1,10 @@ +{ + "bindingVersion" : "0.0.1", + "destination" : "user-signup-exchg", + "destinationType" : "exchange", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/without version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/without version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..c9232e82 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/without version/channel/binding - wrongly extended.json @@ -0,0 +1,10 @@ +{ + "destination": "user-signup-exchg", + "destinationType": "exchange", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/without version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/anypointmq/without version/channel/binding.json new file mode 100644 index 00000000..05d00e61 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/without version/channel/binding.json @@ -0,0 +1,4 @@ +{ + "destination": "user-signup-exchg", + "destinationType": "exchange" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/without version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/without version/message/binding - extended.json new file mode 100644 index 00000000..8ea89356 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/without version/message/binding - extended.json @@ -0,0 +1,17 @@ +{ + "bindingVersion" : "0.0.1", + "headers" : { + "type" : "object", + "properties" : { + "correlationId" : { + "type" : "string", + "description" : "Correlation ID set by application" + } + } + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/without version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/without version/message/binding - wrongly extended.json new file mode 100644 index 00000000..138d4693 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/without version/message/binding - wrongly extended.json @@ -0,0 +1,17 @@ +{ + "headers": { + "type": "object", + "properties": { + "correlationId": { + "description": "Correlation ID set by application", + "type": "string" + } + } + }, + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/without version/message/binding.json b/asyncapi-core/src/test/resources/bindings/anypointmq/without version/message/binding.json new file mode 100644 index 00000000..ac13a7cb --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/without version/message/binding.json @@ -0,0 +1,11 @@ +{ + "headers": { + "type": "object", + "properties": { + "correlationId": { + "description": "Correlation ID set by application", + "type": "string" + } + } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/without version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/without version/operation/binding - extended.json new file mode 100644 index 00000000..de3a5262 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/without version/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.0.1", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/without version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/without version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/without version/operation/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/without version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/anypointmq/without version/operation/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/without version/operation/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/without version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/without version/server/binding - extended.json new file mode 100644 index 00000000..de3a5262 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/without version/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.0.1", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/without version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/anypointmq/without version/server/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/without version/server/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/anypointmq/without version/server/binding.json b/asyncapi-core/src/test/resources/bindings/anypointmq/without version/server/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/anypointmq/without version/server/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/message/mqtt/mqttMessageBinding - extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/channel/binding - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/binding/message/mqtt/mqttMessageBinding - extended.json rename to asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/channel/binding - extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/binding/message/mqtt/mqttMessageBinding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/channel/binding - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/binding/message/mqtt/mqttMessageBinding - wrongly extended.json rename to asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/channel/binding - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/binding/message/mqtt/mqttMessageBinding.json b/asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/channel/binding.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/binding/message/mqtt/mqttMessageBinding.json rename to asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/channel/binding.json diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/message/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/message/binding - wrongly extended.json new file mode 100644 index 00000000..a1ecfd51 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/message/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/message/binding.json b/asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/message/binding.json new file mode 100644 index 00000000..04dbf945 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/message/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/operation/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/operation/binding - wrongly extended.json new file mode 100644 index 00000000..a1ecfd51 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/operation/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/operation/binding.json b/asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/operation/binding.json new file mode 100644 index 00000000..04dbf945 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/operation/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/server/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/server/binding - wrongly extended.json new file mode 100644 index 00000000..a1ecfd51 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/server/binding.json b/asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/server/binding.json new file mode 100644 index 00000000..04dbf945 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/0.1.0/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/latest/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/latest/channel/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/latest/channel/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/latest/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/latest/channel/binding - wrongly extended.json new file mode 100644 index 00000000..18560ee8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/latest/channel/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/latest/channel/binding.json b/asyncapi-core/src/test/resources/bindings/default implementation/latest/channel/binding.json new file mode 100644 index 00000000..cdf165f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/latest/channel/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/latest/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/latest/message/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/latest/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/latest/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/latest/message/binding - wrongly extended.json new file mode 100644 index 00000000..18560ee8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/latest/message/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/latest/message/binding.json b/asyncapi-core/src/test/resources/bindings/default implementation/latest/message/binding.json new file mode 100644 index 00000000..cdf165f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/latest/message/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/latest/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/latest/operation/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/latest/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/latest/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/latest/operation/binding - wrongly extended.json new file mode 100644 index 00000000..18560ee8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/latest/operation/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/latest/operation/binding.json b/asyncapi-core/src/test/resources/bindings/default implementation/latest/operation/binding.json new file mode 100644 index 00000000..cdf165f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/latest/operation/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/latest/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/latest/server/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/latest/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/latest/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/latest/server/binding - wrongly extended.json new file mode 100644 index 00000000..18560ee8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/latest/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/latest/server/binding.json b/asyncapi-core/src/test/resources/bindings/default implementation/latest/server/binding.json new file mode 100644 index 00000000..cdf165f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/latest/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/channel/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/channel/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..62eff98f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/channel/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.199.36", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/channel/binding.json new file mode 100644 index 00000000..1394045a --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/channel/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.199.36" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/message/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/message/binding - wrongly extended.json new file mode 100644 index 00000000..62eff98f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/message/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.199.36", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/message/binding.json b/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/message/binding.json new file mode 100644 index 00000000..1394045a --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/message/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.199.36" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/operation/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..62eff98f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/operation/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.199.36", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/operation/binding.json new file mode 100644 index 00000000..1394045a --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/operation/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.199.36" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/server/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/server/binding - wrongly extended.json new file mode 100644 index 00000000..62eff98f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.199.36", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/server/binding.json b/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/server/binding.json new file mode 100644 index 00000000..1394045a --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/unknown version/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.199.36" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/without version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/without version/channel/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/without version/channel/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/without version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/without version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/without version/channel/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/without version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/default implementation/without version/channel/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/without version/channel/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/without version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/without version/message/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/without version/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/without version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/without version/message/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/without version/message/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/without version/message/binding.json b/asyncapi-core/src/test/resources/bindings/default implementation/without version/message/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/without version/message/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/without version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/without version/operation/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/without version/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/without version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/without version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/without version/operation/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/without version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/default implementation/without version/operation/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/without version/operation/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/without version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/without version/server/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/without version/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/without version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/default implementation/without version/server/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/without version/server/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/default implementation/without version/server/binding.json b/asyncapi-core/src/test/resources/bindings/default implementation/without version/server/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/default implementation/without version/server/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/channel/binding - extended.json new file mode 100644 index 00000000..e5475859 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/channel/binding - extended.json @@ -0,0 +1,17 @@ +{ + "bindingVersion" : "0.1.0", + "topic" : "projects/your-project/topics/topic-proto-schema", + "messageRetentionDuration" : "86400s", + "messageStoragePolicy" : { + "allowedPersistenceRegions" : [ "us-central1", "us-central2", "us-east1", "us-east4", "us-east5", "us-east7", "us-south1", "us-west1", "us-west2", "us-west3", "us-west4" ] + }, + "schemaSettings" : { + "encoding" : "binary", + "name" : "projects/your-project/schemas/message-proto" + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/channel/googlepubsub/googlePubSubChannelBinding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/channel/binding - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/channel/googlepubsub/googlePubSubChannelBinding - wrongly extended.json rename to asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/channel/binding - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/binding/channel/googlepubsub/googlePubSubChannelBinding.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/channel/binding.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/channel/googlepubsub/googlePubSubChannelBinding.json rename to asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/channel/binding.json diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/message/binding - extended.json new file mode 100644 index 00000000..03c80f99 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/message/binding - extended.json @@ -0,0 +1,12 @@ +{ + "bindingVersion" : "0.1.0", + "schema" : { + "name" : "projects/your-project/schemas/message-avro", + "type" : "avro" + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/message/googlepubsub/googlePubSubMessageBinding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/message/binding - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/message/googlepubsub/googlePubSubMessageBinding - wrongly extended.json rename to asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/message/binding - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/binding/message/googlepubsub/googlePubSubMessageBinding.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/message/binding.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/message/googlepubsub/googlePubSubMessageBinding.json rename to asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/message/binding.json diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/operation/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/operation/binding - wrongly extended.json new file mode 100644 index 00000000..a1ecfd51 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/operation/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/operation/binding.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/operation/binding.json new file mode 100644 index 00000000..04dbf945 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/operation/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/server/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/server/binding - wrongly extended.json new file mode 100644 index 00000000..a1ecfd51 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/server/binding.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/server/binding.json new file mode 100644 index 00000000..04dbf945 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.1.0/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/channel/binding - extended.json new file mode 100644 index 00000000..f6261e2e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/channel/binding - extended.json @@ -0,0 +1,16 @@ +{ + "bindingVersion" : "0.2.0", + "messageRetentionDuration" : "86400s", + "messageStoragePolicy" : { + "allowedPersistenceRegions" : [ "us-central1", "us-central2", "us-east1", "us-east4", "us-east5", "us-east7", "us-south1", "us-west1", "us-west2", "us-west3", "us-west4" ] + }, + "schemaSettings" : { + "encoding" : "binary", + "name" : "projects/your-project/schemas/message-proto" + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/channel/binding - wrongly extended.json new file mode 100644 index 00000000..e9e254e3 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/channel/binding - wrongly extended.json @@ -0,0 +1,29 @@ +{ + "messageRetentionDuration": "86400s", + "messageStoragePolicy": { + "allowedPersistenceRegions": [ + "us-central1", + "us-central2", + "us-east1", + "us-east4", + "us-east5", + "us-east7", + "us-south1", + "us-west1", + "us-west2", + "us-west3", + "us-west4" + ] + }, + "schemaSettings": { + "encoding": "binary", + "name": "projects/your-project/schemas/message-proto" + }, + "bindingVersion": "0.2.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/channel/binding.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/channel/binding.json new file mode 100644 index 00000000..dcbcf571 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/channel/binding.json @@ -0,0 +1,23 @@ +{ + "messageRetentionDuration": "86400s", + "messageStoragePolicy": { + "allowedPersistenceRegions": [ + "us-central1", + "us-central2", + "us-east1", + "us-east4", + "us-east5", + "us-east7", + "us-south1", + "us-west1", + "us-west2", + "us-west3", + "us-west4" + ] + }, + "schemaSettings": { + "encoding": "binary", + "name": "projects/your-project/schemas/message-proto" + }, + "bindingVersion": "0.2.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/message/binding - extended.json new file mode 100644 index 00000000..ec2374fc --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/message/binding - extended.json @@ -0,0 +1,11 @@ +{ + "bindingVersion" : "0.2.0", + "schema" : { + "name" : "projects/your-project/schemas/message-avro" + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/message/binding - wrongly extended.json new file mode 100644 index 00000000..5b9d6398 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/message/binding - wrongly extended.json @@ -0,0 +1,12 @@ +{ + "schema": { + "name": "projects/your-project/schemas/message-avro" + }, + "bindingVersion": "0.2.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/message/binding.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/message/binding.json new file mode 100644 index 00000000..8764c900 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/message/binding.json @@ -0,0 +1,6 @@ +{ + "schema": { + "name": "projects/your-project/schemas/message-avro" + }, + "bindingVersion": "0.2.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/operation/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/operation/binding - wrongly extended.json new file mode 100644 index 00000000..1cb38f9c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/operation/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.2.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/operation/binding.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/operation/binding.json new file mode 100644 index 00000000..a22565a8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/operation/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.2.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/server/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/server/binding - wrongly extended.json new file mode 100644 index 00000000..1cb38f9c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.2.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/server/binding.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/server/binding.json new file mode 100644 index 00000000..a22565a8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/0.2.0/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.2.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/channel/binding - extended.json new file mode 100644 index 00000000..f6261e2e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/channel/binding - extended.json @@ -0,0 +1,16 @@ +{ + "bindingVersion" : "0.2.0", + "messageRetentionDuration" : "86400s", + "messageStoragePolicy" : { + "allowedPersistenceRegions" : [ "us-central1", "us-central2", "us-east1", "us-east4", "us-east5", "us-east7", "us-south1", "us-west1", "us-west2", "us-west3", "us-west4" ] + }, + "schemaSettings" : { + "encoding" : "binary", + "name" : "projects/your-project/schemas/message-proto" + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/channel/binding - wrongly extended.json new file mode 100644 index 00000000..fe9c5478 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/channel/binding - wrongly extended.json @@ -0,0 +1,29 @@ +{ + "messageRetentionDuration": "86400s", + "messageStoragePolicy": { + "allowedPersistenceRegions": [ + "us-central1", + "us-central2", + "us-east1", + "us-east4", + "us-east5", + "us-east7", + "us-south1", + "us-west1", + "us-west2", + "us-west3", + "us-west4" + ] + }, + "schemaSettings": { + "encoding": "binary", + "name": "projects/your-project/schemas/message-proto" + }, + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/channel/binding.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/channel/binding.json new file mode 100644 index 00000000..658baaf3 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/channel/binding.json @@ -0,0 +1,23 @@ +{ + "messageRetentionDuration": "86400s", + "messageStoragePolicy": { + "allowedPersistenceRegions": [ + "us-central1", + "us-central2", + "us-east1", + "us-east4", + "us-east5", + "us-east7", + "us-south1", + "us-west1", + "us-west2", + "us-west3", + "us-west4" + ] + }, + "schemaSettings": { + "encoding": "binary", + "name": "projects/your-project/schemas/message-proto" + }, + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/message/binding - extended.json new file mode 100644 index 00000000..ec2374fc --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/message/binding - extended.json @@ -0,0 +1,11 @@ +{ + "bindingVersion" : "0.2.0", + "schema" : { + "name" : "projects/your-project/schemas/message-avro" + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/message/binding - wrongly extended.json new file mode 100644 index 00000000..68a8cce0 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/message/binding - wrongly extended.json @@ -0,0 +1,12 @@ +{ + "schema": { + "name": "projects/your-project/schemas/message-avro" + }, + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/message/binding.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/message/binding.json new file mode 100644 index 00000000..019f3cb3 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/message/binding.json @@ -0,0 +1,6 @@ +{ + "schema": { + "name": "projects/your-project/schemas/message-avro" + }, + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/operation/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/operation/binding - wrongly extended.json new file mode 100644 index 00000000..18560ee8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/operation/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/operation/binding.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/operation/binding.json new file mode 100644 index 00000000..cdf165f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/operation/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/server/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/server/binding - wrongly extended.json new file mode 100644 index 00000000..18560ee8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/server/binding.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/server/binding.json new file mode 100644 index 00000000..cdf165f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/latest/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/channel/binding - extended.json new file mode 100644 index 00000000..f6261e2e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/channel/binding - extended.json @@ -0,0 +1,16 @@ +{ + "bindingVersion" : "0.2.0", + "messageRetentionDuration" : "86400s", + "messageStoragePolicy" : { + "allowedPersistenceRegions" : [ "us-central1", "us-central2", "us-east1", "us-east4", "us-east5", "us-east7", "us-south1", "us-west1", "us-west2", "us-west3", "us-west4" ] + }, + "schemaSettings" : { + "encoding" : "binary", + "name" : "projects/your-project/schemas/message-proto" + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..e1ec6296 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/channel/binding - wrongly extended.json @@ -0,0 +1,29 @@ +{ + "messageRetentionDuration": "86400s", + "messageStoragePolicy": { + "allowedPersistenceRegions": [ + "us-central1", + "us-central2", + "us-east1", + "us-east4", + "us-east5", + "us-east7", + "us-south1", + "us-west1", + "us-west2", + "us-west3", + "us-west4" + ] + }, + "schemaSettings": { + "encoding": "binary", + "name": "projects/your-project/schemas/message-proto" + }, + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/channel/binding.json new file mode 100644 index 00000000..631a6e21 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/channel/binding.json @@ -0,0 +1,23 @@ +{ + "messageRetentionDuration": "86400s", + "messageStoragePolicy": { + "allowedPersistenceRegions": [ + "us-central1", + "us-central2", + "us-east1", + "us-east4", + "us-east5", + "us-east7", + "us-south1", + "us-west1", + "us-west2", + "us-west3", + "us-west4" + ] + }, + "schemaSettings": { + "encoding": "binary", + "name": "projects/your-project/schemas/message-proto" + }, + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/message/binding - extended.json new file mode 100644 index 00000000..ec2374fc --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/message/binding - extended.json @@ -0,0 +1,11 @@ +{ + "bindingVersion" : "0.2.0", + "schema" : { + "name" : "projects/your-project/schemas/message-avro" + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/message/binding - wrongly extended.json new file mode 100644 index 00000000..93d61fd7 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/message/binding - wrongly extended.json @@ -0,0 +1,12 @@ +{ + "schema": { + "name": "projects/your-project/schemas/message-avro" + }, + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/message/binding.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/message/binding.json new file mode 100644 index 00000000..749b7ba0 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/message/binding.json @@ -0,0 +1,6 @@ +{ + "schema": { + "name": "projects/your-project/schemas/message-avro" + }, + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/operation/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..0dee3264 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/operation/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/operation/binding.json new file mode 100644 index 00000000..defc96bf --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/operation/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/server/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/server/binding - wrongly extended.json new file mode 100644 index 00000000..0dee3264 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/server/binding.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/server/binding.json new file mode 100644 index 00000000..defc96bf --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/unknown version/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/channel/binding - extended.json new file mode 100644 index 00000000..f6261e2e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/channel/binding - extended.json @@ -0,0 +1,16 @@ +{ + "bindingVersion" : "0.2.0", + "messageRetentionDuration" : "86400s", + "messageStoragePolicy" : { + "allowedPersistenceRegions" : [ "us-central1", "us-central2", "us-east1", "us-east4", "us-east5", "us-east7", "us-south1", "us-west1", "us-west2", "us-west3", "us-west4" ] + }, + "schemaSettings" : { + "encoding" : "binary", + "name" : "projects/your-project/schemas/message-proto" + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..c62aa6d3 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/channel/binding - wrongly extended.json @@ -0,0 +1,28 @@ +{ + "messageRetentionDuration": "86400s", + "messageStoragePolicy": { + "allowedPersistenceRegions": [ + "us-central1", + "us-central2", + "us-east1", + "us-east4", + "us-east5", + "us-east7", + "us-south1", + "us-west1", + "us-west2", + "us-west3", + "us-west4" + ] + }, + "schemaSettings": { + "encoding": "binary", + "name": "projects/your-project/schemas/message-proto" + }, + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/channel/binding.json new file mode 100644 index 00000000..559ff61c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/channel/binding.json @@ -0,0 +1,22 @@ +{ + "messageRetentionDuration": "86400s", + "messageStoragePolicy": { + "allowedPersistenceRegions": [ + "us-central1", + "us-central2", + "us-east1", + "us-east4", + "us-east5", + "us-east7", + "us-south1", + "us-west1", + "us-west2", + "us-west3", + "us-west4" + ] + }, + "schemaSettings": { + "encoding": "binary", + "name": "projects/your-project/schemas/message-proto" + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/message/binding - extended.json new file mode 100644 index 00000000..ec2374fc --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/message/binding - extended.json @@ -0,0 +1,11 @@ +{ + "bindingVersion" : "0.2.0", + "schema" : { + "name" : "projects/your-project/schemas/message-avro" + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/message/binding - wrongly extended.json new file mode 100644 index 00000000..239ed2c0 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/message/binding - wrongly extended.json @@ -0,0 +1,11 @@ +{ + "schema": { + "name": "projects/your-project/schemas/message-avro" + }, + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/message/binding.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/message/binding.json new file mode 100644 index 00000000..9b23d2c6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/message/binding.json @@ -0,0 +1,5 @@ +{ + "schema": { + "name": "projects/your-project/schemas/message-avro" + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/operation/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/operation/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/operation/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/operation/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/server/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/server/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/server/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/server/binding.json b/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/server/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/googlepubsub/without version/server/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/0.1.0/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/http/0.1.0/channel/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.1.0/channel/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/0.1.0/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/http/0.1.0/channel/binding - wrongly extended.json new file mode 100644 index 00000000..a1ecfd51 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.1.0/channel/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/0.1.0/channel/binding.json b/asyncapi-core/src/test/resources/bindings/http/0.1.0/channel/binding.json new file mode 100644 index 00000000..04dbf945 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.1.0/channel/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/0.1.0/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/http/0.1.0/message/binding - extended.json new file mode 100644 index 00000000..7328908b --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.1.0/message/binding - extended.json @@ -0,0 +1,17 @@ +{ + "bindingVersion" : "0.1.0", + "headers" : { + "type" : "object", + "properties" : { + "Content-Type" : { + "type" : "string", + "enum" : [ "application/json" ] + } + } + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/message/http/httpMessageBinding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/http/0.1.0/message/binding - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/message/http/httpMessageBinding - wrongly extended.json rename to asyncapi-core/src/test/resources/bindings/http/0.1.0/message/binding - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/binding/message/http/httpMessageBinding.json b/asyncapi-core/src/test/resources/bindings/http/0.1.0/message/binding.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/message/http/httpMessageBinding.json rename to asyncapi-core/src/test/resources/bindings/http/0.1.0/message/binding.json diff --git a/asyncapi-core/src/test/resources/bindings/http/0.1.0/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/http/0.1.0/operation/binding - extended.json new file mode 100644 index 00000000..ed626226 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.1.0/operation/binding - extended.json @@ -0,0 +1,22 @@ +{ + "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 + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/operation/http/httpOperationBinding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/http/0.1.0/operation/binding - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/operation/http/httpOperationBinding - wrongly extended.json rename to asyncapi-core/src/test/resources/bindings/http/0.1.0/operation/binding - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/binding/operation/http/httpOperationBinding.json b/asyncapi-core/src/test/resources/bindings/http/0.1.0/operation/binding.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/operation/http/httpOperationBinding.json rename to asyncapi-core/src/test/resources/bindings/http/0.1.0/operation/binding.json diff --git a/asyncapi-core/src/test/resources/bindings/http/0.1.0/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/http/0.1.0/server/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.1.0/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/0.1.0/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/http/0.1.0/server/binding - wrongly extended.json new file mode 100644 index 00000000..a1ecfd51 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.1.0/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/0.1.0/server/binding.json b/asyncapi-core/src/test/resources/bindings/http/0.1.0/server/binding.json new file mode 100644 index 00000000..04dbf945 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.1.0/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/0.2.0/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/http/0.2.0/channel/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.2.0/channel/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/0.2.0/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/http/0.2.0/channel/binding - wrongly extended.json new file mode 100644 index 00000000..1cb38f9c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.2.0/channel/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.2.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/0.2.0/channel/binding.json b/asyncapi-core/src/test/resources/bindings/http/0.2.0/channel/binding.json new file mode 100644 index 00000000..a22565a8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.2.0/channel/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.2.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/0.2.0/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/http/0.2.0/message/binding - extended.json new file mode 100644 index 00000000..da145ec9 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.2.0/message/binding - extended.json @@ -0,0 +1,17 @@ +{ + "bindingVersion" : "0.2.0", + "headers" : { + "type" : "object", + "properties" : { + "Content-Type" : { + "type" : "string", + "enum" : [ "application/json" ] + } + } + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/0.2.0/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/http/0.2.0/message/binding - wrongly extended.json new file mode 100644 index 00000000..8a7a3e9f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.2.0/message/binding - wrongly extended.json @@ -0,0 +1,20 @@ +{ + "headers": { + "type": "object", + "properties": { + "Content-Type": { + "type": "string", + "enum": [ + "application/json" + ] + } + } + }, + "bindingVersion": "0.2.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/0.2.0/message/binding.json b/asyncapi-core/src/test/resources/bindings/http/0.2.0/message/binding.json new file mode 100644 index 00000000..db63292c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.2.0/message/binding.json @@ -0,0 +1,14 @@ +{ + "headers": { + "type": "object", + "properties": { + "Content-Type": { + "type": "string", + "enum": [ + "application/json" + ] + } + } + }, + "bindingVersion": "0.2.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/0.2.0/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/http/0.2.0/operation/binding - extended.json new file mode 100644 index 00000000..53f3fd82 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.2.0/operation/binding - extended.json @@ -0,0 +1,21 @@ +{ + "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 + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/0.2.0/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/http/0.2.0/operation/binding - wrongly extended.json new file mode 100644 index 00000000..01e319f5 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.2.0/operation/binding - wrongly extended.json @@ -0,0 +1,24 @@ +{ + "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", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/0.2.0/operation/binding.json b/asyncapi-core/src/test/resources/bindings/http/0.2.0/operation/binding.json new file mode 100644 index 00000000..0cd59c15 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.2.0/operation/binding.json @@ -0,0 +1,18 @@ +{ + "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" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/0.2.0/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/http/0.2.0/server/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.2.0/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/0.2.0/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/http/0.2.0/server/binding - wrongly extended.json new file mode 100644 index 00000000..1cb38f9c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.2.0/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.2.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/0.2.0/server/binding.json b/asyncapi-core/src/test/resources/bindings/http/0.2.0/server/binding.json new file mode 100644 index 00000000..a22565a8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.2.0/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.2.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/0.3.0/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/http/0.3.0/channel/binding - extended.json new file mode 100644 index 00000000..8310c9d6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.3.0/channel/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.3.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/0.3.0/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/http/0.3.0/channel/binding - wrongly extended.json new file mode 100644 index 00000000..943a1361 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.3.0/channel/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.3.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/0.3.0/channel/binding.json b/asyncapi-core/src/test/resources/bindings/http/0.3.0/channel/binding.json new file mode 100644 index 00000000..4c2843f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.3.0/channel/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.3.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/0.3.0/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/http/0.3.0/message/binding - extended.json new file mode 100644 index 00000000..04ea597e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.3.0/message/binding - extended.json @@ -0,0 +1,18 @@ +{ + "bindingVersion" : "0.3.0", + "headers" : { + "type" : "object", + "properties" : { + "Content-Type" : { + "type" : "string", + "enum" : [ "application/json" ] + } + } + }, + "statusCode" : 200, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/0.3.0/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/http/0.3.0/message/binding - wrongly extended.json new file mode 100644 index 00000000..6713a48d --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.3.0/message/binding - wrongly extended.json @@ -0,0 +1,21 @@ +{ + "headers": { + "type": "object", + "properties": { + "Content-Type": { + "type": "string", + "enum": [ + "application/json" + ] + } + } + }, + "statusCode": 200, + "bindingVersion": "0.3.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/0.3.0/message/binding.json b/asyncapi-core/src/test/resources/bindings/http/0.3.0/message/binding.json new file mode 100644 index 00000000..252654a3 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.3.0/message/binding.json @@ -0,0 +1,15 @@ +{ + "headers": { + "type": "object", + "properties": { + "Content-Type": { + "type": "string", + "enum": [ + "application/json" + ] + } + } + }, + "statusCode": 200, + "bindingVersion": "0.3.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/0.3.0/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/http/0.3.0/operation/binding - extended.json new file mode 100644 index 00000000..af380825 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.3.0/operation/binding - extended.json @@ -0,0 +1,21 @@ +{ + "bindingVersion" : "0.3.0", + "method" : "GET", + "query" : { + "type" : "object", + "required" : [ "companyId" ], + "properties" : { + "companyId" : { + "type" : "number", + "minimum" : 1, + "description" : "The Id of the company." + } + }, + "additionalProperties" : false + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/0.3.0/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/http/0.3.0/operation/binding - wrongly extended.json new file mode 100644 index 00000000..856e3480 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.3.0/operation/binding - wrongly extended.json @@ -0,0 +1,24 @@ +{ + "method": "GET", + "query": { + "type": "object", + "required": [ + "companyId" + ], + "properties": { + "companyId": { + "type": "number", + "minimum": 1, + "description": "The Id of the company." + } + }, + "additionalProperties": false + }, + "bindingVersion": "0.3.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/0.3.0/operation/binding.json b/asyncapi-core/src/test/resources/bindings/http/0.3.0/operation/binding.json new file mode 100644 index 00000000..90841995 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.3.0/operation/binding.json @@ -0,0 +1,18 @@ +{ + "method": "GET", + "query": { + "type": "object", + "required": [ + "companyId" + ], + "properties": { + "companyId": { + "type": "number", + "minimum": 1, + "description": "The Id of the company." + } + }, + "additionalProperties": false + }, + "bindingVersion": "0.3.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/0.3.0/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/http/0.3.0/server/binding - extended.json new file mode 100644 index 00000000..8310c9d6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.3.0/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.3.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/0.3.0/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/http/0.3.0/server/binding - wrongly extended.json new file mode 100644 index 00000000..943a1361 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.3.0/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.3.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/0.3.0/server/binding.json b/asyncapi-core/src/test/resources/bindings/http/0.3.0/server/binding.json new file mode 100644 index 00000000..4c2843f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/0.3.0/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.3.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/latest/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/http/latest/channel/binding - extended.json new file mode 100644 index 00000000..8310c9d6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/latest/channel/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.3.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/latest/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/http/latest/channel/binding - wrongly extended.json new file mode 100644 index 00000000..18560ee8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/latest/channel/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/latest/channel/binding.json b/asyncapi-core/src/test/resources/bindings/http/latest/channel/binding.json new file mode 100644 index 00000000..cdf165f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/latest/channel/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/latest/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/http/latest/message/binding - extended.json new file mode 100644 index 00000000..04ea597e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/latest/message/binding - extended.json @@ -0,0 +1,18 @@ +{ + "bindingVersion" : "0.3.0", + "headers" : { + "type" : "object", + "properties" : { + "Content-Type" : { + "type" : "string", + "enum" : [ "application/json" ] + } + } + }, + "statusCode" : 200, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/latest/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/http/latest/message/binding - wrongly extended.json new file mode 100644 index 00000000..0ac43781 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/latest/message/binding - wrongly extended.json @@ -0,0 +1,21 @@ +{ + "headers": { + "type": "object", + "properties": { + "Content-Type": { + "type": "string", + "enum": [ + "application/json" + ] + } + } + }, + "statusCode": 200, + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/latest/message/binding.json b/asyncapi-core/src/test/resources/bindings/http/latest/message/binding.json new file mode 100644 index 00000000..a9a9a5fa --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/latest/message/binding.json @@ -0,0 +1,15 @@ +{ + "headers": { + "type": "object", + "properties": { + "Content-Type": { + "type": "string", + "enum": [ + "application/json" + ] + } + } + }, + "statusCode": 200, + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/latest/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/http/latest/operation/binding - extended.json new file mode 100644 index 00000000..af380825 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/latest/operation/binding - extended.json @@ -0,0 +1,21 @@ +{ + "bindingVersion" : "0.3.0", + "method" : "GET", + "query" : { + "type" : "object", + "required" : [ "companyId" ], + "properties" : { + "companyId" : { + "type" : "number", + "minimum" : 1, + "description" : "The Id of the company." + } + }, + "additionalProperties" : false + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/latest/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/http/latest/operation/binding - wrongly extended.json new file mode 100644 index 00000000..70ad77e6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/latest/operation/binding - wrongly extended.json @@ -0,0 +1,24 @@ +{ + "method": "GET", + "query": { + "type": "object", + "required": [ + "companyId" + ], + "properties": { + "companyId": { + "type": "number", + "minimum": 1, + "description": "The Id of the company." + } + }, + "additionalProperties": false + }, + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/latest/operation/binding.json b/asyncapi-core/src/test/resources/bindings/http/latest/operation/binding.json new file mode 100644 index 00000000..ee1efe89 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/latest/operation/binding.json @@ -0,0 +1,18 @@ +{ + "method": "GET", + "query": { + "type": "object", + "required": [ + "companyId" + ], + "properties": { + "companyId": { + "type": "number", + "minimum": 1, + "description": "The Id of the company." + } + }, + "additionalProperties": false + }, + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/latest/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/http/latest/server/binding - extended.json new file mode 100644 index 00000000..8310c9d6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/latest/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.3.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/latest/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/http/latest/server/binding - wrongly extended.json new file mode 100644 index 00000000..18560ee8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/latest/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/latest/server/binding.json b/asyncapi-core/src/test/resources/bindings/http/latest/server/binding.json new file mode 100644 index 00000000..cdf165f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/latest/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/unknown version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/http/unknown version/channel/binding - extended.json new file mode 100644 index 00000000..8310c9d6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/unknown version/channel/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.3.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/unknown version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/http/unknown version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..0dee3264 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/unknown version/channel/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/unknown version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/http/unknown version/channel/binding.json new file mode 100644 index 00000000..defc96bf --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/unknown version/channel/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/unknown version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/http/unknown version/message/binding - extended.json new file mode 100644 index 00000000..04ea597e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/unknown version/message/binding - extended.json @@ -0,0 +1,18 @@ +{ + "bindingVersion" : "0.3.0", + "headers" : { + "type" : "object", + "properties" : { + "Content-Type" : { + "type" : "string", + "enum" : [ "application/json" ] + } + } + }, + "statusCode" : 200, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/unknown version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/http/unknown version/message/binding - wrongly extended.json new file mode 100644 index 00000000..ed22e53c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/unknown version/message/binding - wrongly extended.json @@ -0,0 +1,21 @@ +{ + "headers": { + "type": "object", + "properties": { + "Content-Type": { + "type": "string", + "enum": [ + "application/json" + ] + } + } + }, + "statusCode": 200, + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/unknown version/message/binding.json b/asyncapi-core/src/test/resources/bindings/http/unknown version/message/binding.json new file mode 100644 index 00000000..f98355ec --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/unknown version/message/binding.json @@ -0,0 +1,15 @@ +{ + "headers": { + "type": "object", + "properties": { + "Content-Type": { + "type": "string", + "enum": [ + "application/json" + ] + } + } + }, + "statusCode": 200, + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/unknown version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/http/unknown version/operation/binding - extended.json new file mode 100644 index 00000000..af380825 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/unknown version/operation/binding - extended.json @@ -0,0 +1,21 @@ +{ + "bindingVersion" : "0.3.0", + "method" : "GET", + "query" : { + "type" : "object", + "required" : [ "companyId" ], + "properties" : { + "companyId" : { + "type" : "number", + "minimum" : 1, + "description" : "The Id of the company." + } + }, + "additionalProperties" : false + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/unknown version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/http/unknown version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..ad5af93b --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/unknown version/operation/binding - wrongly extended.json @@ -0,0 +1,24 @@ +{ + "method": "GET", + "query": { + "type": "object", + "required": [ + "companyId" + ], + "properties": { + "companyId": { + "type": "number", + "minimum": 1, + "description": "The Id of the company." + } + }, + "additionalProperties": false + }, + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/unknown version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/http/unknown version/operation/binding.json new file mode 100644 index 00000000..ff6535d0 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/unknown version/operation/binding.json @@ -0,0 +1,18 @@ +{ + "method": "GET", + "query": { + "type": "object", + "required": [ + "companyId" + ], + "properties": { + "companyId": { + "type": "number", + "minimum": 1, + "description": "The Id of the company." + } + }, + "additionalProperties": false + }, + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/unknown version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/http/unknown version/server/binding - extended.json new file mode 100644 index 00000000..8310c9d6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/unknown version/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.3.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/unknown version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/http/unknown version/server/binding - wrongly extended.json new file mode 100644 index 00000000..0dee3264 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/unknown version/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/unknown version/server/binding.json b/asyncapi-core/src/test/resources/bindings/http/unknown version/server/binding.json new file mode 100644 index 00000000..defc96bf --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/unknown version/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/without version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/http/without version/channel/binding - extended.json new file mode 100644 index 00000000..8310c9d6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/without version/channel/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.3.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/without version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/http/without version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/without version/channel/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/without version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/http/without version/channel/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/without version/channel/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/without version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/http/without version/message/binding - extended.json new file mode 100644 index 00000000..04ea597e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/without version/message/binding - extended.json @@ -0,0 +1,18 @@ +{ + "bindingVersion" : "0.3.0", + "headers" : { + "type" : "object", + "properties" : { + "Content-Type" : { + "type" : "string", + "enum" : [ "application/json" ] + } + } + }, + "statusCode" : 200, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/without version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/http/without version/message/binding - wrongly extended.json new file mode 100644 index 00000000..6f2aff25 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/without version/message/binding - wrongly extended.json @@ -0,0 +1,20 @@ +{ + "headers": { + "type": "object", + "properties": { + "Content-Type": { + "type": "string", + "enum": [ + "application/json" + ] + } + } + }, + "statusCode": 200, + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/without version/message/binding.json b/asyncapi-core/src/test/resources/bindings/http/without version/message/binding.json new file mode 100644 index 00000000..c498550c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/without version/message/binding.json @@ -0,0 +1,14 @@ +{ + "headers": { + "type": "object", + "properties": { + "Content-Type": { + "type": "string", + "enum": [ + "application/json" + ] + } + } + }, + "statusCode": 200 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/without version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/http/without version/operation/binding - extended.json new file mode 100644 index 00000000..af380825 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/without version/operation/binding - extended.json @@ -0,0 +1,21 @@ +{ + "bindingVersion" : "0.3.0", + "method" : "GET", + "query" : { + "type" : "object", + "required" : [ "companyId" ], + "properties" : { + "companyId" : { + "type" : "number", + "minimum" : 1, + "description" : "The Id of the company." + } + }, + "additionalProperties" : false + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/without version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/http/without version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..3fdbe609 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/without version/operation/binding - wrongly extended.json @@ -0,0 +1,23 @@ +{ + "method": "GET", + "query": { + "type": "object", + "required": [ + "companyId" + ], + "properties": { + "companyId": { + "type": "number", + "minimum": 1, + "description": "The Id of the company." + } + }, + "additionalProperties": false + }, + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/without version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/http/without version/operation/binding.json new file mode 100644 index 00000000..d2da9b72 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/without version/operation/binding.json @@ -0,0 +1,17 @@ +{ + "method": "GET", + "query": { + "type": "object", + "required": [ + "companyId" + ], + "properties": { + "companyId": { + "type": "number", + "minimum": 1, + "description": "The Id of the company." + } + }, + "additionalProperties": false + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/without version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/http/without version/server/binding - extended.json new file mode 100644 index 00000000..8310c9d6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/without version/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.3.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/without version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/http/without version/server/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/without version/server/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/http/without version/server/binding.json b/asyncapi-core/src/test/resources/bindings/http/without version/server/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/http/without version/server/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/0.1.0/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/0.1.0/channel/binding - extended.json new file mode 100644 index 00000000..f3e6ae31 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/0.1.0/channel/binding - extended.json @@ -0,0 +1,21 @@ +{ + "bindingVersion" : "0.1.0", + "destinationType" : "topic", + "queue" : { + "objectName" : "message", + "isPartitioned" : false, + "exclusive" : true + }, + "topic" : { + "string" : "messages", + "objectName" : "message", + "durablePermitted" : true, + "lastMsgRetained" : true + }, + "maxMsgLength" : 1024, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/channel/ibmmq/ibmMQChannelBinding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/0.1.0/channel/binding - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/channel/ibmmq/ibmMQChannelBinding - wrongly extended.json rename to asyncapi-core/src/test/resources/bindings/ibmmq/0.1.0/channel/binding - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/binding/channel/ibmmq/ibmMQChannelBinding.json b/asyncapi-core/src/test/resources/bindings/ibmmq/0.1.0/channel/binding.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/channel/ibmmq/ibmMQChannelBinding.json rename to asyncapi-core/src/test/resources/bindings/ibmmq/0.1.0/channel/binding.json diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/0.1.0/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/0.1.0/message/binding - extended.json new file mode 100644 index 00000000..ff8bc475 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/0.1.0/message/binding - extended.json @@ -0,0 +1,12 @@ +{ + "bindingVersion" : "0.1.0", + "type" : "jms", + "headers" : "Content-Type: application/json", + "description" : "JMS stream message", + "expiry" : 0, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/message/ibmmq/ibmMQMessageBinding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/0.1.0/message/binding - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/message/ibmmq/ibmMQMessageBinding - wrongly extended.json rename to asyncapi-core/src/test/resources/bindings/ibmmq/0.1.0/message/binding - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/binding/message/ibmmq/ibmMQMessageBinding.json b/asyncapi-core/src/test/resources/bindings/ibmmq/0.1.0/message/binding.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/message/ibmmq/ibmMQMessageBinding.json rename to asyncapi-core/src/test/resources/bindings/ibmmq/0.1.0/message/binding.json diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/0.1.0/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/0.1.0/operation/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/0.1.0/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/0.1.0/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/0.1.0/operation/binding - wrongly extended.json new file mode 100644 index 00000000..a1ecfd51 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/0.1.0/operation/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/0.1.0/operation/binding.json b/asyncapi-core/src/test/resources/bindings/ibmmq/0.1.0/operation/binding.json new file mode 100644 index 00000000..04dbf945 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/0.1.0/operation/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/0.1.0/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/0.1.0/server/binding - extended.json new file mode 100644 index 00000000..ef2ad7e5 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/0.1.0/server/binding - extended.json @@ -0,0 +1,13 @@ +{ + "bindingVersion" : "0.1.0", + "groupId" : "PRODCLSTR1", + "ccdtQueueManagerName" : "*", + "cipherSpec" : "ANY_TLS12_OR_HIGHER", + "multiEndpointServer" : false, + "heartBeatInterval" : 300, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/server/ibmmq/ibmmqServerBinding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/0.1.0/server/binding - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/server/ibmmq/ibmmqServerBinding - wrongly extended.json rename to asyncapi-core/src/test/resources/bindings/ibmmq/0.1.0/server/binding - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/binding/server/ibmmq/ibmmqServerBinding.json b/asyncapi-core/src/test/resources/bindings/ibmmq/0.1.0/server/binding.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/server/ibmmq/ibmmqServerBinding.json rename to asyncapi-core/src/test/resources/bindings/ibmmq/0.1.0/server/binding.json diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/latest/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/latest/channel/binding - extended.json new file mode 100644 index 00000000..f3e6ae31 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/latest/channel/binding - extended.json @@ -0,0 +1,21 @@ +{ + "bindingVersion" : "0.1.0", + "destinationType" : "topic", + "queue" : { + "objectName" : "message", + "isPartitioned" : false, + "exclusive" : true + }, + "topic" : { + "string" : "messages", + "objectName" : "message", + "durablePermitted" : true, + "lastMsgRetained" : true + }, + "maxMsgLength" : 1024, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/latest/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/latest/channel/binding - wrongly extended.json new file mode 100644 index 00000000..130861da --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/latest/channel/binding - wrongly extended.json @@ -0,0 +1,22 @@ +{ + "destinationType": "topic", + "queue": { + "objectName": "message", + "isPartitioned": false, + "exclusive": true + }, + "topic": { + "string": "messages", + "objectName": "message", + "durablePermitted": true, + "lastMsgRetained": true + }, + "maxMsgLength": 1024, + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/latest/channel/binding.json b/asyncapi-core/src/test/resources/bindings/ibmmq/latest/channel/binding.json new file mode 100644 index 00000000..e1c8cc11 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/latest/channel/binding.json @@ -0,0 +1,16 @@ +{ + "destinationType": "topic", + "queue": { + "objectName": "message", + "isPartitioned": false, + "exclusive": true + }, + "topic": { + "string": "messages", + "objectName": "message", + "durablePermitted": true, + "lastMsgRetained": true + }, + "maxMsgLength": 1024, + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/latest/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/latest/message/binding - extended.json new file mode 100644 index 00000000..ff8bc475 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/latest/message/binding - extended.json @@ -0,0 +1,12 @@ +{ + "bindingVersion" : "0.1.0", + "type" : "jms", + "headers" : "Content-Type: application/json", + "description" : "JMS stream message", + "expiry" : 0, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/latest/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/latest/message/binding - wrongly extended.json new file mode 100644 index 00000000..1574a122 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/latest/message/binding - wrongly extended.json @@ -0,0 +1,13 @@ +{ + "type": "jms", + "description": "JMS stream message", + "headers": "Content-Type: application/json", + "expiry": 0, + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/latest/message/binding.json b/asyncapi-core/src/test/resources/bindings/ibmmq/latest/message/binding.json new file mode 100644 index 00000000..3a349df2 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/latest/message/binding.json @@ -0,0 +1,7 @@ +{ + "type": "jms", + "description": "JMS stream message", + "headers": "Content-Type: application/json", + "expiry": 0, + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/latest/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/latest/operation/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/latest/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/latest/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/latest/operation/binding - wrongly extended.json new file mode 100644 index 00000000..18560ee8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/latest/operation/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/latest/operation/binding.json b/asyncapi-core/src/test/resources/bindings/ibmmq/latest/operation/binding.json new file mode 100644 index 00000000..cdf165f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/latest/operation/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/latest/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/latest/server/binding - extended.json new file mode 100644 index 00000000..ef2ad7e5 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/latest/server/binding - extended.json @@ -0,0 +1,13 @@ +{ + "bindingVersion" : "0.1.0", + "groupId" : "PRODCLSTR1", + "ccdtQueueManagerName" : "*", + "cipherSpec" : "ANY_TLS12_OR_HIGHER", + "multiEndpointServer" : false, + "heartBeatInterval" : 300, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/latest/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/latest/server/binding - wrongly extended.json new file mode 100644 index 00000000..2afb5e18 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/latest/server/binding - wrongly extended.json @@ -0,0 +1,14 @@ +{ + "groupId": "PRODCLSTR1", + "ccdtQueueManagerName": "*", + "multiEndpointServer": false, + "heartBeatInterval": 300, + "cipherSpec": "ANY_TLS12_OR_HIGHER", + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/latest/server/binding.json b/asyncapi-core/src/test/resources/bindings/ibmmq/latest/server/binding.json new file mode 100644 index 00000000..85141cce --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/latest/server/binding.json @@ -0,0 +1,8 @@ +{ + "groupId": "PRODCLSTR1", + "ccdtQueueManagerName": "*", + "multiEndpointServer": false, + "heartBeatInterval": 300, + "cipherSpec": "ANY_TLS12_OR_HIGHER", + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/channel/binding - extended.json new file mode 100644 index 00000000..f3e6ae31 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/channel/binding - extended.json @@ -0,0 +1,21 @@ +{ + "bindingVersion" : "0.1.0", + "destinationType" : "topic", + "queue" : { + "objectName" : "message", + "isPartitioned" : false, + "exclusive" : true + }, + "topic" : { + "string" : "messages", + "objectName" : "message", + "durablePermitted" : true, + "lastMsgRetained" : true + }, + "maxMsgLength" : 1024, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..bcb60484 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/channel/binding - wrongly extended.json @@ -0,0 +1,22 @@ +{ + "destinationType": "topic", + "queue": { + "objectName": "message", + "isPartitioned": false, + "exclusive": true + }, + "topic": { + "string": "messages", + "objectName": "message", + "durablePermitted": true, + "lastMsgRetained": true + }, + "maxMsgLength": 1024, + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/channel/binding.json new file mode 100644 index 00000000..fc691575 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/channel/binding.json @@ -0,0 +1,16 @@ +{ + "destinationType": "topic", + "queue": { + "objectName": "message", + "isPartitioned": false, + "exclusive": true + }, + "topic": { + "string": "messages", + "objectName": "message", + "durablePermitted": true, + "lastMsgRetained": true + }, + "maxMsgLength": 1024, + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/message/binding - extended.json new file mode 100644 index 00000000..ff8bc475 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/message/binding - extended.json @@ -0,0 +1,12 @@ +{ + "bindingVersion" : "0.1.0", + "type" : "jms", + "headers" : "Content-Type: application/json", + "description" : "JMS stream message", + "expiry" : 0, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/message/binding - wrongly extended.json new file mode 100644 index 00000000..7c8d3491 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/message/binding - wrongly extended.json @@ -0,0 +1,13 @@ +{ + "type": "jms", + "description": "JMS stream message", + "headers": "Content-Type: application/json", + "expiry": 0, + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/message/binding.json b/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/message/binding.json new file mode 100644 index 00000000..8d85dd78 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/message/binding.json @@ -0,0 +1,7 @@ +{ + "type": "jms", + "description": "JMS stream message", + "headers": "Content-Type: application/json", + "expiry": 0, + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/operation/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..0dee3264 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/operation/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/operation/binding.json new file mode 100644 index 00000000..defc96bf --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/operation/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/server/binding - extended.json new file mode 100644 index 00000000..ef2ad7e5 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/server/binding - extended.json @@ -0,0 +1,13 @@ +{ + "bindingVersion" : "0.1.0", + "groupId" : "PRODCLSTR1", + "ccdtQueueManagerName" : "*", + "cipherSpec" : "ANY_TLS12_OR_HIGHER", + "multiEndpointServer" : false, + "heartBeatInterval" : 300, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/server/binding - wrongly extended.json new file mode 100644 index 00000000..f5b67bfa --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/server/binding - wrongly extended.json @@ -0,0 +1,14 @@ +{ + "groupId": "PRODCLSTR1", + "ccdtQueueManagerName": "*", + "multiEndpointServer": false, + "heartBeatInterval": 300, + "cipherSpec": "ANY_TLS12_OR_HIGHER", + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/server/binding.json b/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/server/binding.json new file mode 100644 index 00000000..fe58c091 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/unknown version/server/binding.json @@ -0,0 +1,8 @@ +{ + "groupId": "PRODCLSTR1", + "ccdtQueueManagerName": "*", + "multiEndpointServer": false, + "heartBeatInterval": 300, + "cipherSpec": "ANY_TLS12_OR_HIGHER", + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/without version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/without version/channel/binding - extended.json new file mode 100644 index 00000000..f3e6ae31 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/without version/channel/binding - extended.json @@ -0,0 +1,21 @@ +{ + "bindingVersion" : "0.1.0", + "destinationType" : "topic", + "queue" : { + "objectName" : "message", + "isPartitioned" : false, + "exclusive" : true + }, + "topic" : { + "string" : "messages", + "objectName" : "message", + "durablePermitted" : true, + "lastMsgRetained" : true + }, + "maxMsgLength" : 1024, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/without version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/without version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..de15130c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/without version/channel/binding - wrongly extended.json @@ -0,0 +1,21 @@ +{ + "destinationType": "topic", + "queue": { + "objectName": "message", + "isPartitioned": false, + "exclusive": true + }, + "topic": { + "string": "messages", + "objectName": "message", + "durablePermitted": true, + "lastMsgRetained": true + }, + "maxMsgLength": 1024, + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/without version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/ibmmq/without version/channel/binding.json new file mode 100644 index 00000000..4d1e1c7e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/without version/channel/binding.json @@ -0,0 +1,15 @@ +{ + "destinationType": "topic", + "queue": { + "objectName": "message", + "isPartitioned": false, + "exclusive": true + }, + "topic": { + "string": "messages", + "objectName": "message", + "durablePermitted": true, + "lastMsgRetained": true + }, + "maxMsgLength": 1024 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/without version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/without version/message/binding - extended.json new file mode 100644 index 00000000..ff8bc475 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/without version/message/binding - extended.json @@ -0,0 +1,12 @@ +{ + "bindingVersion" : "0.1.0", + "type" : "jms", + "headers" : "Content-Type: application/json", + "description" : "JMS stream message", + "expiry" : 0, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/without version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/without version/message/binding - wrongly extended.json new file mode 100644 index 00000000..96a0f6a9 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/without version/message/binding - wrongly extended.json @@ -0,0 +1,12 @@ +{ + "type": "jms", + "description": "JMS stream message", + "headers": "Content-Type: application/json", + "expiry": 0, + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/without version/message/binding.json b/asyncapi-core/src/test/resources/bindings/ibmmq/without version/message/binding.json new file mode 100644 index 00000000..b8d11da2 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/without version/message/binding.json @@ -0,0 +1,6 @@ +{ + "type": "jms", + "description": "JMS stream message", + "headers": "Content-Type: application/json", + "expiry": 0 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/without version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/without version/operation/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/without version/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/without version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/without version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/without version/operation/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/without version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/ibmmq/without version/operation/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/without version/operation/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/without version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/without version/server/binding - extended.json new file mode 100644 index 00000000..ef2ad7e5 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/without version/server/binding - extended.json @@ -0,0 +1,13 @@ +{ + "bindingVersion" : "0.1.0", + "groupId" : "PRODCLSTR1", + "ccdtQueueManagerName" : "*", + "cipherSpec" : "ANY_TLS12_OR_HIGHER", + "multiEndpointServer" : false, + "heartBeatInterval" : 300, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/without version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/ibmmq/without version/server/binding - wrongly extended.json new file mode 100644 index 00000000..968669a0 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/without version/server/binding - wrongly extended.json @@ -0,0 +1,13 @@ +{ + "groupId": "PRODCLSTR1", + "ccdtQueueManagerName": "*", + "multiEndpointServer": false, + "heartBeatInterval": 300, + "cipherSpec": "ANY_TLS12_OR_HIGHER", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/ibmmq/without version/server/binding.json b/asyncapi-core/src/test/resources/bindings/ibmmq/without version/server/binding.json new file mode 100644 index 00000000..4a81f8e8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/ibmmq/without version/server/binding.json @@ -0,0 +1,7 @@ +{ + "groupId": "PRODCLSTR1", + "ccdtQueueManagerName": "*", + "multiEndpointServer": false, + "heartBeatInterval": 300, + "cipherSpec": "ANY_TLS12_OR_HIGHER" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/0.0.1/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/jms/0.0.1/channel/binding - extended.json new file mode 100644 index 00000000..998357b8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/0.0.1/channel/binding - extended.json @@ -0,0 +1,10 @@ +{ + "bindingVersion" : "0.0.1", + "destination" : "user-signed-up", + "destinationType" : "fifo-queue", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/0.0.1/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/jms/0.0.1/channel/binding - wrongly extended.json new file mode 100644 index 00000000..ca744da4 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/0.0.1/channel/binding - wrongly extended.json @@ -0,0 +1,11 @@ +{ + "destination": "user-signed-up", + "destinationType": "fifo-queue", + "bindingVersion": "0.0.1", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/0.0.1/channel/binding.json b/asyncapi-core/src/test/resources/bindings/jms/0.0.1/channel/binding.json new file mode 100644 index 00000000..a9e0632a --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/0.0.1/channel/binding.json @@ -0,0 +1,5 @@ +{ + "destination": "user-signed-up", + "destinationType": "fifo-queue", + "bindingVersion": "0.0.1" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/0.0.1/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/jms/0.0.1/message/binding - extended.json new file mode 100644 index 00000000..5fb29ddb --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/0.0.1/message/binding - extended.json @@ -0,0 +1,49 @@ +{ + "bindingVersion" : "0.0.1", + "headers" : { + "type" : "object", + "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." + }, + "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" + }, + "JMSPriority" : { + "type" : "integer", + "description" : "The priority of the message. This may be set by your JMS Provider on your behalf.", + "default" : 4 + }, + "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." + }, + "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." + }, + "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." + }, + "JMSReplyTo" : { + "type" : "string", + "description" : "The queue or topic that the message sender expects replies to." + } + } + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/0.0.1/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/jms/0.0.1/message/binding - wrongly extended.json new file mode 100644 index 00000000..305c86d1 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/0.0.1/message/binding - wrongly extended.json @@ -0,0 +1,50 @@ +{ + "headers": { + "type": "object", + "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." + }, + "JMSDeliveryMode": { + "type": "string", + "enum": ["PERSISTENT", "NON_PERSISTENT"], + "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." + }, + "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." + }, + "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." + }, + "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." + }, + "JMSReplyTo": { + "type": "string", + "description": "The queue or topic that the message sender expects replies to." + } + } + }, + "bindingVersion": "0.0.1", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/0.0.1/message/binding.json b/asyncapi-core/src/test/resources/bindings/jms/0.0.1/message/binding.json new file mode 100644 index 00000000..5f36456a --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/0.0.1/message/binding.json @@ -0,0 +1,44 @@ +{ + "headers": { + "type": "object", + "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." + }, + "JMSDeliveryMode": { + "type": "string", + "enum": ["PERSISTENT", "NON_PERSISTENT"], + "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." + }, + "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." + }, + "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." + }, + "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." + }, + "JMSReplyTo": { + "type": "string", + "description": "The queue or topic that the message sender expects replies to." + } + } + }, + "bindingVersion": "0.0.1" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/0.0.1/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/jms/0.0.1/operation/binding - extended.json new file mode 100644 index 00000000..de3a5262 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/0.0.1/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.0.1", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/0.0.1/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/jms/0.0.1/operation/binding - wrongly extended.json new file mode 100644 index 00000000..e060a0ea --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/0.0.1/operation/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.0.1", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/0.0.1/operation/binding.json b/asyncapi-core/src/test/resources/bindings/jms/0.0.1/operation/binding.json new file mode 100644 index 00000000..be81020d --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/0.0.1/operation/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.0.1" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/0.0.1/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/jms/0.0.1/server/binding - extended.json new file mode 100644 index 00000000..c160c064 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/0.0.1/server/binding - extended.json @@ -0,0 +1,14 @@ +{ + "bindingVersion" : "0.0.1", + "jmsConnectionFactory" : "org.apache.activemq.ActiveMQConnectionFactory", + "properties" : [ { + "name" : "disableTimeStampsByDefault", + "value" : false + } ], + "clientID" : "my-application-1", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/0.0.1/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/jms/0.0.1/server/binding - wrongly extended.json new file mode 100644 index 00000000..d71c744e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/0.0.1/server/binding - wrongly extended.json @@ -0,0 +1,17 @@ +{ + "bindingVersion": "0.0.1", + "jmsConnectionFactory": "org.apache.activemq.ActiveMQConnectionFactory", + "properties": [ + { + "name": "disableTimeStampsByDefault", + "value": false + } + ], + "clientID": "my-application-1", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/0.0.1/server/binding.json b/asyncapi-core/src/test/resources/bindings/jms/0.0.1/server/binding.json new file mode 100644 index 00000000..0e2513db --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/0.0.1/server/binding.json @@ -0,0 +1,11 @@ +{ + "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/asyncapi-core/src/test/resources/bindings/jms/latest/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/jms/latest/channel/binding - extended.json new file mode 100644 index 00000000..998357b8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/latest/channel/binding - extended.json @@ -0,0 +1,10 @@ +{ + "bindingVersion" : "0.0.1", + "destination" : "user-signed-up", + "destinationType" : "fifo-queue", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/latest/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/jms/latest/channel/binding - wrongly extended.json new file mode 100644 index 00000000..3dea9472 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/latest/channel/binding - wrongly extended.json @@ -0,0 +1,11 @@ +{ + "destination": "user-signed-up", + "destinationType": "fifo-queue", + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/latest/channel/binding.json b/asyncapi-core/src/test/resources/bindings/jms/latest/channel/binding.json new file mode 100644 index 00000000..6766930e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/latest/channel/binding.json @@ -0,0 +1,5 @@ +{ + "destination": "user-signed-up", + "destinationType": "fifo-queue", + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/latest/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/jms/latest/message/binding - extended.json new file mode 100644 index 00000000..5fb29ddb --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/latest/message/binding - extended.json @@ -0,0 +1,49 @@ +{ + "bindingVersion" : "0.0.1", + "headers" : { + "type" : "object", + "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." + }, + "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" + }, + "JMSPriority" : { + "type" : "integer", + "description" : "The priority of the message. This may be set by your JMS Provider on your behalf.", + "default" : 4 + }, + "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." + }, + "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." + }, + "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." + }, + "JMSReplyTo" : { + "type" : "string", + "description" : "The queue or topic that the message sender expects replies to." + } + } + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/latest/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/jms/latest/message/binding - wrongly extended.json new file mode 100644 index 00000000..2b0c46de --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/latest/message/binding - wrongly extended.json @@ -0,0 +1,50 @@ +{ + "headers": { + "type": "object", + "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." + }, + "JMSDeliveryMode": { + "type": "string", + "enum": ["PERSISTENT", "NON_PERSISTENT"], + "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." + }, + "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." + }, + "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." + }, + "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." + }, + "JMSReplyTo": { + "type": "string", + "description": "The queue or topic that the message sender expects replies to." + } + } + }, + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/latest/message/binding.json b/asyncapi-core/src/test/resources/bindings/jms/latest/message/binding.json new file mode 100644 index 00000000..29c2de59 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/latest/message/binding.json @@ -0,0 +1,44 @@ +{ + "headers": { + "type": "object", + "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." + }, + "JMSDeliveryMode": { + "type": "string", + "enum": ["PERSISTENT", "NON_PERSISTENT"], + "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." + }, + "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." + }, + "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." + }, + "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." + }, + "JMSReplyTo": { + "type": "string", + "description": "The queue or topic that the message sender expects replies to." + } + } + }, + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/latest/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/jms/latest/operation/binding - extended.json new file mode 100644 index 00000000..de3a5262 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/latest/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.0.1", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/latest/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/jms/latest/operation/binding - wrongly extended.json new file mode 100644 index 00000000..18560ee8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/latest/operation/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/latest/operation/binding.json b/asyncapi-core/src/test/resources/bindings/jms/latest/operation/binding.json new file mode 100644 index 00000000..cdf165f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/latest/operation/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/latest/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/jms/latest/server/binding - extended.json new file mode 100644 index 00000000..c160c064 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/latest/server/binding - extended.json @@ -0,0 +1,14 @@ +{ + "bindingVersion" : "0.0.1", + "jmsConnectionFactory" : "org.apache.activemq.ActiveMQConnectionFactory", + "properties" : [ { + "name" : "disableTimeStampsByDefault", + "value" : false + } ], + "clientID" : "my-application-1", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/latest/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/jms/latest/server/binding - wrongly extended.json new file mode 100644 index 00000000..b24c037f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/latest/server/binding - wrongly extended.json @@ -0,0 +1,17 @@ +{ + "bindingVersion": "latest", + "jmsConnectionFactory": "org.apache.activemq.ActiveMQConnectionFactory", + "properties": [ + { + "name": "disableTimeStampsByDefault", + "value": false + } + ], + "clientID": "my-application-1", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/latest/server/binding.json b/asyncapi-core/src/test/resources/bindings/jms/latest/server/binding.json new file mode 100644 index 00000000..c6049001 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/latest/server/binding.json @@ -0,0 +1,11 @@ +{ + "jmsConnectionFactory": "org.apache.activemq.ActiveMQConnectionFactory", + "properties": [ + { + "name": "disableTimeStampsByDefault", + "value": false + } + ], + "clientID": "my-application-1", + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/unknown version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/jms/unknown version/channel/binding - extended.json new file mode 100644 index 00000000..998357b8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/unknown version/channel/binding - extended.json @@ -0,0 +1,10 @@ +{ + "bindingVersion" : "0.0.1", + "destination" : "user-signed-up", + "destinationType" : "fifo-queue", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/unknown version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/jms/unknown version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..0e34cef0 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/unknown version/channel/binding - wrongly extended.json @@ -0,0 +1,11 @@ +{ + "destination": "user-signed-up", + "destinationType": "fifo-queue", + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/unknown version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/jms/unknown version/channel/binding.json new file mode 100644 index 00000000..31e31eef --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/unknown version/channel/binding.json @@ -0,0 +1,5 @@ +{ + "destination": "user-signed-up", + "destinationType": "fifo-queue", + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/unknown version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/jms/unknown version/message/binding - extended.json new file mode 100644 index 00000000..5fb29ddb --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/unknown version/message/binding - extended.json @@ -0,0 +1,49 @@ +{ + "bindingVersion" : "0.0.1", + "headers" : { + "type" : "object", + "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." + }, + "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" + }, + "JMSPriority" : { + "type" : "integer", + "description" : "The priority of the message. This may be set by your JMS Provider on your behalf.", + "default" : 4 + }, + "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." + }, + "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." + }, + "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." + }, + "JMSReplyTo" : { + "type" : "string", + "description" : "The queue or topic that the message sender expects replies to." + } + } + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/unknown version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/jms/unknown version/message/binding - wrongly extended.json new file mode 100644 index 00000000..b56ec30c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/unknown version/message/binding - wrongly extended.json @@ -0,0 +1,50 @@ +{ + "headers": { + "type": "object", + "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." + }, + "JMSDeliveryMode": { + "type": "string", + "enum": ["PERSISTENT", "NON_PERSISTENT"], + "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." + }, + "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." + }, + "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." + }, + "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." + }, + "JMSReplyTo": { + "type": "string", + "description": "The queue or topic that the message sender expects replies to." + } + } + }, + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/unknown version/message/binding.json b/asyncapi-core/src/test/resources/bindings/jms/unknown version/message/binding.json new file mode 100644 index 00000000..70499701 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/unknown version/message/binding.json @@ -0,0 +1,44 @@ +{ + "headers": { + "type": "object", + "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." + }, + "JMSDeliveryMode": { + "type": "string", + "enum": ["PERSISTENT", "NON_PERSISTENT"], + "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." + }, + "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." + }, + "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." + }, + "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." + }, + "JMSReplyTo": { + "type": "string", + "description": "The queue or topic that the message sender expects replies to." + } + } + }, + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/unknown version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/jms/unknown version/operation/binding - extended.json new file mode 100644 index 00000000..de3a5262 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/unknown version/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.0.1", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/unknown version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/jms/unknown version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..0dee3264 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/unknown version/operation/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/unknown version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/jms/unknown version/operation/binding.json new file mode 100644 index 00000000..defc96bf --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/unknown version/operation/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/unknown version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/jms/unknown version/server/binding - extended.json new file mode 100644 index 00000000..c160c064 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/unknown version/server/binding - extended.json @@ -0,0 +1,14 @@ +{ + "bindingVersion" : "0.0.1", + "jmsConnectionFactory" : "org.apache.activemq.ActiveMQConnectionFactory", + "properties" : [ { + "name" : "disableTimeStampsByDefault", + "value" : false + } ], + "clientID" : "my-application-1", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/unknown version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/jms/unknown version/server/binding - wrongly extended.json new file mode 100644 index 00000000..70fd4e42 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/unknown version/server/binding - wrongly extended.json @@ -0,0 +1,17 @@ +{ + "bindingVersion": "unknown version", + "jmsConnectionFactory": "org.apache.activemq.ActiveMQConnectionFactory", + "properties": [ + { + "name": "disableTimeStampsByDefault", + "value": false + } + ], + "clientID": "my-application-1", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/unknown version/server/binding.json b/asyncapi-core/src/test/resources/bindings/jms/unknown version/server/binding.json new file mode 100644 index 00000000..d4306674 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/unknown version/server/binding.json @@ -0,0 +1,11 @@ +{ + "jmsConnectionFactory": "org.apache.activemq.ActiveMQConnectionFactory", + "properties": [ + { + "name": "disableTimeStampsByDefault", + "value": false + } + ], + "clientID": "my-application-1", + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/without version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/jms/without version/channel/binding - extended.json new file mode 100644 index 00000000..998357b8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/without version/channel/binding - extended.json @@ -0,0 +1,10 @@ +{ + "bindingVersion" : "0.0.1", + "destination" : "user-signed-up", + "destinationType" : "fifo-queue", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/without version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/jms/without version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..9acdfb5d --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/without version/channel/binding - wrongly extended.json @@ -0,0 +1,10 @@ +{ + "destination": "user-signed-up", + "destinationType": "fifo-queue", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/without version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/jms/without version/channel/binding.json new file mode 100644 index 00000000..c3fe7ac9 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/without version/channel/binding.json @@ -0,0 +1,4 @@ +{ + "destination": "user-signed-up", + "destinationType": "fifo-queue" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/without version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/jms/without version/message/binding - extended.json new file mode 100644 index 00000000..5fb29ddb --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/without version/message/binding - extended.json @@ -0,0 +1,49 @@ +{ + "bindingVersion" : "0.0.1", + "headers" : { + "type" : "object", + "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." + }, + "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" + }, + "JMSPriority" : { + "type" : "integer", + "description" : "The priority of the message. This may be set by your JMS Provider on your behalf.", + "default" : 4 + }, + "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." + }, + "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." + }, + "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." + }, + "JMSReplyTo" : { + "type" : "string", + "description" : "The queue or topic that the message sender expects replies to." + } + } + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/without version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/jms/without version/message/binding - wrongly extended.json new file mode 100644 index 00000000..659caf75 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/without version/message/binding - wrongly extended.json @@ -0,0 +1,49 @@ +{ + "headers": { + "type": "object", + "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." + }, + "JMSDeliveryMode": { + "type": "string", + "enum": ["PERSISTENT", "NON_PERSISTENT"], + "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." + }, + "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." + }, + "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." + }, + "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." + }, + "JMSReplyTo": { + "type": "string", + "description": "The queue or topic that the message sender expects replies to." + } + } + }, + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/without version/message/binding.json b/asyncapi-core/src/test/resources/bindings/jms/without version/message/binding.json new file mode 100644 index 00000000..022d8894 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/without version/message/binding.json @@ -0,0 +1,43 @@ +{ + "headers": { + "type": "object", + "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." + }, + "JMSDeliveryMode": { + "type": "string", + "enum": ["PERSISTENT", "NON_PERSISTENT"], + "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." + }, + "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." + }, + "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." + }, + "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." + }, + "JMSReplyTo": { + "type": "string", + "description": "The queue or topic that the message sender expects replies to." + } + } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/without version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/jms/without version/operation/binding - extended.json new file mode 100644 index 00000000..de3a5262 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/without version/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.0.1", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/without version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/jms/without version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/without version/operation/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/without version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/jms/without version/operation/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/without version/operation/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/without version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/jms/without version/server/binding - extended.json new file mode 100644 index 00000000..c160c064 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/without version/server/binding - extended.json @@ -0,0 +1,14 @@ +{ + "bindingVersion" : "0.0.1", + "jmsConnectionFactory" : "org.apache.activemq.ActiveMQConnectionFactory", + "properties" : [ { + "name" : "disableTimeStampsByDefault", + "value" : false + } ], + "clientID" : "my-application-1", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/without version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/jms/without version/server/binding - wrongly extended.json new file mode 100644 index 00000000..277cb00b --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/without version/server/binding - wrongly extended.json @@ -0,0 +1,16 @@ +{ + "jmsConnectionFactory": "org.apache.activemq.ActiveMQConnectionFactory", + "properties": [ + { + "name": "disableTimeStampsByDefault", + "value": false + } + ], + "clientID": "my-application-1", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/jms/without version/server/binding.json b/asyncapi-core/src/test/resources/bindings/jms/without version/server/binding.json new file mode 100644 index 00000000..003cf750 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/jms/without version/server/binding.json @@ -0,0 +1,10 @@ +{ + "jmsConnectionFactory": "org.apache.activemq.ActiveMQConnectionFactory", + "properties": [ + { + "name": "disableTimeStampsByDefault", + "value": false + } + ], + "clientID": "my-application-1" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/channel/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/channel/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/channel/binding - wrongly extended.json new file mode 100644 index 00000000..a1ecfd51 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/channel/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/channel/binding.json b/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/channel/binding.json new file mode 100644 index 00000000..04dbf945 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/channel/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/message/binding - extended.json new file mode 100644 index 00000000..1edca79f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/message/binding - extended.json @@ -0,0 +1,12 @@ +{ + "bindingVersion" : "0.1.0", + "key" : { + "type" : "string", + "enum" : [ "myKey" ] + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/message/binding - wrongly extended.json new file mode 100644 index 00000000..b1eb7fca --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/message/binding - wrongly extended.json @@ -0,0 +1,15 @@ +{ + "bindingVersion": "0.1.0", + "key": { + "type": "string", + "enum": [ + "myKey" + ] + }, + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/message/binding.json b/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/message/binding.json new file mode 100644 index 00000000..836ae2c6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/message/binding.json @@ -0,0 +1,9 @@ +{ + "key": { + "type": "string", + "enum": [ + "myKey" + ] + }, + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/operation/binding - extended.json new file mode 100644 index 00000000..e70ae008 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/operation/binding - extended.json @@ -0,0 +1,16 @@ +{ + "bindingVersion" : "0.1.0", + "groupId" : { + "type" : "string", + "enum" : [ "myGroupId" ] + }, + "clientId" : { + "type" : "string", + "enum" : [ "myClientId" ] + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/operation/binding - wrongly extended.json new file mode 100644 index 00000000..fcbcb92d --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/operation/binding - wrongly extended.json @@ -0,0 +1,21 @@ +{ + "bindingVersion": "0.1.0", + "groupId": { + "type": "string", + "enum": [ + "myGroupId" + ] + }, + "clientId": { + "type": "string", + "enum": [ + "myClientId" + ] + }, + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/operation/binding.json b/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/operation/binding.json new file mode 100644 index 00000000..9e8c365a --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/operation/binding.json @@ -0,0 +1,15 @@ +{ + "groupId": { + "type": "string", + "enum": [ + "myGroupId" + ] + }, + "clientId": { + "type": "string", + "enum": [ + "myClientId" + ] + }, + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/server/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/server/binding - wrongly extended.json new file mode 100644 index 00000000..a1ecfd51 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/server/binding.json b/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/server/binding.json new file mode 100644 index 00000000..04dbf945 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.1.0/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/channel/binding - extended.json new file mode 100644 index 00000000..7da53e23 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/channel/binding - extended.json @@ -0,0 +1,11 @@ +{ + "bindingVersion" : "0.3.0", + "topic" : "my-specific-topic", + "partitions" : 20, + "replicas" : 3, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/channel/binding - wrongly extended.json new file mode 100644 index 00000000..2f52b583 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/channel/binding - wrongly extended.json @@ -0,0 +1,12 @@ +{ + "bindingVersion": "0.3.0", + "topic": "my-specific-topic", + "partitions": 20, + "replicas": 3, + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/channel/binding.json b/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/channel/binding.json new file mode 100644 index 00000000..4331179c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/channel/binding.json @@ -0,0 +1,6 @@ +{ + "topic": "my-specific-topic", + "partitions": 20, + "replicas": 3, + "bindingVersion": "0.3.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/message/binding - extended.json new file mode 100644 index 00000000..49ae2a1a --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/message/binding - extended.json @@ -0,0 +1,15 @@ +{ + "bindingVersion" : "0.3.0", + "key" : { + "type" : "string", + "enum" : [ "myKey" ] + }, + "schemaIdLocation" : "payload", + "schemaIdPayloadEncoding" : "apicurio-new", + "schemaLookupStrategy" : "TopicIdStrategy", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/message/binding - wrongly extended.json new file mode 100644 index 00000000..28107eef --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/message/binding - wrongly extended.json @@ -0,0 +1,18 @@ +{ + "bindingVersion": "0.3.0", + "key": { + "type": "string", + "enum": [ + "myKey" + ] + }, + "schemaIdLocation": "payload", + "schemaIdPayloadEncoding": "apicurio-new", + "schemaLookupStrategy": "TopicIdStrategy", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/message/binding.json b/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/message/binding.json new file mode 100644 index 00000000..0765f233 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/message/binding.json @@ -0,0 +1,12 @@ +{ + "key": { + "type": "string", + "enum": [ + "myKey" + ] + }, + "schemaIdLocation": "payload", + "schemaIdPayloadEncoding": "apicurio-new", + "schemaLookupStrategy": "TopicIdStrategy", + "bindingVersion": "0.3.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/operation/binding - extended.json new file mode 100644 index 00000000..22a69d15 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/operation/binding - extended.json @@ -0,0 +1,16 @@ +{ + "bindingVersion" : "0.3.0", + "groupId" : { + "type" : "string", + "enum" : [ "myGroupId" ] + }, + "clientId" : { + "type" : "string", + "enum" : [ "myClientId" ] + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/operation/binding - wrongly extended.json new file mode 100644 index 00000000..0b9b43b7 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/operation/binding - wrongly extended.json @@ -0,0 +1,21 @@ +{ + "bindingVersion": "0.3.0", + "groupId": { + "type": "string", + "enum": [ + "myGroupId" + ] + }, + "clientId": { + "type": "string", + "enum": [ + "myClientId" + ] + }, + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/operation/binding.json b/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/operation/binding.json new file mode 100644 index 00000000..f6395463 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/operation/binding.json @@ -0,0 +1,15 @@ +{ + "groupId": { + "type": "string", + "enum": [ + "myGroupId" + ] + }, + "clientId": { + "type": "string", + "enum": [ + "myClientId" + ] + }, + "bindingVersion": "0.3.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/server/binding - extended.json new file mode 100644 index 00000000..a54a22d5 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/server/binding - extended.json @@ -0,0 +1,10 @@ +{ + "bindingVersion" : "0.3.0", + "schemaRegistryUrl" : "https://my-schema-registry.com", + "schemaRegistryVendor" : "confluent", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/server/binding - wrongly extended.json new file mode 100644 index 00000000..08b0d66e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/server/binding - wrongly extended.json @@ -0,0 +1,11 @@ +{ + "schemaRegistryUrl": "https://my-schema-registry.com", + "schemaRegistryVendor": "confluent", + "bindingVersion": "0.3.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/server/binding.json b/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/server/binding.json new file mode 100644 index 00000000..40cbc297 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.3.0/server/binding.json @@ -0,0 +1,5 @@ +{ + "schemaRegistryUrl": "https://my-schema-registry.com", + "schemaRegistryVendor": "confluent", + "bindingVersion": "0.3.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/channel/kafka/kafkaChannelBinding - extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.4.0/channel/binding - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/channel/kafka/kafkaChannelBinding - extended.json rename to asyncapi-core/src/test/resources/bindings/kafka/0.4.0/channel/binding - extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/binding/channel/kafka/kafkaChannelBinding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.4.0/channel/binding - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/channel/kafka/kafkaChannelBinding - wrongly extended.json rename to asyncapi-core/src/test/resources/bindings/kafka/0.4.0/channel/binding - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/binding/channel/kafka/kafkaChannelBinding.json b/asyncapi-core/src/test/resources/bindings/kafka/0.4.0/channel/binding.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/channel/kafka/kafkaChannelBinding.json rename to asyncapi-core/src/test/resources/bindings/kafka/0.4.0/channel/binding.json diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.4.0/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.4.0/message/binding - extended.json new file mode 100644 index 00000000..3325c99e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.4.0/message/binding - extended.json @@ -0,0 +1,15 @@ +{ + "bindingVersion" : "0.4.0", + "key" : { + "type" : "string", + "enum" : [ "myKey" ] + }, + "schemaIdLocation" : "payload", + "schemaIdPayloadEncoding" : "apicurio-new", + "schemaLookupStrategy" : "TopicIdStrategy", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/message/kafka/kafkaMessageBinding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.4.0/message/binding - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/message/kafka/kafkaMessageBinding - wrongly extended.json rename to asyncapi-core/src/test/resources/bindings/kafka/0.4.0/message/binding - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/binding/message/kafka/kafkaMessageBinding.json b/asyncapi-core/src/test/resources/bindings/kafka/0.4.0/message/binding.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/message/kafka/kafkaMessageBinding.json rename to asyncapi-core/src/test/resources/bindings/kafka/0.4.0/message/binding.json diff --git a/asyncapi-core/src/test/resources/json/v3/binding/operation/kafka/kafkaOperationBinding - extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.4.0/operation/binding - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/binding/operation/kafka/kafkaOperationBinding - extended.json rename to asyncapi-core/src/test/resources/bindings/kafka/0.4.0/operation/binding - extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/binding/operation/kafka/kafkaOperationBinding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.4.0/operation/binding - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/operation/kafka/kafkaOperationBinding - wrongly extended.json rename to asyncapi-core/src/test/resources/bindings/kafka/0.4.0/operation/binding - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/binding/operation/kafka/kafkaOperationBinding.json b/asyncapi-core/src/test/resources/bindings/kafka/0.4.0/operation/binding.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/operation/kafka/kafkaOperationBinding.json rename to asyncapi-core/src/test/resources/bindings/kafka/0.4.0/operation/binding.json diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.4.0/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.4.0/server/binding - extended.json new file mode 100644 index 00000000..a0eb3c82 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.4.0/server/binding - extended.json @@ -0,0 +1,10 @@ +{ + "bindingVersion" : "0.4.0", + "schemaRegistryUrl" : "https://my-schema-registry.com", + "schemaRegistryVendor" : "confluent", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/server/kafka/kafkaServerBinding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.4.0/server/binding - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/server/kafka/kafkaServerBinding - wrongly extended.json rename to asyncapi-core/src/test/resources/bindings/kafka/0.4.0/server/binding - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/binding/server/kafka/kafkaServerBinding.json b/asyncapi-core/src/test/resources/bindings/kafka/0.4.0/server/binding.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/server/kafka/kafkaServerBinding.json rename to asyncapi-core/src/test/resources/bindings/kafka/0.4.0/server/binding.json diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/channel/binding - extended.json new file mode 100644 index 00000000..ca0c307f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/channel/binding - extended.json @@ -0,0 +1,18 @@ +{ + "bindingVersion" : "0.5.0", + "topic" : "my-specific-topic-name", + "partitions" : 20, + "replicas" : 3, + "topicConfiguration" : { + "cleanup.policy" : [ "delete", "compact" ], + "retention.ms" : 604800000, + "retention.bytes" : 1000000000, + "delete.retention.ms" : 86400000, + "max.message.bytes" : 1048588 + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/channel/binding - wrongly extended.json new file mode 100644 index 00000000..6abc5689 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/channel/binding - wrongly extended.json @@ -0,0 +1,22 @@ +{ + "topic": "my-specific-topic-name", + "partitions": 20, + "replicas": 3, + "topicConfiguration": { + "cleanup.policy": [ + "delete", + "compact" + ], + "retention.ms": 604800000, + "retention.bytes": 1000000000, + "delete.retention.ms": 86400000, + "max.message.bytes": 1048588 + }, + "bindingVersion": "0.5.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/channel/binding.json b/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/channel/binding.json new file mode 100644 index 00000000..a92ec434 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/channel/binding.json @@ -0,0 +1,16 @@ +{ + "topic": "my-specific-topic-name", + "partitions": 20, + "replicas": 3, + "topicConfiguration": { + "cleanup.policy": [ + "delete", + "compact" + ], + "retention.ms": 604800000, + "retention.bytes": 1000000000, + "delete.retention.ms": 86400000, + "max.message.bytes": 1048588 + }, + "bindingVersion": "0.5.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/message/binding - extended.json new file mode 100644 index 00000000..c71f4e0e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/message/binding - extended.json @@ -0,0 +1,15 @@ +{ + "bindingVersion" : "0.5.0", + "key" : { + "type" : "string", + "enum" : [ "myKey" ] + }, + "schemaIdLocation" : "payload", + "schemaIdPayloadEncoding" : "apicurio-new", + "schemaLookupStrategy" : "TopicIdStrategy", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/message/binding - wrongly extended.json new file mode 100644 index 00000000..48d3c7bd --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/message/binding - wrongly extended.json @@ -0,0 +1,18 @@ +{ + "key": { + "type": "string", + "enum": [ + "myKey" + ] + }, + "schemaIdLocation": "payload", + "schemaIdPayloadEncoding": "apicurio-new", + "schemaLookupStrategy": "TopicIdStrategy", + "bindingVersion": "0.5.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/message/binding.json b/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/message/binding.json new file mode 100644 index 00000000..b667ea91 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/message/binding.json @@ -0,0 +1,12 @@ +{ + "key": { + "type": "string", + "enum": [ + "myKey" + ] + }, + "schemaIdLocation": "payload", + "schemaIdPayloadEncoding": "apicurio-new", + "schemaLookupStrategy": "TopicIdStrategy", + "bindingVersion": "0.5.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/operation/binding - extended.json new file mode 100644 index 00000000..1199dffb --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/operation/binding - extended.json @@ -0,0 +1,16 @@ +{ + "bindingVersion" : "0.5.0", + "groupId" : { + "type" : "string", + "enum" : [ "myGroupId" ] + }, + "clientId" : { + "type" : "string", + "enum" : [ "myClientId" ] + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/operation/binding - wrongly extended.json new file mode 100644 index 00000000..65e5268f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/operation/binding - wrongly extended.json @@ -0,0 +1,21 @@ +{ + "groupId": { + "type": "string", + "enum": [ + "myGroupId" + ] + }, + "clientId": { + "type": "string", + "enum": [ + "myClientId" + ] + }, + "bindingVersion": "0.5.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/operation/binding.json b/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/operation/binding.json new file mode 100644 index 00000000..4d21c790 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/operation/binding.json @@ -0,0 +1,15 @@ +{ + "groupId": { + "type": "string", + "enum": [ + "myGroupId" + ] + }, + "clientId": { + "type": "string", + "enum": [ + "myClientId" + ] + }, + "bindingVersion": "0.5.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/server/binding - extended.json new file mode 100644 index 00000000..0622c2d7 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/server/binding - extended.json @@ -0,0 +1,10 @@ +{ + "bindingVersion" : "0.5.0", + "schemaRegistryUrl" : "https://my-schema-registry.com", + "schemaRegistryVendor" : "confluent", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/server/binding - wrongly extended.json new file mode 100644 index 00000000..673854df --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/server/binding - wrongly extended.json @@ -0,0 +1,11 @@ +{ + "schemaRegistryUrl": "https://my-schema-registry.com", + "schemaRegistryVendor": "confluent", + "bindingVersion": "0.5.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/server/binding.json b/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/server/binding.json new file mode 100644 index 00000000..afc8605f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/0.5.0/server/binding.json @@ -0,0 +1,5 @@ +{ + "schemaRegistryUrl": "https://my-schema-registry.com", + "schemaRegistryVendor": "confluent", + "bindingVersion": "0.5.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/latest/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/kafka/latest/channel/binding - extended.json new file mode 100644 index 00000000..ca0c307f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/latest/channel/binding - extended.json @@ -0,0 +1,18 @@ +{ + "bindingVersion" : "0.5.0", + "topic" : "my-specific-topic-name", + "partitions" : 20, + "replicas" : 3, + "topicConfiguration" : { + "cleanup.policy" : [ "delete", "compact" ], + "retention.ms" : 604800000, + "retention.bytes" : 1000000000, + "delete.retention.ms" : 86400000, + "max.message.bytes" : 1048588 + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/latest/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/kafka/latest/channel/binding - wrongly extended.json new file mode 100644 index 00000000..060b9e51 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/latest/channel/binding - wrongly extended.json @@ -0,0 +1,22 @@ +{ + "topic": "my-specific-topic-name", + "partitions": 20, + "replicas": 3, + "topicConfiguration": { + "cleanup.policy": [ + "delete", + "compact" + ], + "retention.ms": 604800000, + "retention.bytes": 1000000000, + "delete.retention.ms": 86400000, + "max.message.bytes": 1048588 + }, + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/latest/channel/binding.json b/asyncapi-core/src/test/resources/bindings/kafka/latest/channel/binding.json new file mode 100644 index 00000000..5a58fbc3 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/latest/channel/binding.json @@ -0,0 +1,16 @@ +{ + "topic": "my-specific-topic-name", + "partitions": 20, + "replicas": 3, + "topicConfiguration": { + "cleanup.policy": [ + "delete", + "compact" + ], + "retention.ms": 604800000, + "retention.bytes": 1000000000, + "delete.retention.ms": 86400000, + "max.message.bytes": 1048588 + }, + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/latest/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/kafka/latest/message/binding - extended.json new file mode 100644 index 00000000..c71f4e0e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/latest/message/binding - extended.json @@ -0,0 +1,15 @@ +{ + "bindingVersion" : "0.5.0", + "key" : { + "type" : "string", + "enum" : [ "myKey" ] + }, + "schemaIdLocation" : "payload", + "schemaIdPayloadEncoding" : "apicurio-new", + "schemaLookupStrategy" : "TopicIdStrategy", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/latest/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/kafka/latest/message/binding - wrongly extended.json new file mode 100644 index 00000000..4093226c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/latest/message/binding - wrongly extended.json @@ -0,0 +1,18 @@ +{ + "key": { + "type": "string", + "enum": [ + "myKey" + ] + }, + "schemaIdLocation": "payload", + "schemaIdPayloadEncoding": "apicurio-new", + "schemaLookupStrategy": "TopicIdStrategy", + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/latest/message/binding.json b/asyncapi-core/src/test/resources/bindings/kafka/latest/message/binding.json new file mode 100644 index 00000000..1d6d2913 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/latest/message/binding.json @@ -0,0 +1,12 @@ +{ + "key": { + "type": "string", + "enum": [ + "myKey" + ] + }, + "schemaIdLocation": "payload", + "schemaIdPayloadEncoding": "apicurio-new", + "schemaLookupStrategy": "TopicIdStrategy", + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/latest/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/kafka/latest/operation/binding - extended.json new file mode 100644 index 00000000..1199dffb --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/latest/operation/binding - extended.json @@ -0,0 +1,16 @@ +{ + "bindingVersion" : "0.5.0", + "groupId" : { + "type" : "string", + "enum" : [ "myGroupId" ] + }, + "clientId" : { + "type" : "string", + "enum" : [ "myClientId" ] + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/latest/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/kafka/latest/operation/binding - wrongly extended.json new file mode 100644 index 00000000..b7797ae6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/latest/operation/binding - wrongly extended.json @@ -0,0 +1,21 @@ +{ + "groupId": { + "type": "string", + "enum": [ + "myGroupId" + ] + }, + "clientId": { + "type": "string", + "enum": [ + "myClientId" + ] + }, + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/latest/operation/binding.json b/asyncapi-core/src/test/resources/bindings/kafka/latest/operation/binding.json new file mode 100644 index 00000000..72f176d7 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/latest/operation/binding.json @@ -0,0 +1,15 @@ +{ + "groupId": { + "type": "string", + "enum": [ + "myGroupId" + ] + }, + "clientId": { + "type": "string", + "enum": [ + "myClientId" + ] + }, + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/latest/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/kafka/latest/server/binding - extended.json new file mode 100644 index 00000000..0622c2d7 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/latest/server/binding - extended.json @@ -0,0 +1,10 @@ +{ + "bindingVersion" : "0.5.0", + "schemaRegistryUrl" : "https://my-schema-registry.com", + "schemaRegistryVendor" : "confluent", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/latest/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/kafka/latest/server/binding - wrongly extended.json new file mode 100644 index 00000000..17f694cc --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/latest/server/binding - wrongly extended.json @@ -0,0 +1,11 @@ +{ + "schemaRegistryUrl": "https://my-schema-registry.com", + "schemaRegistryVendor": "confluent", + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/latest/server/binding.json b/asyncapi-core/src/test/resources/bindings/kafka/latest/server/binding.json new file mode 100644 index 00000000..6bb539a3 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/latest/server/binding.json @@ -0,0 +1,5 @@ +{ + "schemaRegistryUrl": "https://my-schema-registry.com", + "schemaRegistryVendor": "confluent", + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/unknown version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/kafka/unknown version/channel/binding - extended.json new file mode 100644 index 00000000..ca0c307f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/unknown version/channel/binding - extended.json @@ -0,0 +1,18 @@ +{ + "bindingVersion" : "0.5.0", + "topic" : "my-specific-topic-name", + "partitions" : 20, + "replicas" : 3, + "topicConfiguration" : { + "cleanup.policy" : [ "delete", "compact" ], + "retention.ms" : 604800000, + "retention.bytes" : 1000000000, + "delete.retention.ms" : 86400000, + "max.message.bytes" : 1048588 + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/unknown version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/kafka/unknown version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..de2b2142 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/unknown version/channel/binding - wrongly extended.json @@ -0,0 +1,22 @@ +{ + "topic": "my-specific-topic-name", + "partitions": 20, + "replicas": 3, + "topicConfiguration": { + "cleanup.policy": [ + "delete", + "compact" + ], + "retention.ms": 604800000, + "retention.bytes": 1000000000, + "delete.retention.ms": 86400000, + "max.message.bytes": 1048588 + }, + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/unknown version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/kafka/unknown version/channel/binding.json new file mode 100644 index 00000000..61bb7103 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/unknown version/channel/binding.json @@ -0,0 +1,16 @@ +{ + "topic": "my-specific-topic-name", + "partitions": 20, + "replicas": 3, + "topicConfiguration": { + "cleanup.policy": [ + "delete", + "compact" + ], + "retention.ms": 604800000, + "retention.bytes": 1000000000, + "delete.retention.ms": 86400000, + "max.message.bytes": 1048588 + }, + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/unknown version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/kafka/unknown version/message/binding - extended.json new file mode 100644 index 00000000..c71f4e0e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/unknown version/message/binding - extended.json @@ -0,0 +1,15 @@ +{ + "bindingVersion" : "0.5.0", + "key" : { + "type" : "string", + "enum" : [ "myKey" ] + }, + "schemaIdLocation" : "payload", + "schemaIdPayloadEncoding" : "apicurio-new", + "schemaLookupStrategy" : "TopicIdStrategy", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/unknown version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/kafka/unknown version/message/binding - wrongly extended.json new file mode 100644 index 00000000..ef27d281 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/unknown version/message/binding - wrongly extended.json @@ -0,0 +1,18 @@ +{ + "key": { + "type": "string", + "enum": [ + "myKey" + ] + }, + "schemaIdLocation": "payload", + "schemaIdPayloadEncoding": "apicurio-new", + "schemaLookupStrategy": "TopicIdStrategy", + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/unknown version/message/binding.json b/asyncapi-core/src/test/resources/bindings/kafka/unknown version/message/binding.json new file mode 100644 index 00000000..c2b78b4e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/unknown version/message/binding.json @@ -0,0 +1,12 @@ +{ + "key": { + "type": "string", + "enum": [ + "myKey" + ] + }, + "schemaIdLocation": "payload", + "schemaIdPayloadEncoding": "apicurio-new", + "schemaLookupStrategy": "TopicIdStrategy", + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/unknown version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/kafka/unknown version/operation/binding - extended.json new file mode 100644 index 00000000..1199dffb --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/unknown version/operation/binding - extended.json @@ -0,0 +1,16 @@ +{ + "bindingVersion" : "0.5.0", + "groupId" : { + "type" : "string", + "enum" : [ "myGroupId" ] + }, + "clientId" : { + "type" : "string", + "enum" : [ "myClientId" ] + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/unknown version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/kafka/unknown version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..bf426992 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/unknown version/operation/binding - wrongly extended.json @@ -0,0 +1,21 @@ +{ + "groupId": { + "type": "string", + "enum": [ + "myGroupId" + ] + }, + "clientId": { + "type": "string", + "enum": [ + "myClientId" + ] + }, + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/unknown version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/kafka/unknown version/operation/binding.json new file mode 100644 index 00000000..91ba6c98 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/unknown version/operation/binding.json @@ -0,0 +1,15 @@ +{ + "groupId": { + "type": "string", + "enum": [ + "myGroupId" + ] + }, + "clientId": { + "type": "string", + "enum": [ + "myClientId" + ] + }, + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/unknown version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/kafka/unknown version/server/binding - extended.json new file mode 100644 index 00000000..0622c2d7 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/unknown version/server/binding - extended.json @@ -0,0 +1,10 @@ +{ + "bindingVersion" : "0.5.0", + "schemaRegistryUrl" : "https://my-schema-registry.com", + "schemaRegistryVendor" : "confluent", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/unknown version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/kafka/unknown version/server/binding - wrongly extended.json new file mode 100644 index 00000000..7ded284f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/unknown version/server/binding - wrongly extended.json @@ -0,0 +1,11 @@ +{ + "schemaRegistryUrl": "https://my-schema-registry.com", + "schemaRegistryVendor": "confluent", + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/unknown version/server/binding.json b/asyncapi-core/src/test/resources/bindings/kafka/unknown version/server/binding.json new file mode 100644 index 00000000..a932b24f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/unknown version/server/binding.json @@ -0,0 +1,5 @@ +{ + "schemaRegistryUrl": "https://my-schema-registry.com", + "schemaRegistryVendor": "confluent", + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/without version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/kafka/without version/channel/binding - extended.json new file mode 100644 index 00000000..ca0c307f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/without version/channel/binding - extended.json @@ -0,0 +1,18 @@ +{ + "bindingVersion" : "0.5.0", + "topic" : "my-specific-topic-name", + "partitions" : 20, + "replicas" : 3, + "topicConfiguration" : { + "cleanup.policy" : [ "delete", "compact" ], + "retention.ms" : 604800000, + "retention.bytes" : 1000000000, + "delete.retention.ms" : 86400000, + "max.message.bytes" : 1048588 + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/without version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/kafka/without version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..57d3db25 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/without version/channel/binding - wrongly extended.json @@ -0,0 +1,21 @@ +{ + "topic": "my-specific-topic-name", + "partitions": 20, + "replicas": 3, + "topicConfiguration": { + "cleanup.policy": [ + "delete", + "compact" + ], + "retention.ms": 604800000, + "retention.bytes": 1000000000, + "delete.retention.ms": 86400000, + "max.message.bytes": 1048588 + }, + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/without version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/kafka/without version/channel/binding.json new file mode 100644 index 00000000..9e93a580 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/without version/channel/binding.json @@ -0,0 +1,15 @@ +{ + "topic": "my-specific-topic-name", + "partitions": 20, + "replicas": 3, + "topicConfiguration": { + "cleanup.policy": [ + "delete", + "compact" + ], + "retention.ms": 604800000, + "retention.bytes": 1000000000, + "delete.retention.ms": 86400000, + "max.message.bytes": 1048588 + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/without version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/kafka/without version/message/binding - extended.json new file mode 100644 index 00000000..c71f4e0e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/without version/message/binding - extended.json @@ -0,0 +1,15 @@ +{ + "bindingVersion" : "0.5.0", + "key" : { + "type" : "string", + "enum" : [ "myKey" ] + }, + "schemaIdLocation" : "payload", + "schemaIdPayloadEncoding" : "apicurio-new", + "schemaLookupStrategy" : "TopicIdStrategy", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/without version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/kafka/without version/message/binding - wrongly extended.json new file mode 100644 index 00000000..e402fbb0 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/without version/message/binding - wrongly extended.json @@ -0,0 +1,17 @@ +{ + "key": { + "type": "string", + "enum": [ + "myKey" + ] + }, + "schemaIdLocation": "payload", + "schemaIdPayloadEncoding": "apicurio-new", + "schemaLookupStrategy": "TopicIdStrategy", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/without version/message/binding.json b/asyncapi-core/src/test/resources/bindings/kafka/without version/message/binding.json new file mode 100644 index 00000000..1be17637 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/without version/message/binding.json @@ -0,0 +1,11 @@ +{ + "key": { + "type": "string", + "enum": [ + "myKey" + ] + }, + "schemaIdLocation": "payload", + "schemaIdPayloadEncoding": "apicurio-new", + "schemaLookupStrategy": "TopicIdStrategy" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/without version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/kafka/without version/operation/binding - extended.json new file mode 100644 index 00000000..1199dffb --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/without version/operation/binding - extended.json @@ -0,0 +1,16 @@ +{ + "bindingVersion" : "0.5.0", + "groupId" : { + "type" : "string", + "enum" : [ "myGroupId" ] + }, + "clientId" : { + "type" : "string", + "enum" : [ "myClientId" ] + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/without version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/kafka/without version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..81ceb205 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/without version/operation/binding - wrongly extended.json @@ -0,0 +1,20 @@ +{ + "groupId": { + "type": "string", + "enum": [ + "myGroupId" + ] + }, + "clientId": { + "type": "string", + "enum": [ + "myClientId" + ] + }, + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/without version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/kafka/without version/operation/binding.json new file mode 100644 index 00000000..dfdc6f7e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/without version/operation/binding.json @@ -0,0 +1,14 @@ +{ + "groupId": { + "type": "string", + "enum": [ + "myGroupId" + ] + }, + "clientId": { + "type": "string", + "enum": [ + "myClientId" + ] + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/without version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/kafka/without version/server/binding - extended.json new file mode 100644 index 00000000..0622c2d7 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/without version/server/binding - extended.json @@ -0,0 +1,10 @@ +{ + "bindingVersion" : "0.5.0", + "schemaRegistryUrl" : "https://my-schema-registry.com", + "schemaRegistryVendor" : "confluent", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/without version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/kafka/without version/server/binding - wrongly extended.json new file mode 100644 index 00000000..a78d9e71 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/without version/server/binding - wrongly extended.json @@ -0,0 +1,10 @@ +{ + "schemaRegistryUrl": "https://my-schema-registry.com", + "schemaRegistryVendor": "confluent", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/kafka/without version/server/binding.json b/asyncapi-core/src/test/resources/bindings/kafka/without version/server/binding.json new file mode 100644 index 00000000..2c3285a7 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/kafka/without version/server/binding.json @@ -0,0 +1,4 @@ +{ + "schemaRegistryUrl": "https://my-schema-registry.com", + "schemaRegistryVendor": "confluent" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/channel/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/channel/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/channel/binding - wrongly extended.json new file mode 100644 index 00000000..a1ecfd51 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/channel/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/channel/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/channel/binding.json new file mode 100644 index 00000000..04dbf945 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/channel/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/message/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/message/binding - wrongly extended.json new file mode 100644 index 00000000..a1ecfd51 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/message/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/message/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/message/binding.json new file mode 100644 index 00000000..04dbf945 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/message/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/operation/binding - extended.json new file mode 100644 index 00000000..8a8a7501 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/operation/binding - extended.json @@ -0,0 +1,10 @@ +{ + "bindingVersion" : "0.1.0", + "qos" : 2, + "retain" : true, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/operation/mqtt/mqttOperationBinding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/operation/binding - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/operation/mqtt/mqttOperationBinding - wrongly extended.json rename to asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/operation/binding - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/binding/operation/mqtt/mqttOperationBinding.json b/asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/operation/binding.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/operation/mqtt/mqttOperationBinding.json rename to asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/operation/binding.json diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/server/binding - extended.json new file mode 100644 index 00000000..88e46702 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/server/binding - extended.json @@ -0,0 +1,17 @@ +{ + "bindingVersion" : "0.1.0", + "clientId" : "guest", + "cleanSession" : true, + "lastWill" : { + "topic" : "/last-wills", + "qos" : 2, + "message" : "Guest gone offline.", + "retain" : false + }, + "keepAlive" : 60, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/server/mqtt/mqttServerBinding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/server/binding - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/server/mqtt/mqttServerBinding - wrongly extended.json rename to asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/server/binding - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/binding/server/mqtt/mqttServerBinding.json b/asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/server/binding.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/server/mqtt/mqttServerBinding.json rename to asyncapi-core/src/test/resources/bindings/mqtt/0.1.0/server/binding.json diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/channel/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/channel/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/channel/binding - wrongly extended.json new file mode 100644 index 00000000..1cb38f9c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/channel/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.2.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/channel/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/channel/binding.json new file mode 100644 index 00000000..a22565a8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/channel/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.2.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/message/binding - extended.json new file mode 100644 index 00000000..b82f2be1 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/message/binding - extended.json @@ -0,0 +1,15 @@ +{ + "payloadFormatIndicator" : 0, + "correlationData" : { + "type" : "string", + "format" : "uuid" + }, + "contentType" : "application/json", + "responseTopic" : "application/responses", + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/message/binding - wrongly extended.json new file mode 100644 index 00000000..81b6e51b --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/message/binding - wrongly extended.json @@ -0,0 +1,15 @@ +{ + "contentType": "application/json", + "correlationData": { + "type": "string", + "format": "uuid" + }, + "responseTopic": "application/responses", + "bindingVersion": "0.2.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/message/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/message/binding.json new file mode 100644 index 00000000..03f4a649 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/message/binding.json @@ -0,0 +1,9 @@ +{ + "contentType": "application/json", + "correlationData": { + "type": "string", + "format": "uuid" + }, + "responseTopic": "application/responses", + "bindingVersion": "0.2.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/operation/binding - extended.json new file mode 100644 index 00000000..b940de4b --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/operation/binding - extended.json @@ -0,0 +1,11 @@ +{ + "messageExpiryInterval" : 60, + "bindingVersion" : "0.2.0", + "qos" : 2, + "retain" : true, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/operation/binding - wrongly extended.json new file mode 100644 index 00000000..51e726da --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/operation/binding - wrongly extended.json @@ -0,0 +1,12 @@ +{ + "qos": 2, + "retain": true, + "messageExpiryInterval": 60, + "bindingVersion": "0.2.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/operation/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/operation/binding.json new file mode 100644 index 00000000..b4bcfd0c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/operation/binding.json @@ -0,0 +1,6 @@ +{ + "qos": 2, + "retain": true, + "messageExpiryInterval": 60, + "bindingVersion": "0.2.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/server/binding - extended.json new file mode 100644 index 00000000..176d3174 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/server/binding - extended.json @@ -0,0 +1,19 @@ +{ + "sessionExpiryInterval" : 120, + "maximumPacketSize" : 1024, + "bindingVersion" : "0.2.0", + "clientId" : "guest", + "cleanSession" : true, + "lastWill" : { + "topic" : "/last-wills", + "qos" : 2, + "message" : "Guest gone offline.", + "retain" : false + }, + "keepAlive" : 60, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/server/binding - wrongly extended.json new file mode 100644 index 00000000..99263aad --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/server/binding - wrongly extended.json @@ -0,0 +1,20 @@ +{ + "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", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/server/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/server/binding.json new file mode 100644 index 00000000..4c03de90 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/0.2.0/server/binding.json @@ -0,0 +1,14 @@ +{ + "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" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/latest/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/latest/channel/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/latest/channel/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/latest/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/latest/channel/binding - wrongly extended.json new file mode 100644 index 00000000..18560ee8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/latest/channel/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/latest/channel/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt/latest/channel/binding.json new file mode 100644 index 00000000..cdf165f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/latest/channel/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/latest/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/latest/message/binding - extended.json new file mode 100644 index 00000000..b82f2be1 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/latest/message/binding - extended.json @@ -0,0 +1,15 @@ +{ + "payloadFormatIndicator" : 0, + "correlationData" : { + "type" : "string", + "format" : "uuid" + }, + "contentType" : "application/json", + "responseTopic" : "application/responses", + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/latest/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/latest/message/binding - wrongly extended.json new file mode 100644 index 00000000..9aee321f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/latest/message/binding - wrongly extended.json @@ -0,0 +1,15 @@ +{ + "contentType": "application/json", + "correlationData": { + "type": "string", + "format": "uuid" + }, + "responseTopic": "application/responses", + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/latest/message/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt/latest/message/binding.json new file mode 100644 index 00000000..6b81fb94 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/latest/message/binding.json @@ -0,0 +1,9 @@ +{ + "contentType": "application/json", + "correlationData": { + "type": "string", + "format": "uuid" + }, + "responseTopic": "application/responses", + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/latest/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/latest/operation/binding - extended.json new file mode 100644 index 00000000..b940de4b --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/latest/operation/binding - extended.json @@ -0,0 +1,11 @@ +{ + "messageExpiryInterval" : 60, + "bindingVersion" : "0.2.0", + "qos" : 2, + "retain" : true, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/latest/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/latest/operation/binding - wrongly extended.json new file mode 100644 index 00000000..d6bbb3a4 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/latest/operation/binding - wrongly extended.json @@ -0,0 +1,12 @@ +{ + "qos": 2, + "retain": true, + "messageExpiryInterval": 60, + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/latest/operation/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt/latest/operation/binding.json new file mode 100644 index 00000000..54e74dae --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/latest/operation/binding.json @@ -0,0 +1,6 @@ +{ + "qos": 2, + "retain": true, + "messageExpiryInterval": 60, + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/latest/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/latest/server/binding - extended.json new file mode 100644 index 00000000..176d3174 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/latest/server/binding - extended.json @@ -0,0 +1,19 @@ +{ + "sessionExpiryInterval" : 120, + "maximumPacketSize" : 1024, + "bindingVersion" : "0.2.0", + "clientId" : "guest", + "cleanSession" : true, + "lastWill" : { + "topic" : "/last-wills", + "qos" : 2, + "message" : "Guest gone offline.", + "retain" : false + }, + "keepAlive" : 60, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/latest/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/latest/server/binding - wrongly extended.json new file mode 100644 index 00000000..7cdf0c33 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/latest/server/binding - wrongly extended.json @@ -0,0 +1,20 @@ +{ + "clientId": "guest", + "cleanSession": true, + "lastWill": { + "topic": "/last-wills", + "qos": 2, + "message": "Guest gone offline.", + "retain": false + }, + "keepAlive": 60, + "sessionExpiryInterval": 120, + "maximumPacketSize": 1024, + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/latest/server/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt/latest/server/binding.json new file mode 100644 index 00000000..25242719 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/latest/server/binding.json @@ -0,0 +1,14 @@ +{ + "clientId": "guest", + "cleanSession": true, + "lastWill": { + "topic": "/last-wills", + "qos": 2, + "message": "Guest gone offline.", + "retain": false + }, + "keepAlive": 60, + "sessionExpiryInterval": 120, + "maximumPacketSize": 1024, + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/channel/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/channel/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..0dee3264 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/channel/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/channel/binding.json new file mode 100644 index 00000000..defc96bf --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/channel/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/message/binding - extended.json new file mode 100644 index 00000000..b82f2be1 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/message/binding - extended.json @@ -0,0 +1,15 @@ +{ + "payloadFormatIndicator" : 0, + "correlationData" : { + "type" : "string", + "format" : "uuid" + }, + "contentType" : "application/json", + "responseTopic" : "application/responses", + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/message/binding - wrongly extended.json new file mode 100644 index 00000000..47a4dfcd --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/message/binding - wrongly extended.json @@ -0,0 +1,15 @@ +{ + "bindingVersion": "unknown version", + "contentType": "application/json", + "correlationData": { + "type": "string", + "format": "uuid" + }, + "responseTopic": "application/responses", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/message/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/message/binding.json new file mode 100644 index 00000000..e5b3f348 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/message/binding.json @@ -0,0 +1,9 @@ +{ + "contentType": "application/json", + "correlationData": { + "type": "string", + "format": "uuid" + }, + "responseTopic": "application/responses", + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/operation/binding - extended.json new file mode 100644 index 00000000..b940de4b --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/operation/binding - extended.json @@ -0,0 +1,11 @@ +{ + "messageExpiryInterval" : 60, + "bindingVersion" : "0.2.0", + "qos" : 2, + "retain" : true, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..308c6faa --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/operation/binding - wrongly extended.json @@ -0,0 +1,12 @@ +{ + "qos": 2, + "retain": true, + "messageExpiryInterval": 60, + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/operation/binding.json new file mode 100644 index 00000000..8da498b6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/operation/binding.json @@ -0,0 +1,6 @@ +{ + "qos": 2, + "retain": true, + "messageExpiryInterval": 60, + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/server/binding - extended.json new file mode 100644 index 00000000..176d3174 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/server/binding - extended.json @@ -0,0 +1,19 @@ +{ + "sessionExpiryInterval" : 120, + "maximumPacketSize" : 1024, + "bindingVersion" : "0.2.0", + "clientId" : "guest", + "cleanSession" : true, + "lastWill" : { + "topic" : "/last-wills", + "qos" : 2, + "message" : "Guest gone offline.", + "retain" : false + }, + "keepAlive" : 60, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/server/binding - wrongly extended.json new file mode 100644 index 00000000..3aa0af75 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/server/binding - wrongly extended.json @@ -0,0 +1,20 @@ +{ + "clientId": "guest", + "cleanSession": true, + "lastWill": { + "topic": "/last-wills", + "qos": 2, + "message": "Guest gone offline.", + "retain": false + }, + "keepAlive": 60, + "sessionExpiryInterval": 120, + "maximumPacketSize": 1024, + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/server/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/server/binding.json new file mode 100644 index 00000000..907a5a54 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/unknown version/server/binding.json @@ -0,0 +1,14 @@ +{ + "clientId": "guest", + "cleanSession": true, + "lastWill": { + "topic": "/last-wills", + "qos": 2, + "message": "Guest gone offline.", + "retain": false + }, + "keepAlive": 60, + "sessionExpiryInterval": 120, + "maximumPacketSize": 1024, + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/without version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/without version/channel/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/without version/channel/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/without version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/without version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/without version/channel/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/without version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt/without version/channel/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/without version/channel/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/without version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/without version/message/binding - extended.json new file mode 100644 index 00000000..b82f2be1 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/without version/message/binding - extended.json @@ -0,0 +1,15 @@ +{ + "payloadFormatIndicator" : 0, + "correlationData" : { + "type" : "string", + "format" : "uuid" + }, + "contentType" : "application/json", + "responseTopic" : "application/responses", + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/without version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/without version/message/binding - wrongly extended.json new file mode 100644 index 00000000..cd828051 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/without version/message/binding - wrongly extended.json @@ -0,0 +1,14 @@ +{ + "contentType": "application/json", + "correlationData": { + "type": "string", + "format": "uuid" + }, + "responseTopic": "application/responses", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/without version/message/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt/without version/message/binding.json new file mode 100644 index 00000000..54cee00c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/without version/message/binding.json @@ -0,0 +1,8 @@ +{ + "contentType": "application/json", + "correlationData": { + "type": "string", + "format": "uuid" + }, + "responseTopic": "application/responses" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/without version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/without version/operation/binding - extended.json new file mode 100644 index 00000000..b940de4b --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/without version/operation/binding - extended.json @@ -0,0 +1,11 @@ +{ + "messageExpiryInterval" : 60, + "bindingVersion" : "0.2.0", + "qos" : 2, + "retain" : true, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/without version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/without version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..eec27a92 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/without version/operation/binding - wrongly extended.json @@ -0,0 +1,11 @@ +{ + "qos": 2, + "retain": true, + "messageExpiryInterval": 60, + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/without version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt/without version/operation/binding.json new file mode 100644 index 00000000..7b20475a --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/without version/operation/binding.json @@ -0,0 +1,5 @@ +{ + "qos": 2, + "retain": true, + "messageExpiryInterval": 60 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/without version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/without version/server/binding - extended.json new file mode 100644 index 00000000..176d3174 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/without version/server/binding - extended.json @@ -0,0 +1,19 @@ +{ + "sessionExpiryInterval" : 120, + "maximumPacketSize" : 1024, + "bindingVersion" : "0.2.0", + "clientId" : "guest", + "cleanSession" : true, + "lastWill" : { + "topic" : "/last-wills", + "qos" : 2, + "message" : "Guest gone offline.", + "retain" : false + }, + "keepAlive" : 60, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/without version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt/without version/server/binding - wrongly extended.json new file mode 100644 index 00000000..0b87223e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/without version/server/binding - wrongly extended.json @@ -0,0 +1,19 @@ +{ + "clientId": "guest", + "cleanSession": true, + "lastWill": { + "topic": "/last-wills", + "qos": 2, + "message": "Guest gone offline.", + "retain": false + }, + "keepAlive": 60, + "sessionExpiryInterval": 120, + "maximumPacketSize": 1024, + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt/without version/server/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt/without version/server/binding.json new file mode 100644 index 00000000..e96027dd --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt/without version/server/binding.json @@ -0,0 +1,13 @@ +{ + "clientId": "guest", + "cleanSession": true, + "lastWill": { + "topic": "/last-wills", + "qos": 2, + "message": "Guest gone offline.", + "retain": false + }, + "keepAlive": 60, + "sessionExpiryInterval": 120, + "maximumPacketSize": 1024 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/channel/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/channel/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/channel/binding - wrongly extended.json new file mode 100644 index 00000000..1cb38f9c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/channel/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.2.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/channel/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/channel/binding.json new file mode 100644 index 00000000..a22565a8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/channel/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.2.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/message/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/message/binding - wrongly extended.json new file mode 100644 index 00000000..1cb38f9c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/message/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.2.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/message/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/message/binding.json new file mode 100644 index 00000000..a22565a8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/message/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.2.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/operation/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/operation/binding - wrongly extended.json new file mode 100644 index 00000000..1cb38f9c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/operation/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.2.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/operation/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/operation/binding.json new file mode 100644 index 00000000..a22565a8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/operation/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.2.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/server/mqtt5/mqtt5ServerBinding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/server/binding - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/server/mqtt5/mqtt5ServerBinding - extended.json rename to asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/server/binding - extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/binding/server/mqtt5/mqtt5ServerBinding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/server/binding - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/server/mqtt5/mqtt5ServerBinding - wrongly extended.json rename to asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/server/binding - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/binding/server/mqtt5/mqtt5ServerBinding.json b/asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/server/binding.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/server/mqtt5/mqtt5ServerBinding.json rename to asyncapi-core/src/test/resources/bindings/mqtt5/0.2.0/server/binding.json diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/latest/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/latest/channel/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/latest/channel/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/latest/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/latest/channel/binding - wrongly extended.json new file mode 100644 index 00000000..18560ee8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/latest/channel/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/latest/channel/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt5/latest/channel/binding.json new file mode 100644 index 00000000..cdf165f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/latest/channel/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/latest/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/latest/message/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/latest/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/latest/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/latest/message/binding - wrongly extended.json new file mode 100644 index 00000000..18560ee8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/latest/message/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/latest/message/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt5/latest/message/binding.json new file mode 100644 index 00000000..cdf165f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/latest/message/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/latest/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/latest/operation/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/latest/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/latest/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/latest/operation/binding - wrongly extended.json new file mode 100644 index 00000000..18560ee8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/latest/operation/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/latest/operation/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt5/latest/operation/binding.json new file mode 100644 index 00000000..cdf165f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/latest/operation/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/server/mqtt5/mqtt5ServerBinding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/latest/server/binding - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/binding/server/mqtt5/mqtt5ServerBinding - extended.json rename to asyncapi-core/src/test/resources/bindings/mqtt5/latest/server/binding - extended.json diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/latest/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/latest/server/binding - wrongly extended.json new file mode 100644 index 00000000..40808889 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/latest/server/binding - wrongly extended.json @@ -0,0 +1,10 @@ +{ + "sessionExpiryInterval": 60, + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/latest/server/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt5/latest/server/binding.json new file mode 100644 index 00000000..e61cd53a --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/latest/server/binding.json @@ -0,0 +1,4 @@ +{ + "sessionExpiryInterval": 60, + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/channel/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/channel/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..0dee3264 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/channel/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/channel/binding.json new file mode 100644 index 00000000..defc96bf --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/channel/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/message/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/message/binding - wrongly extended.json new file mode 100644 index 00000000..0dee3264 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/message/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/message/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/message/binding.json new file mode 100644 index 00000000..defc96bf --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/message/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/operation/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..0dee3264 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/operation/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/operation/binding.json new file mode 100644 index 00000000..defc96bf --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/operation/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/server/binding - extended.json new file mode 100644 index 00000000..1104cd11 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/server/binding - extended.json @@ -0,0 +1,9 @@ +{ + "sessionExpiryInterval" : 60, + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/server/binding - wrongly extended.json new file mode 100644 index 00000000..97f17911 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/server/binding - wrongly extended.json @@ -0,0 +1,10 @@ +{ + "sessionExpiryInterval": 60, + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/server/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/server/binding.json new file mode 100644 index 00000000..02fc5dc0 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/unknown version/server/binding.json @@ -0,0 +1,4 @@ +{ + "sessionExpiryInterval": 60, + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/without version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/without version/channel/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/without version/channel/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/without version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/without version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/without version/channel/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/without version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt5/without version/channel/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/without version/channel/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/without version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/without version/message/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/without version/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/without version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/without version/message/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/without version/message/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/without version/message/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt5/without version/message/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/without version/message/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/without version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/without version/operation/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/without version/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/without version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/without version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/without version/operation/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/without version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt5/without version/operation/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/without version/operation/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/without version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/without version/server/binding - extended.json new file mode 100644 index 00000000..1104cd11 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/without version/server/binding - extended.json @@ -0,0 +1,9 @@ +{ + "sessionExpiryInterval" : 60, + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/without version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/mqtt5/without version/server/binding - wrongly extended.json new file mode 100644 index 00000000..4ac2bf74 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/without version/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "sessionExpiryInterval": 60, + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/mqtt5/without version/server/binding.json b/asyncapi-core/src/test/resources/bindings/mqtt5/without version/server/binding.json new file mode 100644 index 00000000..91980fc8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/mqtt5/without version/server/binding.json @@ -0,0 +1,3 @@ +{ + "sessionExpiryInterval": 60 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/0.1.0/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/nats/0.1.0/channel/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/0.1.0/channel/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/0.1.0/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/nats/0.1.0/channel/binding - wrongly extended.json new file mode 100644 index 00000000..a1ecfd51 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/0.1.0/channel/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/0.1.0/channel/binding.json b/asyncapi-core/src/test/resources/bindings/nats/0.1.0/channel/binding.json new file mode 100644 index 00000000..04dbf945 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/0.1.0/channel/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/0.1.0/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/nats/0.1.0/message/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/0.1.0/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/0.1.0/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/nats/0.1.0/message/binding - wrongly extended.json new file mode 100644 index 00000000..a1ecfd51 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/0.1.0/message/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/0.1.0/message/binding.json b/asyncapi-core/src/test/resources/bindings/nats/0.1.0/message/binding.json new file mode 100644 index 00000000..04dbf945 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/0.1.0/message/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/0.1.0/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/nats/0.1.0/operation/binding - extended.json new file mode 100644 index 00000000..0228f02a --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/0.1.0/operation/binding - extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion" : "0.1.0", + "queue" : "messages", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/operation/nats/natsOperationBinding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/nats/0.1.0/operation/binding - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/operation/nats/natsOperationBinding - wrongly extended.json rename to asyncapi-core/src/test/resources/bindings/nats/0.1.0/operation/binding - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/binding/operation/nats/natsOperationBinding.json b/asyncapi-core/src/test/resources/bindings/nats/0.1.0/operation/binding.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/operation/nats/natsOperationBinding.json rename to asyncapi-core/src/test/resources/bindings/nats/0.1.0/operation/binding.json diff --git a/asyncapi-core/src/test/resources/bindings/nats/0.1.0/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/nats/0.1.0/server/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/0.1.0/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/0.1.0/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/nats/0.1.0/server/binding - wrongly extended.json new file mode 100644 index 00000000..a1ecfd51 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/0.1.0/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/0.1.0/server/binding.json b/asyncapi-core/src/test/resources/bindings/nats/0.1.0/server/binding.json new file mode 100644 index 00000000..04dbf945 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/0.1.0/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/latest/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/nats/latest/channel/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/latest/channel/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/latest/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/nats/latest/channel/binding - wrongly extended.json new file mode 100644 index 00000000..18560ee8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/latest/channel/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/latest/channel/binding.json b/asyncapi-core/src/test/resources/bindings/nats/latest/channel/binding.json new file mode 100644 index 00000000..cdf165f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/latest/channel/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/latest/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/nats/latest/message/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/latest/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/latest/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/nats/latest/message/binding - wrongly extended.json new file mode 100644 index 00000000..18560ee8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/latest/message/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/latest/message/binding.json b/asyncapi-core/src/test/resources/bindings/nats/latest/message/binding.json new file mode 100644 index 00000000..cdf165f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/latest/message/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/latest/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/nats/latest/operation/binding - extended.json new file mode 100644 index 00000000..0228f02a --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/latest/operation/binding - extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion" : "0.1.0", + "queue" : "messages", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/latest/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/nats/latest/operation/binding - wrongly extended.json new file mode 100644 index 00000000..69321bc2 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/latest/operation/binding - wrongly extended.json @@ -0,0 +1,10 @@ +{ + "queue": "messages", + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/latest/operation/binding.json b/asyncapi-core/src/test/resources/bindings/nats/latest/operation/binding.json new file mode 100644 index 00000000..d1726ebe --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/latest/operation/binding.json @@ -0,0 +1,4 @@ +{ + "queue": "messages", + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/latest/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/nats/latest/server/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/latest/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/latest/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/nats/latest/server/binding - wrongly extended.json new file mode 100644 index 00000000..18560ee8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/latest/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/latest/server/binding.json b/asyncapi-core/src/test/resources/bindings/nats/latest/server/binding.json new file mode 100644 index 00000000..cdf165f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/latest/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/unknown version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/nats/unknown version/channel/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/unknown version/channel/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/unknown version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/nats/unknown version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..62eff98f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/unknown version/channel/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.199.36", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/unknown version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/nats/unknown version/channel/binding.json new file mode 100644 index 00000000..1394045a --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/unknown version/channel/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.199.36" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/unknown version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/nats/unknown version/message/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/unknown version/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/unknown version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/nats/unknown version/message/binding - wrongly extended.json new file mode 100644 index 00000000..62eff98f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/unknown version/message/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.199.36", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/unknown version/message/binding.json b/asyncapi-core/src/test/resources/bindings/nats/unknown version/message/binding.json new file mode 100644 index 00000000..1394045a --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/unknown version/message/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.199.36" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/unknown version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/nats/unknown version/operation/binding - extended.json new file mode 100644 index 00000000..0228f02a --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/unknown version/operation/binding - extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion" : "0.1.0", + "queue" : "messages", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/unknown version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/nats/unknown version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..268c14f8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/unknown version/operation/binding - wrongly extended.json @@ -0,0 +1,10 @@ +{ + "queue": "messages", + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/unknown version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/nats/unknown version/operation/binding.json new file mode 100644 index 00000000..a27b1d07 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/unknown version/operation/binding.json @@ -0,0 +1,4 @@ +{ + "queue": "messages", + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/unknown version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/nats/unknown version/server/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/unknown version/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/unknown version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/nats/unknown version/server/binding - wrongly extended.json new file mode 100644 index 00000000..62eff98f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/unknown version/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.199.36", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/unknown version/server/binding.json b/asyncapi-core/src/test/resources/bindings/nats/unknown version/server/binding.json new file mode 100644 index 00000000..1394045a --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/unknown version/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.199.36" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/without version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/nats/without version/channel/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/without version/channel/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/without version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/nats/without version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/without version/channel/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/without version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/nats/without version/channel/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/without version/channel/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/without version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/nats/without version/message/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/without version/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/without version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/nats/without version/message/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/without version/message/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/without version/message/binding.json b/asyncapi-core/src/test/resources/bindings/nats/without version/message/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/without version/message/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/without version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/nats/without version/operation/binding - extended.json new file mode 100644 index 00000000..0228f02a --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/without version/operation/binding - extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion" : "0.1.0", + "queue" : "messages", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/without version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/nats/without version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..6772a890 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/without version/operation/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "queue": "messages", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/without version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/nats/without version/operation/binding.json new file mode 100644 index 00000000..00ed97cf --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/without version/operation/binding.json @@ -0,0 +1,3 @@ +{ + "queue": "messages" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/without version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/nats/without version/server/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/without version/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/without version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/nats/without version/server/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/without version/server/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/nats/without version/server/binding.json b/asyncapi-core/src/test/resources/bindings/nats/without version/server/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/nats/without version/server/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/channel/binding - extended.json new file mode 100644 index 00000000..77511187 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/channel/binding - extended.json @@ -0,0 +1,18 @@ +{ + "bindingVersion" : "0.1.0", + "namespace" : "staging", + "persistence" : "persistent", + "compaction" : 1000, + "geo-replication" : [ "us-east1", "us-west1" ], + "retention" : { + "time" : 7, + "size" : 1000 + }, + "ttl" : 360, + "deduplication" : false, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/channel/pulsar/pulsarChannelBinding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/channel/binding - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/channel/pulsar/pulsarChannelBinding - wrongly extended.json rename to asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/channel/binding - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/binding/channel/pulsar/pulsarChannelBinding.json b/asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/channel/binding.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/channel/pulsar/pulsarChannelBinding.json rename to asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/channel/binding.json diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/message/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/message/binding - wrongly extended.json new file mode 100644 index 00000000..a1ecfd51 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/message/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/message/binding.json b/asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/message/binding.json new file mode 100644 index 00000000..04dbf945 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/message/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/operation/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/operation/binding - wrongly extended.json new file mode 100644 index 00000000..a1ecfd51 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/operation/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/operation/binding.json b/asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/operation/binding.json new file mode 100644 index 00000000..04dbf945 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/operation/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/server/binding - extended.json new file mode 100644 index 00000000..c329a6b5 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/server/binding - extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion" : "0.1.0", + "tenant" : "contoso", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/server/pulsar/pulsarServerBinding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/server/binding - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/server/pulsar/pulsarServerBinding - wrongly extended.json rename to asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/server/binding - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/binding/server/pulsar/pulsarServerBinding.json b/asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/server/binding.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/server/pulsar/pulsarServerBinding.json rename to asyncapi-core/src/test/resources/bindings/pulsar/0.1.0/server/binding.json diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/latest/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/latest/channel/binding - extended.json new file mode 100644 index 00000000..77511187 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/latest/channel/binding - extended.json @@ -0,0 +1,18 @@ +{ + "bindingVersion" : "0.1.0", + "namespace" : "staging", + "persistence" : "persistent", + "compaction" : 1000, + "geo-replication" : [ "us-east1", "us-west1" ], + "retention" : { + "time" : 7, + "size" : 1000 + }, + "ttl" : 360, + "deduplication" : false, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/latest/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/latest/channel/binding - wrongly extended.json new file mode 100644 index 00000000..24ba9aa8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/latest/channel/binding - wrongly extended.json @@ -0,0 +1,22 @@ +{ + "namespace": "staging", + "persistence": "persistent", + "compaction": 1000, + "geo-replication": [ + "us-east1", + "us-west1" + ], + "retention": { + "time": 7, + "size": 1000 + }, + "ttl": 360, + "deduplication": false, + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/latest/channel/binding.json b/asyncapi-core/src/test/resources/bindings/pulsar/latest/channel/binding.json new file mode 100644 index 00000000..b0f63fd5 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/latest/channel/binding.json @@ -0,0 +1,16 @@ +{ + "namespace": "staging", + "persistence": "persistent", + "compaction": 1000, + "geo-replication": [ + "us-east1", + "us-west1" + ], + "retention": { + "time": 7, + "size": 1000 + }, + "ttl": 360, + "deduplication": false, + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/latest/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/latest/message/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/latest/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/latest/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/latest/message/binding - wrongly extended.json new file mode 100644 index 00000000..18560ee8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/latest/message/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/latest/message/binding.json b/asyncapi-core/src/test/resources/bindings/pulsar/latest/message/binding.json new file mode 100644 index 00000000..cdf165f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/latest/message/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/latest/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/latest/operation/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/latest/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/latest/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/latest/operation/binding - wrongly extended.json new file mode 100644 index 00000000..18560ee8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/latest/operation/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/latest/operation/binding.json b/asyncapi-core/src/test/resources/bindings/pulsar/latest/operation/binding.json new file mode 100644 index 00000000..cdf165f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/latest/operation/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/latest/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/latest/server/binding - extended.json new file mode 100644 index 00000000..c329a6b5 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/latest/server/binding - extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion" : "0.1.0", + "tenant" : "contoso", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/latest/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/latest/server/binding - wrongly extended.json new file mode 100644 index 00000000..909235ec --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/latest/server/binding - wrongly extended.json @@ -0,0 +1,10 @@ +{ + "tenant": "contoso", + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/latest/server/binding.json b/asyncapi-core/src/test/resources/bindings/pulsar/latest/server/binding.json new file mode 100644 index 00000000..e6faa846 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/latest/server/binding.json @@ -0,0 +1,4 @@ +{ + "tenant": "contoso", + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/channel/binding - extended.json new file mode 100644 index 00000000..77511187 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/channel/binding - extended.json @@ -0,0 +1,18 @@ +{ + "bindingVersion" : "0.1.0", + "namespace" : "staging", + "persistence" : "persistent", + "compaction" : 1000, + "geo-replication" : [ "us-east1", "us-west1" ], + "retention" : { + "time" : 7, + "size" : 1000 + }, + "ttl" : 360, + "deduplication" : false, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..d9add732 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/channel/binding - wrongly extended.json @@ -0,0 +1,22 @@ +{ + "namespace": "staging", + "persistence": "persistent", + "compaction": 1000, + "geo-replication": [ + "us-east1", + "us-west1" + ], + "retention": { + "time": 7, + "size": 1000 + }, + "ttl": 360, + "deduplication": false, + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/channel/binding.json new file mode 100644 index 00000000..deb124a9 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/channel/binding.json @@ -0,0 +1,16 @@ +{ + "namespace": "staging", + "persistence": "persistent", + "compaction": 1000, + "geo-replication": [ + "us-east1", + "us-west1" + ], + "retention": { + "time": 7, + "size": 1000 + }, + "ttl": 360, + "deduplication": false, + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/message/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/message/binding - wrongly extended.json new file mode 100644 index 00000000..0dee3264 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/message/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/message/binding.json b/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/message/binding.json new file mode 100644 index 00000000..defc96bf --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/message/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/operation/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..0dee3264 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/operation/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/operation/binding.json new file mode 100644 index 00000000..defc96bf --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/operation/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/server/binding - extended.json new file mode 100644 index 00000000..c329a6b5 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/server/binding - extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion" : "0.1.0", + "tenant" : "contoso", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/server/binding - wrongly extended.json new file mode 100644 index 00000000..dcd0974e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/server/binding - wrongly extended.json @@ -0,0 +1,10 @@ +{ + "tenant": "contoso", + "bindingVersion": "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/server/binding.json b/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/server/binding.json new file mode 100644 index 00000000..16f5faaf --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/unknown version/server/binding.json @@ -0,0 +1,4 @@ +{ + "tenant": "contoso", + "bindingVersion": "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/without version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/without version/channel/binding - extended.json new file mode 100644 index 00000000..77511187 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/without version/channel/binding - extended.json @@ -0,0 +1,18 @@ +{ + "bindingVersion" : "0.1.0", + "namespace" : "staging", + "persistence" : "persistent", + "compaction" : 1000, + "geo-replication" : [ "us-east1", "us-west1" ], + "retention" : { + "time" : 7, + "size" : 1000 + }, + "ttl" : 360, + "deduplication" : false, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/without version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/without version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..2900ae0b --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/without version/channel/binding - wrongly extended.json @@ -0,0 +1,21 @@ +{ + "namespace": "staging", + "persistence": "persistent", + "compaction": 1000, + "geo-replication": [ + "us-east1", + "us-west1" + ], + "retention": { + "time": 7, + "size": 1000 + }, + "ttl": 360, + "deduplication": false, + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/without version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/pulsar/without version/channel/binding.json new file mode 100644 index 00000000..7c2a75ea --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/without version/channel/binding.json @@ -0,0 +1,15 @@ +{ + "namespace": "staging", + "persistence": "persistent", + "compaction": 1000, + "geo-replication": [ + "us-east1", + "us-west1" + ], + "retention": { + "time": 7, + "size": 1000 + }, + "ttl": 360, + "deduplication": false +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/without version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/without version/message/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/without version/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/without version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/without version/message/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/without version/message/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/without version/message/binding.json b/asyncapi-core/src/test/resources/bindings/pulsar/without version/message/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/without version/message/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/without version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/without version/operation/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/without version/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/without version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/without version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/without version/operation/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/without version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/pulsar/without version/operation/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/without version/operation/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/without version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/without version/server/binding - extended.json new file mode 100644 index 00000000..c329a6b5 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/without version/server/binding - extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion" : "0.1.0", + "tenant" : "contoso", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/without version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/pulsar/without version/server/binding - wrongly extended.json new file mode 100644 index 00000000..67ac5d9c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/without version/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "tenant": "contoso", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/pulsar/without version/server/binding.json b/asyncapi-core/src/test/resources/bindings/pulsar/without version/server/binding.json new file mode 100644 index 00000000..ff77273f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/pulsar/without version/server/binding.json @@ -0,0 +1,3 @@ +{ + "tenant": "contoso" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/0.1.0/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sns/0.1.0/channel/binding - extended.json new file mode 100644 index 00000000..1379d1e2 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/0.1.0/channel/binding - extended.json @@ -0,0 +1,16 @@ +{ + "name" : "my-sns-topic", + "policy" : { + "statements" : [ { + "effect" : "Allow", + "principal" : "*", + "action" : "SNS:Publish" + } ] + }, + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/0.1.0/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sns/0.1.0/channel/binding - wrongly extended.json new file mode 100644 index 00000000..a0596141 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/0.1.0/channel/binding - wrongly extended.json @@ -0,0 +1,19 @@ +{ + "bindingVersion": "0.1.0", + "name": "my-sns-topic", + "policy": { + "statements": [ + { + "effect": "Allow", + "principal": "*", + "action": "SNS:Publish" + } + ] + }, + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/0.1.0/channel/binding.json b/asyncapi-core/src/test/resources/bindings/sns/0.1.0/channel/binding.json new file mode 100644 index 00000000..2b738eca --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/0.1.0/channel/binding.json @@ -0,0 +1,13 @@ +{ + "name": "my-sns-topic", + "policy": { + "statements": [ + { + "effect": "Allow", + "principal": "*", + "action": "SNS:Publish" + } + ] + }, + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/0.1.0/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sns/0.1.0/message/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/0.1.0/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/0.1.0/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sns/0.1.0/message/binding - wrongly extended.json new file mode 100644 index 00000000..a1ecfd51 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/0.1.0/message/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/0.1.0/message/binding.json b/asyncapi-core/src/test/resources/bindings/sns/0.1.0/message/binding.json new file mode 100644 index 00000000..04dbf945 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/0.1.0/message/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/0.1.0/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sns/0.1.0/operation/binding - extended.json new file mode 100644 index 00000000..b2abbf7d --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/0.1.0/operation/binding - extended.json @@ -0,0 +1,42 @@ +{ + "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 + } + } ], + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/0.1.0/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sns/0.1.0/operation/binding - wrongly extended.json new file mode 100644 index 00000000..d4e53949 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/0.1.0/operation/binding - wrongly extended.json @@ -0,0 +1,53 @@ +{ + "bindingVersion": "0.1.0", + "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 + } + } + ], + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/0.1.0/operation/binding.json b/asyncapi-core/src/test/resources/bindings/sns/0.1.0/operation/binding.json new file mode 100644 index 00000000..3c2dd78b --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/0.1.0/operation/binding.json @@ -0,0 +1,47 @@ +{ + "bindingVersion": "0.1.0", + "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 + } + } + ] +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/0.1.0/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sns/0.1.0/server/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/0.1.0/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/0.1.0/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sns/0.1.0/server/binding - wrongly extended.json new file mode 100644 index 00000000..a1ecfd51 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/0.1.0/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/0.1.0/server/binding.json b/asyncapi-core/src/test/resources/bindings/sns/0.1.0/server/binding.json new file mode 100644 index 00000000..04dbf945 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/0.1.0/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/latest/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sns/latest/channel/binding - extended.json new file mode 100644 index 00000000..1379d1e2 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/latest/channel/binding - extended.json @@ -0,0 +1,16 @@ +{ + "name" : "my-sns-topic", + "policy" : { + "statements" : [ { + "effect" : "Allow", + "principal" : "*", + "action" : "SNS:Publish" + } ] + }, + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/latest/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sns/latest/channel/binding - wrongly extended.json new file mode 100644 index 00000000..90d7b0fc --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/latest/channel/binding - wrongly extended.json @@ -0,0 +1,19 @@ +{ + "bindingVersion": "latest", + "name": "my-sns-topic", + "policy": { + "statements": [ + { + "effect": "Allow", + "principal": "*", + "action": "SNS:Publish" + } + ] + }, + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/latest/channel/binding.json b/asyncapi-core/src/test/resources/bindings/sns/latest/channel/binding.json new file mode 100644 index 00000000..e939fc04 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/latest/channel/binding.json @@ -0,0 +1,13 @@ +{ + "bindingVersion": "latest", + "name": "my-sns-topic", + "policy": { + "statements": [ + { + "effect": "Allow", + "principal": "*", + "action": "SNS:Publish" + } + ] + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/latest/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sns/latest/message/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/latest/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/latest/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sns/latest/message/binding - wrongly extended.json new file mode 100644 index 00000000..18560ee8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/latest/message/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/latest/message/binding.json b/asyncapi-core/src/test/resources/bindings/sns/latest/message/binding.json new file mode 100644 index 00000000..cdf165f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/latest/message/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/latest/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sns/latest/operation/binding - extended.json new file mode 100644 index 00000000..b2abbf7d --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/latest/operation/binding - extended.json @@ -0,0 +1,42 @@ +{ + "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 + } + } ], + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/latest/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sns/latest/operation/binding - wrongly extended.json new file mode 100644 index 00000000..3c5bfe42 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/latest/operation/binding - wrongly extended.json @@ -0,0 +1,53 @@ +{ + "bindingVersion": "latest", + "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 + } + } + ], + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/latest/operation/binding.json b/asyncapi-core/src/test/resources/bindings/sns/latest/operation/binding.json new file mode 100644 index 00000000..1adb799a --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/latest/operation/binding.json @@ -0,0 +1,47 @@ +{ + "bindingVersion": "latest", + "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 + } + } + ] +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/latest/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sns/latest/server/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/latest/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/latest/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sns/latest/server/binding - wrongly extended.json new file mode 100644 index 00000000..18560ee8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/latest/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/latest/server/binding.json b/asyncapi-core/src/test/resources/bindings/sns/latest/server/binding.json new file mode 100644 index 00000000..cdf165f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/latest/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/unknown version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sns/unknown version/channel/binding - extended.json new file mode 100644 index 00000000..1379d1e2 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/unknown version/channel/binding - extended.json @@ -0,0 +1,16 @@ +{ + "name" : "my-sns-topic", + "policy" : { + "statements" : [ { + "effect" : "Allow", + "principal" : "*", + "action" : "SNS:Publish" + } ] + }, + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/unknown version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sns/unknown version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..48201a7c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/unknown version/channel/binding - wrongly extended.json @@ -0,0 +1,19 @@ +{ + "bindingVersion": "0.199.36", + "name": "my-sns-topic", + "policy": { + "statements": [ + { + "effect": "Allow", + "principal": "*", + "action": "SNS:Publish" + } + ] + }, + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/unknown version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/sns/unknown version/channel/binding.json new file mode 100644 index 00000000..5af29617 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/unknown version/channel/binding.json @@ -0,0 +1,13 @@ +{ + "bindingVersion": "0.199.36", + "name": "my-sns-topic", + "policy": { + "statements": [ + { + "effect": "Allow", + "principal": "*", + "action": "SNS:Publish" + } + ] + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/unknown version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sns/unknown version/message/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/unknown version/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/unknown version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sns/unknown version/message/binding - wrongly extended.json new file mode 100644 index 00000000..62eff98f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/unknown version/message/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.199.36", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/unknown version/message/binding.json b/asyncapi-core/src/test/resources/bindings/sns/unknown version/message/binding.json new file mode 100644 index 00000000..1394045a --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/unknown version/message/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.199.36" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/unknown version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sns/unknown version/operation/binding - extended.json new file mode 100644 index 00000000..b2abbf7d --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/unknown version/operation/binding - extended.json @@ -0,0 +1,42 @@ +{ + "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 + } + } ], + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/unknown version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sns/unknown version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..65b0ec8d --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/unknown version/operation/binding - wrongly extended.json @@ -0,0 +1,53 @@ +{ + "bindingVersion": "0.199.36", + "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 + } + } + ], + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/unknown version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/sns/unknown version/operation/binding.json new file mode 100644 index 00000000..c7888286 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/unknown version/operation/binding.json @@ -0,0 +1,47 @@ +{ + "bindingVersion": "0.199.36", + "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 + } + } + ] +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/unknown version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sns/unknown version/server/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/unknown version/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/unknown version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sns/unknown version/server/binding - wrongly extended.json new file mode 100644 index 00000000..62eff98f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/unknown version/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.199.36", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/unknown version/server/binding.json b/asyncapi-core/src/test/resources/bindings/sns/unknown version/server/binding.json new file mode 100644 index 00000000..1394045a --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/unknown version/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.199.36" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/without version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sns/without version/channel/binding - extended.json new file mode 100644 index 00000000..1379d1e2 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/without version/channel/binding - extended.json @@ -0,0 +1,16 @@ +{ + "name" : "my-sns-topic", + "policy" : { + "statements" : [ { + "effect" : "Allow", + "principal" : "*", + "action" : "SNS:Publish" + } ] + }, + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/without version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sns/without version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..3b4be92c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/without version/channel/binding - wrongly extended.json @@ -0,0 +1,18 @@ +{ + "name": "my-sns-topic", + "policy": { + "statements": [ + { + "effect": "Allow", + "principal": "*", + "action": "SNS:Publish" + } + ] + }, + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/without version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/sns/without version/channel/binding.json new file mode 100644 index 00000000..8b95c79c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/without version/channel/binding.json @@ -0,0 +1,12 @@ +{ + "name": "my-sns-topic", + "policy": { + "statements": [ + { + "effect": "Allow", + "principal": "*", + "action": "SNS:Publish" + } + ] + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/without version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sns/without version/message/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/without version/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/without version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sns/without version/message/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/without version/message/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/without version/message/binding.json b/asyncapi-core/src/test/resources/bindings/sns/without version/message/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/without version/message/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/without version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sns/without version/operation/binding - extended.json new file mode 100644 index 00000000..b2abbf7d --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/without version/operation/binding - extended.json @@ -0,0 +1,42 @@ +{ + "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 + } + } ], + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/without version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sns/without version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..8ba5eb05 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/without version/operation/binding - wrongly extended.json @@ -0,0 +1,52 @@ +{ + "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 + } + } + ], + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/without version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/sns/without version/operation/binding.json new file mode 100644 index 00000000..756aadbe --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/without version/operation/binding.json @@ -0,0 +1,46 @@ +{ + "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 + } + } + ] +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/without version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sns/without version/server/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/without version/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/without version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sns/without version/server/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/without version/server/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sns/without version/server/binding.json b/asyncapi-core/src/test/resources/bindings/sns/without version/server/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sns/without version/server/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.2.0/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/solace/0.2.0/channel/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.2.0/channel/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.2.0/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/solace/0.2.0/channel/binding - wrongly extended.json new file mode 100644 index 00000000..1cb38f9c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.2.0/channel/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.2.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.2.0/channel/binding.json b/asyncapi-core/src/test/resources/bindings/solace/0.2.0/channel/binding.json new file mode 100644 index 00000000..a22565a8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.2.0/channel/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.2.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.2.0/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/solace/0.2.0/message/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.2.0/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.2.0/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/solace/0.2.0/message/binding - wrongly extended.json new file mode 100644 index 00000000..1cb38f9c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.2.0/message/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.2.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.2.0/message/binding.json b/asyncapi-core/src/test/resources/bindings/solace/0.2.0/message/binding.json new file mode 100644 index 00000000..a22565a8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.2.0/message/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.2.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.2.0/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/solace/0.2.0/operation/binding - extended.json new file mode 100644 index 00000000..f8651d51 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.2.0/operation/binding - extended.json @@ -0,0 +1,21 @@ +{ + "bindingVersion" : "0.2.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "CreatedHREvents", + "topicSubscriptions" : [ "person/*/created" ], + "accessType" : "exclusive" + } + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "person/*/updated" ] + } ], + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.2.0/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/solace/0.2.0/operation/binding - wrongly extended.json new file mode 100644 index 00000000..9b6caaa7 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.2.0/operation/binding - wrongly extended.json @@ -0,0 +1,27 @@ +{ + "destinations": [ + { + "destinationType": "queue", + "queue": { + "name": "CreatedHREvents", + "topicSubscriptions": [ + "person/*/created" + ], + "accessType": "exclusive" + } + }, + { + "destinationType": "topic", + "topicSubscriptions": [ + "person/*/updated" + ] + } + ], + "bindingVersion": "0.2.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.2.0/operation/binding.json b/asyncapi-core/src/test/resources/bindings/solace/0.2.0/operation/binding.json new file mode 100644 index 00000000..5ba5b132 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.2.0/operation/binding.json @@ -0,0 +1,21 @@ +{ + "destinations": [ + { + "destinationType": "queue", + "queue": { + "name": "CreatedHREvents", + "topicSubscriptions": [ + "person/*/created" + ], + "accessType": "exclusive" + } + }, + { + "destinationType": "topic", + "topicSubscriptions": [ + "person/*/updated" + ] + } + ], + "bindingVersion": "0.2.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.2.0/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/solace/0.2.0/server/binding - extended.json new file mode 100644 index 00000000..551d757c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.2.0/server/binding - extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion" : "0.2.0", + "msgVpn" : "solace.private.net", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.2.0/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/solace/0.2.0/server/binding - wrongly extended.json new file mode 100644 index 00000000..98e0cf99 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.2.0/server/binding - wrongly extended.json @@ -0,0 +1,10 @@ +{ + "msgVpn": "solace.private.net", + "bindingVersion": "0.2.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.2.0/server/binding.json b/asyncapi-core/src/test/resources/bindings/solace/0.2.0/server/binding.json new file mode 100644 index 00000000..d16c0ee2 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.2.0/server/binding.json @@ -0,0 +1,4 @@ +{ + "msgVpn": "solace.private.net", + "bindingVersion": "0.2.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.3.0/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/solace/0.3.0/channel/binding - extended.json new file mode 100644 index 00000000..8310c9d6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.3.0/channel/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.3.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.3.0/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/solace/0.3.0/channel/binding - wrongly extended.json new file mode 100644 index 00000000..943a1361 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.3.0/channel/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.3.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.3.0/channel/binding.json b/asyncapi-core/src/test/resources/bindings/solace/0.3.0/channel/binding.json new file mode 100644 index 00000000..4c2843f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.3.0/channel/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.3.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.3.0/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/solace/0.3.0/message/binding - extended.json new file mode 100644 index 00000000..8310c9d6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.3.0/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.3.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.3.0/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/solace/0.3.0/message/binding - wrongly extended.json new file mode 100644 index 00000000..943a1361 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.3.0/message/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.3.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.3.0/message/binding.json b/asyncapi-core/src/test/resources/bindings/solace/0.3.0/message/binding.json new file mode 100644 index 00000000..4c2843f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.3.0/message/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.3.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.3.0/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/solace/0.3.0/operation/binding - extended.json new file mode 100644 index 00000000..35b674a1 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.3.0/operation/binding - extended.json @@ -0,0 +1,23 @@ +{ + "bindingVersion" : "0.3.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "CreatedHREvents", + "topicSubscriptions" : [ "person/*/created" ], + "accessType" : "exclusive", + "maxMsgSpoolSize" : "1,500", + "maxTtl" : "60" + } + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "person/*/updated" ] + } ], + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.3.0/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/solace/0.3.0/operation/binding - wrongly extended.json new file mode 100644 index 00000000..9e57f054 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.3.0/operation/binding - wrongly extended.json @@ -0,0 +1,29 @@ +{ + "destinations": [ + { + "destinationType": "queue", + "queue": { + "name": "CreatedHREvents", + "topicSubscriptions": [ + "person/*/created" + ], + "accessType": "exclusive", + "maxMsgSpoolSize": "1,500", + "maxTtl": "60" + } + }, + { + "destinationType": "topic", + "topicSubscriptions": [ + "person/*/updated" + ] + } + ], + "bindingVersion": "0.3.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.3.0/operation/binding.json b/asyncapi-core/src/test/resources/bindings/solace/0.3.0/operation/binding.json new file mode 100644 index 00000000..7756f402 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.3.0/operation/binding.json @@ -0,0 +1,23 @@ +{ + "destinations": [ + { + "destinationType": "queue", + "queue": { + "name": "CreatedHREvents", + "topicSubscriptions": [ + "person/*/created" + ], + "accessType": "exclusive", + "maxMsgSpoolSize": "1,500", + "maxTtl": "60" + } + }, + { + "destinationType": "topic", + "topicSubscriptions": [ + "person/*/updated" + ] + } + ], + "bindingVersion": "0.3.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.3.0/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/solace/0.3.0/server/binding - extended.json new file mode 100644 index 00000000..c545b3af --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.3.0/server/binding - extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion" : "0.3.0", + "msgVpn" : "solace.private.net", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/server/solace/solaceServerBinding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/solace/0.3.0/server/binding - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/server/solace/solaceServerBinding - wrongly extended.json rename to asyncapi-core/src/test/resources/bindings/solace/0.3.0/server/binding - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/binding/server/solace/solaceServerBinding.json b/asyncapi-core/src/test/resources/bindings/solace/0.3.0/server/binding.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/server/solace/solaceServerBinding.json rename to asyncapi-core/src/test/resources/bindings/solace/0.3.0/server/binding.json diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.4.0/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/solace/0.4.0/channel/binding - extended.json new file mode 100644 index 00000000..675f2499 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.4.0/channel/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.4.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.4.0/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/solace/0.4.0/channel/binding - wrongly extended.json new file mode 100644 index 00000000..70ed3b2e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.4.0/channel/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.4.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.4.0/channel/binding.json b/asyncapi-core/src/test/resources/bindings/solace/0.4.0/channel/binding.json new file mode 100644 index 00000000..7f1a56d7 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.4.0/channel/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.4.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.4.0/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/solace/0.4.0/message/binding - extended.json new file mode 100644 index 00000000..675f2499 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.4.0/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.4.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.4.0/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/solace/0.4.0/message/binding - wrongly extended.json new file mode 100644 index 00000000..70ed3b2e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.4.0/message/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.4.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.4.0/message/binding.json b/asyncapi-core/src/test/resources/bindings/solace/0.4.0/message/binding.json new file mode 100644 index 00000000..7f1a56d7 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.4.0/message/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.4.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.4.0/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/solace/0.4.0/operation/binding - extended.json new file mode 100644 index 00000000..2aa995b3 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.4.0/operation/binding - extended.json @@ -0,0 +1,22 @@ +{ + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ], + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.4.0/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/solace/0.4.0/operation/binding - wrongly extended.json new file mode 100644 index 00000000..7e8c27ef --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.4.0/operation/binding - wrongly extended.json @@ -0,0 +1,27 @@ +{ + "destinations": [ + { + "destinationType": "queue", + "queue": { + "name": "sampleQueue", + "topicSubscriptions": [ + "samples/*" + ], + "accessType": "nonexclusive" + } + }, + { + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] + } + ], + "bindingVersion": "0.4.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.4.0/operation/binding.json b/asyncapi-core/src/test/resources/bindings/solace/0.4.0/operation/binding.json new file mode 100644 index 00000000..f669dd57 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.4.0/operation/binding.json @@ -0,0 +1,21 @@ +{ + "destinations": [ + { + "destinationType": "queue", + "queue": { + "name": "sampleQueue", + "topicSubscriptions": [ + "samples/*" + ], + "accessType": "nonexclusive" + } + }, + { + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] + } + ], + "bindingVersion": "0.4.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.4.0/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/solace/0.4.0/server/binding - extended.json new file mode 100644 index 00000000..76ef20ee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.4.0/server/binding - extended.json @@ -0,0 +1,10 @@ +{ + "bindingVersion" : "0.4.0", + "msgVpn" : "ProdVPN", + "clientName" : "transactions-broker", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.4.0/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/solace/0.4.0/server/binding - wrongly extended.json new file mode 100644 index 00000000..60a0500c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.4.0/server/binding - wrongly extended.json @@ -0,0 +1,11 @@ +{ + "clientName": "transactions-broker", + "msgVpn": "ProdVPN", + "bindingVersion": "0.4.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/0.4.0/server/binding.json b/asyncapi-core/src/test/resources/bindings/solace/0.4.0/server/binding.json new file mode 100644 index 00000000..40117440 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/0.4.0/server/binding.json @@ -0,0 +1,5 @@ +{ + "clientName": "transactions-broker", + "msgVpn": "ProdVPN", + "bindingVersion": "0.4.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/latest/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/solace/latest/channel/binding - extended.json new file mode 100644 index 00000000..675f2499 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/latest/channel/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.4.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/latest/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/solace/latest/channel/binding - wrongly extended.json new file mode 100644 index 00000000..fe7f9c54 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/latest/channel/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion" : "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/latest/channel/binding.json b/asyncapi-core/src/test/resources/bindings/solace/latest/channel/binding.json new file mode 100644 index 00000000..c09b90a7 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/latest/channel/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion" : "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/latest/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/solace/latest/message/binding - extended.json new file mode 100644 index 00000000..675f2499 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/latest/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.4.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/latest/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/solace/latest/message/binding - wrongly extended.json new file mode 100644 index 00000000..fe7f9c54 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/latest/message/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion" : "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/latest/message/binding.json b/asyncapi-core/src/test/resources/bindings/solace/latest/message/binding.json new file mode 100644 index 00000000..c09b90a7 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/latest/message/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion" : "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/latest/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/solace/latest/operation/binding - extended.json new file mode 100644 index 00000000..2aa995b3 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/latest/operation/binding - extended.json @@ -0,0 +1,22 @@ +{ + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ], + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/latest/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/solace/latest/operation/binding - wrongly extended.json new file mode 100644 index 00000000..172713b7 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/latest/operation/binding - wrongly extended.json @@ -0,0 +1,27 @@ +{ + "destinations": [ + { + "destinationType": "queue", + "queue": { + "name": "sampleQueue", + "topicSubscriptions": [ + "samples/*" + ], + "accessType": "nonexclusive" + } + }, + { + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] + } + ], + "bindingVersion" : "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/latest/operation/binding.json b/asyncapi-core/src/test/resources/bindings/solace/latest/operation/binding.json new file mode 100644 index 00000000..7e108d78 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/latest/operation/binding.json @@ -0,0 +1,21 @@ +{ + "destinations": [ + { + "destinationType": "queue", + "queue": { + "name": "sampleQueue", + "topicSubscriptions": [ + "samples/*" + ], + "accessType": "nonexclusive" + } + }, + { + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] + } + ], + "bindingVersion" : "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/latest/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/solace/latest/server/binding - extended.json new file mode 100644 index 00000000..76ef20ee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/latest/server/binding - extended.json @@ -0,0 +1,10 @@ +{ + "bindingVersion" : "0.4.0", + "msgVpn" : "ProdVPN", + "clientName" : "transactions-broker", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/latest/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/solace/latest/server/binding - wrongly extended.json new file mode 100644 index 00000000..60a0500c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/latest/server/binding - wrongly extended.json @@ -0,0 +1,11 @@ +{ + "clientName": "transactions-broker", + "msgVpn": "ProdVPN", + "bindingVersion": "0.4.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/latest/server/binding.json b/asyncapi-core/src/test/resources/bindings/solace/latest/server/binding.json new file mode 100644 index 00000000..6baba947 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/latest/server/binding.json @@ -0,0 +1,5 @@ +{ + "clientName": "transactions-broker", + "msgVpn": "ProdVPN", + "bindingVersion" : "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/unknown version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/solace/unknown version/channel/binding - extended.json new file mode 100644 index 00000000..675f2499 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/unknown version/channel/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.4.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/unknown version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/solace/unknown version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..0b2786f2 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/unknown version/channel/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion" : "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/unknown version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/solace/unknown version/channel/binding.json new file mode 100644 index 00000000..43fc5b66 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/unknown version/channel/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion" : "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/unknown version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/solace/unknown version/message/binding - extended.json new file mode 100644 index 00000000..675f2499 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/unknown version/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.4.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/unknown version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/solace/unknown version/message/binding - wrongly extended.json new file mode 100644 index 00000000..0b2786f2 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/unknown version/message/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion" : "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/unknown version/message/binding.json b/asyncapi-core/src/test/resources/bindings/solace/unknown version/message/binding.json new file mode 100644 index 00000000..43fc5b66 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/unknown version/message/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion" : "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/unknown version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/solace/unknown version/operation/binding - extended.json new file mode 100644 index 00000000..2aa995b3 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/unknown version/operation/binding - extended.json @@ -0,0 +1,22 @@ +{ + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ], + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/unknown version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/solace/unknown version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..e40ffdd3 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/unknown version/operation/binding - wrongly extended.json @@ -0,0 +1,27 @@ +{ + "destinations": [ + { + "destinationType": "queue", + "queue": { + "name": "sampleQueue", + "topicSubscriptions": [ + "samples/*" + ], + "accessType": "nonexclusive" + } + }, + { + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] + } + ], + "bindingVersion" : "unknown version", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/unknown version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/solace/unknown version/operation/binding.json new file mode 100644 index 00000000..4efaecc5 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/unknown version/operation/binding.json @@ -0,0 +1,21 @@ +{ + "destinations": [ + { + "destinationType": "queue", + "queue": { + "name": "sampleQueue", + "topicSubscriptions": [ + "samples/*" + ], + "accessType": "nonexclusive" + } + }, + { + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] + } + ], + "bindingVersion" : "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/unknown version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/solace/unknown version/server/binding - extended.json new file mode 100644 index 00000000..76ef20ee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/unknown version/server/binding - extended.json @@ -0,0 +1,10 @@ +{ + "bindingVersion" : "0.4.0", + "msgVpn" : "ProdVPN", + "clientName" : "transactions-broker", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/unknown version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/solace/unknown version/server/binding - wrongly extended.json new file mode 100644 index 00000000..0130aa77 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/unknown version/server/binding - wrongly extended.json @@ -0,0 +1,10 @@ +{ + "clientName": "transactions-broker", + "msgVpn": "ProdVPN", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/unknown version/server/binding.json b/asyncapi-core/src/test/resources/bindings/solace/unknown version/server/binding.json new file mode 100644 index 00000000..0e074946 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/unknown version/server/binding.json @@ -0,0 +1,5 @@ +{ + "clientName": "transactions-broker", + "msgVpn": "ProdVPN", + "bindingVersion" : "unknown version" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/without version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/solace/without version/channel/binding - extended.json new file mode 100644 index 00000000..675f2499 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/without version/channel/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.4.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/without version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/solace/without version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/without version/channel/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/without version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/solace/without version/channel/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/without version/channel/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/without version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/solace/without version/message/binding - extended.json new file mode 100644 index 00000000..675f2499 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/without version/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.4.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/without version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/solace/without version/message/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/without version/message/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/without version/message/binding.json b/asyncapi-core/src/test/resources/bindings/solace/without version/message/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/without version/message/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/without version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/solace/without version/operation/binding - extended.json new file mode 100644 index 00000000..2aa995b3 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/without version/operation/binding - extended.json @@ -0,0 +1,22 @@ +{ + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ], + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/without version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/solace/without version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..1d85adc9 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/without version/operation/binding - wrongly extended.json @@ -0,0 +1,26 @@ +{ + "destinations": [ + { + "destinationType": "queue", + "queue": { + "name": "sampleQueue", + "topicSubscriptions": [ + "samples/*" + ], + "accessType": "nonexclusive" + } + }, + { + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] + } + ], + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/without version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/solace/without version/operation/binding.json new file mode 100644 index 00000000..22f6f0cb --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/without version/operation/binding.json @@ -0,0 +1,20 @@ +{ + "destinations": [ + { + "destinationType": "queue", + "queue": { + "name": "sampleQueue", + "topicSubscriptions": [ + "samples/*" + ], + "accessType": "nonexclusive" + } + }, + { + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] + } + ] +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/without version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/solace/without version/server/binding - extended.json new file mode 100644 index 00000000..76ef20ee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/without version/server/binding - extended.json @@ -0,0 +1,10 @@ +{ + "bindingVersion" : "0.4.0", + "msgVpn" : "ProdVPN", + "clientName" : "transactions-broker", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/without version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/solace/without version/server/binding - wrongly extended.json new file mode 100644 index 00000000..0130aa77 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/without version/server/binding - wrongly extended.json @@ -0,0 +1,10 @@ +{ + "clientName": "transactions-broker", + "msgVpn": "ProdVPN", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/solace/without version/server/binding.json b/asyncapi-core/src/test/resources/bindings/solace/without version/server/binding.json new file mode 100644 index 00000000..50f224a1 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/solace/without version/server/binding.json @@ -0,0 +1,4 @@ +{ + "clientName": "transactions-broker", + "msgVpn": "ProdVPN" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/channel/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/channel/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/channel/binding - wrongly extended.json new file mode 100644 index 00000000..a1ecfd51 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/channel/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/channel/binding.json b/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/channel/binding.json new file mode 100644 index 00000000..04dbf945 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/channel/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/message/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/message/binding - wrongly extended.json new file mode 100644 index 00000000..a1ecfd51 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/message/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/message/binding.json b/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/message/binding.json new file mode 100644 index 00000000..04dbf945 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/message/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/operation/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/operation/binding - wrongly extended.json new file mode 100644 index 00000000..a1ecfd51 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/operation/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/operation/binding.json b/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/operation/binding.json new file mode 100644 index 00000000..04dbf945 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/operation/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/server/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/server/binding - wrongly extended.json new file mode 100644 index 00000000..a1ecfd51 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/server/binding.json b/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/server/binding.json new file mode 100644 index 00000000..04dbf945 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/0.1.0/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/channel/binding - extended.json new file mode 100644 index 00000000..713f4911 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/channel/binding - extended.json @@ -0,0 +1,45 @@ +{ + "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" + } + }, + "deadLetterQueue" : { + "name" : "myQueue_error", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 0, + "visibilityTimeout" : 0, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 604800 + }, + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/channel/binding - wrongly extended.json new file mode 100644 index 00000000..9f5e540f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/channel/binding - wrongly extended.json @@ -0,0 +1,48 @@ +{ + "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" + } + }, + "deadLetterQueue": { + "name": "myQueue_error", + "deliveryDelay": 0, + "visibilityTimeout": 0, + "receiveMessageWaitTime": 0, + "messageRetentionPeriod": 604800 + }, + "bindingVersion": "0.2.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/channel/binding.json b/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/channel/binding.json new file mode 100644 index 00000000..e7bda09d --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/channel/binding.json @@ -0,0 +1,42 @@ +{ + "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" + } + }, + "deadLetterQueue": { + "name": "myQueue_error", + "deliveryDelay": 0, + "visibilityTimeout": 0, + "receiveMessageWaitTime": 0, + "messageRetentionPeriod": 604800 + }, + "bindingVersion": "0.2.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/message/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/message/binding - wrongly extended.json new file mode 100644 index 00000000..1cb38f9c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/message/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.2.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/message/binding.json b/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/message/binding.json new file mode 100644 index 00000000..a22565a8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/message/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.2.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/operation/binding - extended.json new file mode 100644 index 00000000..d953c2be --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/operation/binding - extended.json @@ -0,0 +1,40 @@ +{ + "queues" : [ { + "name" : "myQueue", + "fifoQueue" : true, + "deduplicationScope" : "messageGroup", + "fifoThroughputLimit" : "perMessageGroupId", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600, + "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", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600 + } ], + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/operation/binding - wrongly extended.json new file mode 100644 index 00000000..89f6c964 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/operation/binding - wrongly extended.json @@ -0,0 +1,40 @@ +{ + "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 + } + ], + "bindingVersion": "0.2.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/operation/binding.json b/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/operation/binding.json new file mode 100644 index 00000000..cb6af7b3 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/operation/binding.json @@ -0,0 +1,34 @@ +{ + "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 + } + ], + "bindingVersion": "0.2.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/server/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/server/binding - wrongly extended.json new file mode 100644 index 00000000..1cb38f9c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.2.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/server/binding.json b/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/server/binding.json new file mode 100644 index 00000000..a22565a8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/0.2.0/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.2.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/latest/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sqs/latest/channel/binding - extended.json new file mode 100644 index 00000000..713f4911 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/latest/channel/binding - extended.json @@ -0,0 +1,45 @@ +{ + "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" + } + }, + "deadLetterQueue" : { + "name" : "myQueue_error", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 0, + "visibilityTimeout" : 0, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 604800 + }, + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/latest/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sqs/latest/channel/binding - wrongly extended.json new file mode 100644 index 00000000..7a58a793 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/latest/channel/binding - wrongly extended.json @@ -0,0 +1,48 @@ +{ + "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" + } + }, + "deadLetterQueue": { + "name": "myQueue_error", + "deliveryDelay": 0, + "visibilityTimeout": 0, + "receiveMessageWaitTime": 0, + "messageRetentionPeriod": 604800 + }, + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/latest/channel/binding.json b/asyncapi-core/src/test/resources/bindings/sqs/latest/channel/binding.json new file mode 100644 index 00000000..e860a7d5 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/latest/channel/binding.json @@ -0,0 +1,42 @@ +{ + "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" + } + }, + "deadLetterQueue": { + "name": "myQueue_error", + "deliveryDelay": 0, + "visibilityTimeout": 0, + "receiveMessageWaitTime": 0, + "messageRetentionPeriod": 604800 + }, + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/latest/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sqs/latest/message/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/latest/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/latest/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sqs/latest/message/binding - wrongly extended.json new file mode 100644 index 00000000..18560ee8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/latest/message/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/latest/message/binding.json b/asyncapi-core/src/test/resources/bindings/sqs/latest/message/binding.json new file mode 100644 index 00000000..cdf165f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/latest/message/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/latest/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sqs/latest/operation/binding - extended.json new file mode 100644 index 00000000..d953c2be --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/latest/operation/binding - extended.json @@ -0,0 +1,40 @@ +{ + "queues" : [ { + "name" : "myQueue", + "fifoQueue" : true, + "deduplicationScope" : "messageGroup", + "fifoThroughputLimit" : "perMessageGroupId", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600, + "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", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600 + } ], + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/latest/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sqs/latest/operation/binding - wrongly extended.json new file mode 100644 index 00000000..0247140c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/latest/operation/binding - wrongly extended.json @@ -0,0 +1,40 @@ +{ + "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 + } + ], + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/latest/operation/binding.json b/asyncapi-core/src/test/resources/bindings/sqs/latest/operation/binding.json new file mode 100644 index 00000000..211291e7 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/latest/operation/binding.json @@ -0,0 +1,34 @@ +{ + "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 + } + ], + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/latest/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sqs/latest/server/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/latest/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/latest/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sqs/latest/server/binding - wrongly extended.json new file mode 100644 index 00000000..18560ee8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/latest/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/latest/server/binding.json b/asyncapi-core/src/test/resources/bindings/sqs/latest/server/binding.json new file mode 100644 index 00000000..cdf165f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/latest/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/unknown version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sqs/unknown version/channel/binding - extended.json new file mode 100644 index 00000000..713f4911 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/unknown version/channel/binding - extended.json @@ -0,0 +1,45 @@ +{ + "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" + } + }, + "deadLetterQueue" : { + "name" : "myQueue_error", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 0, + "visibilityTimeout" : 0, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 604800 + }, + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/unknown version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sqs/unknown version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..0c4bc1dd --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/unknown version/channel/binding - wrongly extended.json @@ -0,0 +1,48 @@ +{ + "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" + } + }, + "deadLetterQueue": { + "name": "myQueue_error", + "deliveryDelay": 0, + "visibilityTimeout": 0, + "receiveMessageWaitTime": 0, + "messageRetentionPeriod": 604800 + }, + "bindingVersion": "0.199.36", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/unknown version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/sqs/unknown version/channel/binding.json new file mode 100644 index 00000000..75704365 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/unknown version/channel/binding.json @@ -0,0 +1,42 @@ +{ + "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" + } + }, + "deadLetterQueue": { + "name": "myQueue_error", + "deliveryDelay": 0, + "visibilityTimeout": 0, + "receiveMessageWaitTime": 0, + "messageRetentionPeriod": 604800 + }, + "bindingVersion": "0.199.36" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/unknown version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sqs/unknown version/message/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/unknown version/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/unknown version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sqs/unknown version/message/binding - wrongly extended.json new file mode 100644 index 00000000..62eff98f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/unknown version/message/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.199.36", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/unknown version/message/binding.json b/asyncapi-core/src/test/resources/bindings/sqs/unknown version/message/binding.json new file mode 100644 index 00000000..1394045a --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/unknown version/message/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.199.36" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/unknown version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sqs/unknown version/operation/binding - extended.json new file mode 100644 index 00000000..d953c2be --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/unknown version/operation/binding - extended.json @@ -0,0 +1,40 @@ +{ + "queues" : [ { + "name" : "myQueue", + "fifoQueue" : true, + "deduplicationScope" : "messageGroup", + "fifoThroughputLimit" : "perMessageGroupId", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600, + "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", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600 + } ], + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/unknown version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sqs/unknown version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..03c37a16 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/unknown version/operation/binding - wrongly extended.json @@ -0,0 +1,40 @@ +{ + "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 + } + ], + "bindingVersion": "0.199.36", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/unknown version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/sqs/unknown version/operation/binding.json new file mode 100644 index 00000000..bc70030b --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/unknown version/operation/binding.json @@ -0,0 +1,34 @@ +{ + "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 + } + ], + "bindingVersion": "0.199.36" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/unknown version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sqs/unknown version/server/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/unknown version/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/unknown version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sqs/unknown version/server/binding - wrongly extended.json new file mode 100644 index 00000000..62eff98f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/unknown version/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.199.36", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/unknown version/server/binding.json b/asyncapi-core/src/test/resources/bindings/sqs/unknown version/server/binding.json new file mode 100644 index 00000000..1394045a --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/unknown version/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.199.36" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/without version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sqs/without version/channel/binding - extended.json new file mode 100644 index 00000000..713f4911 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/without version/channel/binding - extended.json @@ -0,0 +1,45 @@ +{ + "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" + } + }, + "deadLetterQueue" : { + "name" : "myQueue_error", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 0, + "visibilityTimeout" : 0, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 604800 + }, + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/without version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sqs/without version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..dbd71da9 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/without version/channel/binding - wrongly extended.json @@ -0,0 +1,47 @@ +{ + "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" + } + }, + "deadLetterQueue": { + "name": "myQueue_error", + "deliveryDelay": 0, + "visibilityTimeout": 0, + "receiveMessageWaitTime": 0, + "messageRetentionPeriod": 604800 + }, + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/without version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/sqs/without version/channel/binding.json new file mode 100644 index 00000000..ee3828a2 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/without version/channel/binding.json @@ -0,0 +1,41 @@ +{ + "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" + } + }, + "deadLetterQueue": { + "name": "myQueue_error", + "deliveryDelay": 0, + "visibilityTimeout": 0, + "receiveMessageWaitTime": 0, + "messageRetentionPeriod": 604800 + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/without version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sqs/without version/message/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/without version/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/without version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sqs/without version/message/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/without version/message/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/without version/message/binding.json b/asyncapi-core/src/test/resources/bindings/sqs/without version/message/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/without version/message/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/without version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sqs/without version/operation/binding - extended.json new file mode 100644 index 00000000..d953c2be --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/without version/operation/binding - extended.json @@ -0,0 +1,40 @@ +{ + "queues" : [ { + "name" : "myQueue", + "fifoQueue" : true, + "deduplicationScope" : "messageGroup", + "fifoThroughputLimit" : "perMessageGroupId", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600, + "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", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600 + } ], + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/without version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sqs/without version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..9a2529f7 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/without version/operation/binding - wrongly extended.json @@ -0,0 +1,39 @@ +{ + "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 + } + ], + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/without version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/sqs/without version/operation/binding.json new file mode 100644 index 00000000..f4d6c740 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/without version/operation/binding.json @@ -0,0 +1,33 @@ +{ + "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 + } + ] +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/without version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/sqs/without version/server/binding - extended.json new file mode 100644 index 00000000..3e09b93f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/without version/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.2.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/without version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/sqs/without version/server/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/without version/server/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/sqs/without version/server/binding.json b/asyncapi-core/src/test/resources/bindings/sqs/without version/server/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/sqs/without version/server/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/channel/binding - extended.json new file mode 100644 index 00000000..79e2b501 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/channel/binding - extended.json @@ -0,0 +1,27 @@ +{ + "bindingVersion" : "0.1.0", + "method" : "GET", + "query" : { + "type" : "object", + "properties" : { + "ref" : { + "type" : "string", + "description" : "Referral." + } + } + }, + "headers" : { + "type" : "object", + "properties" : { + "Authentication" : { + "type" : "string", + "description" : "Authentication token" + } + } + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/channel/binding - wrongly extended.json new file mode 100644 index 00000000..7d7f59d8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/channel/binding - wrongly extended.json @@ -0,0 +1,28 @@ +{ + "bindingVersion": "0.1.0", + "method": "GET", + "query": { + "type": "object", + "properties": { + "ref": { + "type": "string", + "description": "Referral." + } + } + }, + "headers": { + "type": "object", + "properties": { + "Authentication": { + "type": "string", + "description": "Authentication token" + } + } + }, + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/channel/binding.json b/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/channel/binding.json new file mode 100644 index 00000000..00d45e5d --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/channel/binding.json @@ -0,0 +1,22 @@ +{ + "method": "GET", + "query": { + "type": "object", + "properties": { + "ref": { + "type": "string", + "description": "Referral." + } + } + }, + "headers": { + "type": "object", + "properties": { + "Authentication": { + "type": "string", + "description": "Authentication token" + } + } + }, + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/message/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/message/binding - wrongly extended.json new file mode 100644 index 00000000..a1ecfd51 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/message/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/message/binding.json b/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/message/binding.json new file mode 100644 index 00000000..04dbf945 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/message/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/operation/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/operation/binding - wrongly extended.json new file mode 100644 index 00000000..a1ecfd51 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/operation/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/operation/binding.json b/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/operation/binding.json new file mode 100644 index 00000000..04dbf945 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/operation/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/server/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/server/binding - wrongly extended.json new file mode 100644 index 00000000..a1ecfd51 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/server/binding.json b/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/server/binding.json new file mode 100644 index 00000000..04dbf945 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/0.1.0/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.1.0" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/latest/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/websockets/latest/channel/binding - extended.json new file mode 100644 index 00000000..79e2b501 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/latest/channel/binding - extended.json @@ -0,0 +1,27 @@ +{ + "bindingVersion" : "0.1.0", + "method" : "GET", + "query" : { + "type" : "object", + "properties" : { + "ref" : { + "type" : "string", + "description" : "Referral." + } + } + }, + "headers" : { + "type" : "object", + "properties" : { + "Authentication" : { + "type" : "string", + "description" : "Authentication token" + } + } + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/latest/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/websockets/latest/channel/binding - wrongly extended.json new file mode 100644 index 00000000..82c7f94c --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/latest/channel/binding - wrongly extended.json @@ -0,0 +1,28 @@ +{ + "method": "GET", + "query": { + "type": "object", + "properties": { + "ref": { + "type": "string", + "description": "Referral." + } + } + }, + "headers": { + "type": "object", + "properties": { + "Authentication": { + "type": "string", + "description": "Authentication token" + } + } + }, + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/latest/channel/binding.json b/asyncapi-core/src/test/resources/bindings/websockets/latest/channel/binding.json new file mode 100644 index 00000000..c5c07b8a --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/latest/channel/binding.json @@ -0,0 +1,22 @@ +{ + "method": "GET", + "query": { + "type": "object", + "properties": { + "ref": { + "type": "string", + "description": "Referral." + } + } + }, + "headers": { + "type": "object", + "properties": { + "Authentication": { + "type": "string", + "description": "Authentication token" + } + } + }, + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/latest/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/websockets/latest/message/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/latest/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/latest/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/websockets/latest/message/binding - wrongly extended.json new file mode 100644 index 00000000..18560ee8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/latest/message/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/latest/message/binding.json b/asyncapi-core/src/test/resources/bindings/websockets/latest/message/binding.json new file mode 100644 index 00000000..cdf165f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/latest/message/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/latest/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/websockets/latest/operation/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/latest/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/latest/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/websockets/latest/operation/binding - wrongly extended.json new file mode 100644 index 00000000..18560ee8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/latest/operation/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/latest/operation/binding.json b/asyncapi-core/src/test/resources/bindings/websockets/latest/operation/binding.json new file mode 100644 index 00000000..cdf165f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/latest/operation/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/latest/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/websockets/latest/server/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/latest/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/latest/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/websockets/latest/server/binding - wrongly extended.json new file mode 100644 index 00000000..18560ee8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/latest/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "latest", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/latest/server/binding.json b/asyncapi-core/src/test/resources/bindings/websockets/latest/server/binding.json new file mode 100644 index 00000000..cdf165f6 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/latest/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "latest" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/unknown version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/websockets/unknown version/channel/binding - extended.json new file mode 100644 index 00000000..79e2b501 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/unknown version/channel/binding - extended.json @@ -0,0 +1,27 @@ +{ + "bindingVersion" : "0.1.0", + "method" : "GET", + "query" : { + "type" : "object", + "properties" : { + "ref" : { + "type" : "string", + "description" : "Referral." + } + } + }, + "headers" : { + "type" : "object", + "properties" : { + "Authentication" : { + "type" : "string", + "description" : "Authentication token" + } + } + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/unknown version/channel/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/websockets/unknown version/channel/binding - wrongly extended.json new file mode 100644 index 00000000..01ba2357 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/unknown version/channel/binding - wrongly extended.json @@ -0,0 +1,28 @@ +{ + "bindingVersion": "0.199.36", + "method": "GET", + "query": { + "type": "object", + "properties": { + "ref": { + "type": "string", + "description": "Referral." + } + } + }, + "headers": { + "type": "object", + "properties": { + "Authentication": { + "type": "string", + "description": "Authentication token" + } + } + }, + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/unknown version/channel/binding.json b/asyncapi-core/src/test/resources/bindings/websockets/unknown version/channel/binding.json new file mode 100644 index 00000000..6099c36e --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/unknown version/channel/binding.json @@ -0,0 +1,22 @@ +{ + "method": "GET", + "query": { + "type": "object", + "properties": { + "ref": { + "type": "string", + "description": "Referral." + } + } + }, + "headers": { + "type": "object", + "properties": { + "Authentication": { + "type": "string", + "description": "Authentication token" + } + } + }, + "bindingVersion": "0.199.36" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/unknown version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/websockets/unknown version/message/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/unknown version/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/unknown version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/websockets/unknown version/message/binding - wrongly extended.json new file mode 100644 index 00000000..a1ecfd51 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/unknown version/message/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.1.0", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/unknown version/message/binding.json b/asyncapi-core/src/test/resources/bindings/websockets/unknown version/message/binding.json new file mode 100644 index 00000000..1394045a --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/unknown version/message/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.199.36" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/unknown version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/websockets/unknown version/operation/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/unknown version/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/unknown version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/websockets/unknown version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..62eff98f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/unknown version/operation/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.199.36", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/unknown version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/websockets/unknown version/operation/binding.json new file mode 100644 index 00000000..1394045a --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/unknown version/operation/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.199.36" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/unknown version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/websockets/unknown version/server/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/unknown version/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/unknown version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/websockets/unknown version/server/binding - wrongly extended.json new file mode 100644 index 00000000..62eff98f --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/unknown version/server/binding - wrongly extended.json @@ -0,0 +1,9 @@ +{ + "bindingVersion": "0.199.36", + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/unknown version/server/binding.json b/asyncapi-core/src/test/resources/bindings/websockets/unknown version/server/binding.json new file mode 100644 index 00000000..1394045a --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/unknown version/server/binding.json @@ -0,0 +1,3 @@ +{ + "bindingVersion": "0.199.36" +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/without version/channel/binding - extended.json b/asyncapi-core/src/test/resources/bindings/websockets/without version/channel/binding - extended.json new file mode 100644 index 00000000..79e2b501 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/without version/channel/binding - extended.json @@ -0,0 +1,27 @@ +{ + "bindingVersion" : "0.1.0", + "method" : "GET", + "query" : { + "type" : "object", + "properties" : { + "ref" : { + "type" : "string", + "description" : "Referral." + } + } + }, + "headers" : { + "type" : "object", + "properties" : { + "Authentication" : { + "type" : "string", + "description" : "Authentication token" + } + } + }, + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/channel/ws/webSocketsChannelBinding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/websockets/without version/channel/binding - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/channel/ws/webSocketsChannelBinding - wrongly extended.json rename to asyncapi-core/src/test/resources/bindings/websockets/without version/channel/binding - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/binding/channel/ws/webSocketsChannelBinding.json b/asyncapi-core/src/test/resources/bindings/websockets/without version/channel/binding.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/binding/channel/ws/webSocketsChannelBinding.json rename to asyncapi-core/src/test/resources/bindings/websockets/without version/channel/binding.json diff --git a/asyncapi-core/src/test/resources/bindings/websockets/without version/message/binding - extended.json b/asyncapi-core/src/test/resources/bindings/websockets/without version/message/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/without version/message/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/without version/message/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/websockets/without version/message/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/without version/message/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/without version/message/binding.json b/asyncapi-core/src/test/resources/bindings/websockets/without version/message/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/without version/message/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/without version/operation/binding - extended.json b/asyncapi-core/src/test/resources/bindings/websockets/without version/operation/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/without version/operation/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/without version/operation/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/websockets/without version/operation/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/without version/operation/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/without version/operation/binding.json b/asyncapi-core/src/test/resources/bindings/websockets/without version/operation/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/without version/operation/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/without version/server/binding - extended.json b/asyncapi-core/src/test/resources/bindings/websockets/without version/server/binding - extended.json new file mode 100644 index 00000000..32459b79 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/without version/server/binding - extended.json @@ -0,0 +1,8 @@ +{ + "bindingVersion" : "0.1.0", + "x-number" : 0, + "x-string" : "", + "x-object" : { + "property" : { } + } +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/without version/server/binding - wrongly extended.json b/asyncapi-core/src/test/resources/bindings/websockets/without version/server/binding - wrongly extended.json new file mode 100644 index 00000000..a16bbdf8 --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/without version/server/binding - wrongly extended.json @@ -0,0 +1,8 @@ +{ + "x-number": 0, + "x-string": "", + "x-object": { + "property": {} + }, + "ext-number": 1 +} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/bindings/websockets/without version/server/binding.json b/asyncapi-core/src/test/resources/bindings/websockets/without version/server/binding.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/asyncapi-core/src/test/resources/bindings/websockets/without version/server/binding.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/examples/v2.0.0/gitter-streaming.yml b/asyncapi-core/src/test/resources/examples/v2.0.0/gitter-streaming.yml index 85ed148f..9e130089 100644 --- a/asyncapi-core/src/test/resources/examples/v2.0.0/gitter-streaming.yml +++ b/asyncapi-core/src/test/resources/examples/v2.0.0/gitter-streaming.yml @@ -30,8 +30,7 @@ channels: - events subscribe: bindings: - http: - type: response + http: {} message: $ref: '#/components/messages/chatMessage' diff --git a/asyncapi-core/src/test/resources/examples/v2.0.0/operation-security.yml b/asyncapi-core/src/test/resources/examples/v2.0.0/operation-security.yml index c0f77bc2..4f60f609 100644 --- a/asyncapi-core/src/test/resources/examples/v2.0.0/operation-security.yml +++ b/asyncapi-core/src/test/resources/examples/v2.0.0/operation-security.yml @@ -12,7 +12,6 @@ channels: $ref: '#/components/messages/message' bindings: http: - type: request method: POST components: messages: diff --git a/asyncapi-core/src/test/resources/examples/v2.6.0/gitter-streaming.yml b/asyncapi-core/src/test/resources/examples/v2.6.0/gitter-streaming.yml index 335286be..57bce912 100644 --- a/asyncapi-core/src/test/resources/examples/v2.6.0/gitter-streaming.yml +++ b/asyncapi-core/src/test/resources/examples/v2.6.0/gitter-streaming.yml @@ -30,8 +30,7 @@ channels: - events subscribe: bindings: - http: - type: response + http: {} message: oneOf: - $ref: '#/components/messages/chatMessage' @@ -44,7 +43,7 @@ components: scheme: bearer messages: chatMessage: - schemaFormat: 'application/schema+yaml;version=draft-07' + schemaFormat: 'application/vnd.aai.asyncapi+yaml;version=2.6.0' summary: >- A message represents an individual chat message sent to a room. They are a sub-resource of a room. @@ -147,7 +146,7 @@ components: $ref: '#/components/messageBindings/streamingHeaders' heartbeat: - schemaFormat: 'application/schema+yaml;version=draft-07' + schemaFormat: 'application/vnd.aai.asyncapi+yaml;version=2.6.0' summary: Its purpose is to keep the connection alive. payload: type: string diff --git a/asyncapi-core/src/test/resources/examples/v2.6.0/operation-security.yml b/asyncapi-core/src/test/resources/examples/v2.6.0/operation-security.yml index fed5e202..acf2b6a0 100644 --- a/asyncapi-core/src/test/resources/examples/v2.6.0/operation-security.yml +++ b/asyncapi-core/src/test/resources/examples/v2.6.0/operation-security.yml @@ -12,7 +12,6 @@ channels: $ref: '#/components/messages/message' bindings: http: - type: request method: POST security: - petstore_auth: diff --git a/asyncapi-core/src/test/resources/examples/v2.6.0/schemaFormat - asyncapi payload.yml b/asyncapi-core/src/test/resources/examples/v2.6.0/schemaFormat - asyncapi payload.yml new file mode 100644 index 00000000..a5e9b09c --- /dev/null +++ b/asyncapi-core/src/test/resources/examples/v2.6.0/schemaFormat - asyncapi payload.yml @@ -0,0 +1,38 @@ +asyncapi: 2.6.0 +info: + title: Kafka Queue Example + version: '1.0.0' +servers: + activemq: + url: tcp://localhost:61616 + protocol: kafka +channels: + products: + publish: + operationId: publishObjectMessage + message: + $ref: "#/components/messages/product" +components: + messages: + product: + name: product + title: An inventory product + summary: Product representing items in inventory + contentType: application/json + schemaFormat: application/vnd.aai.asyncapi+json;version=2.6.0 + payload: + $id: 'https://example.com/person.schema.json' + $schema: 'http://json-schema.org/draft-07/schema#' + title: Person + type: object + properties: + firstName: + type: string + description: The person's first name. + lastName: + type: string + description: The person's last name. + age: + description: Age in years which must be equal to or greater than zero. + type: integer + minimum: 0 \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/examples/v2.6.0/schemaFormat - avro payload.yml b/asyncapi-core/src/test/resources/examples/v2.6.0/schemaFormat - avro payload.yml new file mode 100644 index 00000000..7db6a0b1 --- /dev/null +++ b/asyncapi-core/src/test/resources/examples/v2.6.0/schemaFormat - avro payload.yml @@ -0,0 +1,41 @@ +asyncapi: 2.6.0 +info: + title: Kafka Queue Example + version: '1.0.0' +servers: + activemq: + url: tcp://localhost:61616 + protocol: kafka +channels: + products: + publish: + operationId: publishObjectMessage + message: + $ref: "#/components/messages/product" +components: + messages: + product: + name: product + title: An inventory product + summary: Product representing items in inventory + contentType: application/json + schemaFormat: application/vnd.apache.avro;version=1.11.1 + payload: + namespace: model + type: record + doc: '' + name: ApplicationEvent + fields: + - name: applicationId + type: string + doc: Application ID + - name: status + type: string + doc: Application Status + - name: documents + type: + - 'null' + - type: array + items: model.DocumentInfo + doc: '' + default: null \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/examples/v2.6.0/schemaFormat - json schema payload.yml b/asyncapi-core/src/test/resources/examples/v2.6.0/schemaFormat - json schema payload.yml new file mode 100644 index 00000000..61940f04 --- /dev/null +++ b/asyncapi-core/src/test/resources/examples/v2.6.0/schemaFormat - json schema payload.yml @@ -0,0 +1,38 @@ +asyncapi: 2.6.0 +info: + title: Kafka Queue Example + version: '1.0.0' +servers: + activemq: + url: tcp://localhost:61616 + protocol: kafka +channels: + products: + publish: + operationId: publishObjectMessage + message: + $ref: "#/components/messages/product" +components: + messages: + product: + name: product + title: An inventory product + summary: Product representing items in inventory + contentType: application/json + schemaFormat: application/schema+json;version=draft-07 + payload: + $id: 'https://example.com/person.schema.json' + $schema: 'http://json-schema.org/draft-07/schema#' + title: Person + type: object + properties: + firstName: + type: string + description: The person's first name. + lastName: + type: string + description: The person's last name. + age: + description: Age in years which must be equal to or greater than zero. + type: integer + minimum: 0 \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/examples/v2.6.0/schemaFormat - openapi payload.yml b/asyncapi-core/src/test/resources/examples/v2.6.0/schemaFormat - openapi payload.yml new file mode 100644 index 00000000..4fbbc5cd --- /dev/null +++ b/asyncapi-core/src/test/resources/examples/v2.6.0/schemaFormat - openapi payload.yml @@ -0,0 +1,36 @@ +asyncapi: 2.6.0 +info: + title: Kafka Queue Example + version: '1.0.0' +servers: + activemq: + url: tcp://localhost:61616 + protocol: kafka +channels: + products: + publish: + operationId: publishObjectMessage + message: + $ref: "#/components/messages/product" +components: + messages: + product: + name: product + title: An inventory product + summary: Product representing items in inventory + contentType: application/json + schemaFormat: application/vnd.oai.openapi;version=3.0.0 + payload: + type: object + properties: + name: + description: Every product has a name + type: string + example: Iphone + inventory: + description: Count of items in inventory + type: number + nullable: true + id: + description: Unique identifier of the product + type: number \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/examples/v2.6.0/schemaFormat - reference to asyncapi payload.yml b/asyncapi-core/src/test/resources/examples/v2.6.0/schemaFormat - reference to asyncapi payload.yml new file mode 100644 index 00000000..96081433 --- /dev/null +++ b/asyncapi-core/src/test/resources/examples/v2.6.0/schemaFormat - reference to asyncapi payload.yml @@ -0,0 +1,24 @@ +asyncapi: 2.6.0 +info: + title: Kafka Queue Example + version: '1.0.0' +servers: + activemq: + url: tcp://localhost:61616 + protocol: kafka +channels: + products: + publish: + operationId: publishObjectMessage + message: + $ref: "#/components/messages/product" +components: + messages: + product: + name: product + title: An inventory product + summary: Product representing items in inventory + contentType: application/json + schemaFormat: application/vnd.aai.asyncapi+json;version=2.6.0 + payload: + $ref: https://registry.local/persoon.json \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/examples/v2.6.0/schemaFormat - reference to avro payload.yml b/asyncapi-core/src/test/resources/examples/v2.6.0/schemaFormat - reference to avro payload.yml new file mode 100644 index 00000000..22172fd3 --- /dev/null +++ b/asyncapi-core/src/test/resources/examples/v2.6.0/schemaFormat - reference to avro payload.yml @@ -0,0 +1,24 @@ +asyncapi: 2.6.0 +info: + title: Kafka Queue Example + version: '1.0.0' +servers: + activemq: + url: tcp://localhost:61616 + protocol: kafka +channels: + products: + publish: + operationId: publishObjectMessage + message: + $ref: "#/components/messages/product" +components: + messages: + product: + name: product + title: An inventory product + summary: Product representing items in inventory + contentType: application/json + schemaFormat: application/vnd.apache.avro;version=1.11.1 + payload: + $ref: https://registry.local/product.avsc \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/examples/v2.6.0/schemaFormat - reference to json schema payload.yml b/asyncapi-core/src/test/resources/examples/v2.6.0/schemaFormat - reference to json schema payload.yml new file mode 100644 index 00000000..604087d5 --- /dev/null +++ b/asyncapi-core/src/test/resources/examples/v2.6.0/schemaFormat - reference to json schema payload.yml @@ -0,0 +1,24 @@ +asyncapi: 2.6.0 +info: + title: Kafka Queue Example + version: '1.0.0' +servers: + activemq: + url: tcp://localhost:61616 + protocol: kafka +channels: + products: + publish: + operationId: publishObjectMessage + message: + $ref: "#/components/messages/product" +components: + messages: + product: + name: product + title: An inventory product + summary: Product representing items in inventory + contentType: application/json + schemaFormat: application/schema+json;version=draft-07 + payload: + $ref: https://registry.local/persoon.json \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/examples/v2.6.0/schemaFormat - reference to openapi payload.yml b/asyncapi-core/src/test/resources/examples/v2.6.0/schemaFormat - reference to openapi payload.yml new file mode 100644 index 00000000..62c3e5a6 --- /dev/null +++ b/asyncapi-core/src/test/resources/examples/v2.6.0/schemaFormat - reference to openapi payload.yml @@ -0,0 +1,27 @@ +asyncapi: 2.6.0 +info: + title: Kafka Queue Example + version: '1.0.0' +servers: + activemq: + url: tcp://localhost:61616 + protocol: kafka +channels: + products: + publish: + operationId: publishObjectMessage + message: + $ref: "#/components/messages/product" +components: + messages: + product: + name: product + title: An inventory product + summary: Product representing items in inventory + contentType: application/json + schemaFormat: application/vnd.oai.openapi;version=3.0.0 + payload: + $ref: https://registry.local/product.json + correlationId: + description: abcd + location: in headers \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/examples/v3.0.0/gitter-streaming-asyncapi.yml b/asyncapi-core/src/test/resources/examples/v3.0.0/gitter-streaming-asyncapi.yml index fda2c45e..9c957476 100644 --- a/asyncapi-core/src/test/resources/examples/v3.0.0/gitter-streaming-asyncapi.yml +++ b/asyncapi-core/src/test/resources/examples/v3.0.0/gitter-streaming-asyncapi.yml @@ -157,6 +157,7 @@ components: Trailer: type: string const: \r\n + statusCode: 200 heartbeat: summary: Its purpose is to keep the connection alive. payload: @@ -175,4 +176,5 @@ components: const: chunked Trailer: type: string - const: \r\n \ No newline at end of file + const: \r\n + statusCode: 200 \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/asyncapi - extended.json b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/asyncapi - extended.json index 53b98080..65b58dbe 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/asyncapi - extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/asyncapi - extended.json @@ -26,13 +26,9 @@ "variables" : { "username" : { "description" : "This value is assigned by the service provider, in this example `gigantic-server.com`", - "examples" : null, - "enum" : null, "default" : "demo" }, "port" : { - "description" : null, - "examples" : null, "enum" : [ "8883", "8884" ], "default" : "8883" } @@ -41,26 +37,40 @@ "mqttBroker" : [ ] } ], "bindings" : { - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, - "http" : { }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { + "bindingVersion" : "0.2.0" + }, + "http" : { + "bindingVersion" : "0.3.0" + }, "ibmmq" : { + "bindingVersion" : "0.1.0", "groupId" : "PRODCLSTR1", "ccdtQueueManagerName" : "*", "cipherSpec" : "ANY_TLS12_OR_HIGHER", "multiEndpointServer" : false, - "heartBeatInterval" : 300, - "bindingVersion" : "0.1.0" + "heartBeatInterval" : 300 + }, + "jms" : { + "bindingVersion" : "0.0.1", + "jmsConnectionFactory" : "" }, - "jms" : { }, "kafka" : { + "bindingVersion" : "0.5.0", "schemaRegistryUrl" : "https://my-schema-registry.com", - "schemaRegistryVendor" : "confluent", - "bindingVersion" : "0.4.0" + "schemaRegistryVendor" : "confluent" + }, + "mercure" : { + "bindingVersion" : "0.1.0" }, - "mercure" : { }, "mqtt" : { + "bindingVersion" : "0.1.0", "clientId" : "guest", "cleanSession" : true, "lastWill" : { @@ -69,33 +79,44 @@ "message" : "Guest gone offline.", "retain" : false }, - "keepAlive" : 60, - "bindingVersion" : "0.1.0" + "keepAlive" : 60 }, "mqtt5" : { "sessionExpiryInterval" : 60, "bindingVersion" : "0.2.0" }, - "nats" : { }, + "nats" : { + "bindingVersion" : "0.1.0" + }, "pulsar" : { - "tenant" : "contoso", + "bindingVersion" : "0.1.0", + "tenant" : "contoso" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { "bindingVersion" : "0.1.0" }, - "redis" : { }, - "sns" : { }, "solace" : { - "msgVpn" : "solace.private.net", - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.4.0", + "msgVpn" : "ProdVPN", + "clientName" : "transactions-broker" + }, + "sqs" : { + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "ws" : { + "bindingVersion" : "0.1.0" + } } } }, "channels" : { "messages" : { - "$ref" : null, "description" : "This channel is used to exchange messages about users signing up", "subscribe" : { "operationId" : "sendMessage", @@ -115,6 +136,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -124,256 +146,166 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, + "ack" : false + }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { "bindingVersion" : "0.2.0" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, + "additionalProperties" : false + } + }, + "ibmmq" : { "bindingVersion" : "0.1.0" }, - "ibmmq" : { }, - "jms" : { }, + "jms" : { + "bindingVersion" : "0.0.1" + }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, - "mercure" : { }, + "mercure" : { + "bindingVersion" : "0.1.0" + }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true + }, + "mqtt5" : { + "bindingVersion" : "0.2.0" }, - "mqtt5" : { }, "nats" : { - "queue" : "messages", + "bindingVersion" : "0.1.0", + "queue" : "messages" + }, + "pulsar" : { + "bindingVersion" : "0.1.0" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "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 + } + } ], "bindingVersion" : "0.1.0" }, - "pulsar" : { }, - "redis" : { }, - "sns" : { }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null + "topicSubscriptions" : [ "samples/*" ] + } ] + }, + "sqs" : { + "queues" : [ { + "name" : "myQueue", + "fifoQueue" : true, + "deduplicationScope" : "messageGroup", + "fifoThroughputLimit" : "perMessageGroupId", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600, + "redrivePolicy" : { + "deadLetterQueue" : { + "name" : "myQueue_error" + }, + "maxReceiveCount" : 15 }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] + "policy" : { + "statements" : [ { + "effect" : "Deny", + "principal" : "arn:aws:iam::123456789012:user/dec.kolakowski", + "action" : [ "sqs:SendMessage", "sqs:ReceiveMessage" ] + } ] } + }, { + "name" : "myQueue_error", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600 } ], - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "ws" : { + "bindingVersion" : "0.1.0" + } }, "traits" : [ { "$ref" : "#/components/operationTraits/sendMessage" @@ -395,6 +327,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -404,256 +337,133 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, + "ack" : false + }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { "bindingVersion" : "0.2.0" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, + "additionalProperties" : false + } + }, + "ibmmq" : { "bindingVersion" : "0.1.0" }, - "ibmmq" : { }, - "jms" : { }, + "jms" : { + "bindingVersion" : "0.0.1" + }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, - "mercure" : { }, + "mercure" : { + "bindingVersion" : "0.1.0" + }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true + }, + "mqtt5" : { + "bindingVersion" : "0.2.0" }, - "mqtt5" : { }, "nats" : { - "queue" : "messages", + "bindingVersion" : "0.1.0", + "queue" : "messages" + }, + "pulsar" : { + "bindingVersion" : "0.1.0" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "consumers" : [ ], "bindingVersion" : "0.1.0" }, - "pulsar" : { }, - "redis" : { }, - "sns" : { }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null + "topicSubscriptions" : [ "samples/*" ] + } ] + }, + "sqs" : { + "queues" : [ { + "name" : "myQueue", + "fifoQueue" : true, + "deduplicationScope" : "messageGroup", + "fifoThroughputLimit" : "perMessageGroupId", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600, + "redrivePolicy" : { + "deadLetterQueue" : { + "name" : "myQueue_error" + }, + "maxReceiveCount" : 15 }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] + "policy" : { + "statements" : [ { + "effect" : "Deny", + "principal" : "arn:aws:iam::123456789012:user/dec.kolakowski", + "action" : [ "sqs:SendMessage", "sqs:ReceiveMessage" ] + } ] } + }, { + "name" : "myQueue_error", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600 } ], - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "ws" : { + "bindingVersion" : "0.1.0" + } } } ], "message" : { @@ -678,6 +488,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -687,256 +498,166 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, + "ack" : false + }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { "bindingVersion" : "0.2.0" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, + "additionalProperties" : false + } + }, + "ibmmq" : { "bindingVersion" : "0.1.0" }, - "ibmmq" : { }, - "jms" : { }, + "jms" : { + "bindingVersion" : "0.0.1" + }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, - "mercure" : { }, + "mercure" : { + "bindingVersion" : "0.1.0" + }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true + }, + "mqtt5" : { + "bindingVersion" : "0.2.0" }, - "mqtt5" : { }, "nats" : { - "queue" : "messages", + "bindingVersion" : "0.1.0", + "queue" : "messages" + }, + "pulsar" : { + "bindingVersion" : "0.1.0" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "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 + } + } ], "bindingVersion" : "0.1.0" }, - "pulsar" : { }, - "redis" : { }, - "sns" : { }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null + "topicSubscriptions" : [ "samples/*" ] + } ] + }, + "sqs" : { + "queues" : [ { + "name" : "myQueue", + "fifoQueue" : true, + "deduplicationScope" : "messageGroup", + "fifoThroughputLimit" : "perMessageGroupId", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600, + "redrivePolicy" : { + "deadLetterQueue" : { + "name" : "myQueue_error" + }, + "maxReceiveCount" : 15 }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] + "policy" : { + "statements" : [ { + "effect" : "Deny", + "principal" : "arn:aws:iam::123456789012:user/dec.kolakowski", + "action" : [ "sqs:SendMessage", "sqs:ReceiveMessage" ] + } ] } + }, { + "name" : "myQueue_error", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600 } ], - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.2.0" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "stomp" : { + "bindingVersion" : "0.1.0" + }, + "ws" : { + "bindingVersion" : "0.1.0" + } }, "traits" : [ { "$ref" : "#/components/operationTraits/sendMessage" @@ -958,6 +679,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -967,542 +689,159 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, + "ack" : false + }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { "bindingVersion" : "0.2.0" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, + "additionalProperties" : false + } + }, + "ibmmq" : { "bindingVersion" : "0.1.0" }, - "ibmmq" : { }, - "jms" : { }, + "jms" : { + "bindingVersion" : "0.0.1" + }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, - "mercure" : { }, + "mercure" : { + "bindingVersion" : "0.1.0" + }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true + }, + "mqtt5" : { + "bindingVersion" : "0.2.0" }, - "mqtt5" : { }, "nats" : { - "queue" : "messages", + "bindingVersion" : "0.1.0", + "queue" : "messages" + }, + "pulsar" : { + "bindingVersion" : "0.1.0" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "consumers" : [ ], "bindingVersion" : "0.1.0" }, - "pulsar" : { }, - "redis" : { }, - "sns" : { }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null + "topicSubscriptions" : [ "samples/*" ] + } ] + }, + "sqs" : { + "queues" : [ { + "name" : "myQueue", + "fifoQueue" : true, + "deduplicationScope" : "messageGroup", + "fifoThroughputLimit" : "perMessageGroupId", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600, + "redrivePolicy" : { + "deadLetterQueue" : { + "name" : "myQueue_error" + }, + "maxReceiveCount" : 15 }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] + "policy" : { + "statements" : [ { + "effect" : "Deny", + "principal" : "arn:aws:iam::123456789012:user/dec.kolakowski", + "action" : [ "sqs:SendMessage", "sqs:ReceiveMessage" ] + } ] } + }, { + "name" : "myQueue_error", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600 } ], - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.2.0" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "stomp" : { + "bindingVersion" : "0.1.0" + }, + "ws" : { + "bindingVersion" : "0.1.0" + } } } ], "message" : { "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" }, "applicationInstanceId" : { - "title" : null, - "description" : "Unique identifier for a given instance of the publishing application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Unique identifier for a given instance of the publishing application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "payload" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "user" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/userCreate", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/userCreate" }, "signup" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/signup", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/signup" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "correlationId" : { "description" : "Default Correlation ID", @@ -1515,17 +854,11 @@ "summary" : "Action to sign a user up.", "description" : "A longer description", "tags" : [ { - "name" : "user", - "description" : null, - "externalDocs" : null + "name" : "user" }, { - "name" : "signup", - "description" : null, - "externalDocs" : null + "name" : "signup" }, { - "name" : "register", - "description" : null, - "externalDocs" : null + "name" : "register" } ], "externalDocs" : { "description" : "User sign up rules", @@ -1533,290 +866,98 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" + }, + "amqp1" : { + "bindingVersion" : "0.1.0" }, - "amqp1" : { }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.0.1" + } + } }, "googlepubsub" : { - "orderingKey" : null, - "attributes" : null, + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Content-Type" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "application/json" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "application/json" ] } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 + }, + "jms" : { + "bindingVersion" : "0.0.1" }, - "jms" : { }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myKey" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" + }, + "mercure" : { + "bindingVersion" : "0.1.0" }, - "mercure" : { }, "mqtt" : { "bindingVersion" : "0.1.0" }, - "mqtt5" : { }, - "nats" : { }, - "pulsar" : { }, - "redis" : { }, - "sns" : { }, - "solace" : { }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "mqtt5" : { + "bindingVersion" : "0.2.0" + }, + "nats" : { + "bindingVersion" : "0.1.0" + }, + "pulsar" : { + "bindingVersion" : "0.1.0" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "bindingVersion" : "0.1.0" + }, + "solace" : { + "bindingVersion" : "0.4.0" + }, + "sqs" : { + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" + }, + "ws" : { + "bindingVersion" : "0.1.0" + } }, "examples" : [ { "headers" : { @@ -1841,57 +982,14 @@ "userId" : { "description" : "Id of the user.", "schema" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "type" : "string" }, "location" : "$message.payload#/user/id" } }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "is" : "routingKey", "exchange" : { "name" : "myExchange", @@ -1906,32 +1004,33 @@ "exclusive" : true, "autoDelete" : false, "vhost" : "/" - }, - "bindingVersion" : "0.2.0" + } + }, + "amqp1" : { + "bindingVersion" : "0.1.0" }, - "amqp1" : { }, "anypointmq" : { + "bindingVersion" : "0.0.1", "destination" : "user-signup-exchg", - "destinationType" : "exchange", - "bindingVersion" : "0.0.1" + "destinationType" : "exchange" }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "topic" : "projects/your-project/topics/topic-proto-schema", - "labels" : null, "messageRetentionDuration" : "86400s", "messageStoragePolicy" : { "allowedPersistenceRegions" : [ "us-central1", "us-central2", "us-east1", "us-east4", "us-east5", "us-east7", "us-south1", "us-west1", "us-west2", "us-west3", "us-west4" ] }, "schemaSettings" : { "encoding" : "binary", - "firstRevisionId" : null, - "lastRevisionId" : null, "name" : "projects/your-project/schemas/message-proto" - }, - "bindingVersion" : "0.1.0" + } + }, + "http" : { + "bindingVersion" : "0.3.0" }, - "http" : { }, "ibmmq" : { + "bindingVersion" : "0.1.0", "destinationType" : "topic", "queue" : { "objectName" : "message", @@ -1944,12 +1043,13 @@ "durablePermitted" : true, "lastMsgRetained" : true }, - "maxMsgLength" : 1024, - "bindingVersion" : "0.1.0" + "maxMsgLength" : 1024 + }, + "jms" : { + "bindingVersion" : "0.0.1" }, - "jms" : { }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "topic" : "my-specific-topic-name", "partitions" : 20, "replicas" : 3, @@ -1961,221 +1061,112 @@ "max.message.bytes" : 1048588 } }, - "mercure" : { }, - "mqtt" : { }, - "mqtt5" : { }, - "nats" : { }, - "pulsar" : { - "namespace" : "staging", - "persistence" : "persistent", - "compaction" : 1000, - "geo-replication" : [ "us-east1", "us-west1" ], - "retention" : { - "time" : 7, - "size" : 1000 - }, + "mercure" : { + "bindingVersion" : "0.1.0" + }, + "mqtt" : { + "bindingVersion" : "0.2.0" + }, + "mqtt5" : { + "bindingVersion" : "0.2.0" + }, + "nats" : { + "bindingVersion" : "0.1.0" + }, + "pulsar" : { + "bindingVersion" : "0.1.0", + "namespace" : "staging", + "persistence" : "persistent", + "compaction" : 1000, + "geo-replication" : [ "us-east1", "us-west1" ], + "retention" : { + "time" : 7, + "size" : 1000 + }, "ttl" : 360, - "deduplication" : false, + "deduplication" : false + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "name" : "my-sns-topic", + "policy" : { + "statements" : [ { + "effect" : "Allow", + "principal" : "*", + "action" : "SNS:Publish" + } ] + }, + "bindingVersion" : "0.1.0" + }, + "solace" : { + "bindingVersion" : "0.4.0" + }, + "sqs" : { + "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" + } + }, + "deadLetterQueue" : { + "name" : "myQueue_error", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 0, + "visibilityTimeout" : 0, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 604800 + }, + "bindingVersion" : "0.2.0" + }, + "stomp" : { "bindingVersion" : "0.1.0" }, - "redis" : { }, - "sns" : { }, - "solace" : { }, - "sqs" : { }, - "stomp" : { }, "ws" : { + "bindingVersion" : "0.1.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "ref" : { - "title" : null, - "description" : "Referral.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Referral." } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Authentication" : { - "title" : null, - "description" : "Authentication token", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Authentication token" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + } + } } } } @@ -2183,288 +1174,28 @@ "components" : { "schemas" : { "Category" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "id" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "integer", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : "int64", - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "format" : "int64" }, "name" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "type" : "string" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "Tag" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "id" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "integer", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : "int64", - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "format" : "int64" }, "name" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "type" : "string" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "User" : { "$ref" : "#/components/schemas/user" @@ -2473,288 +1204,28 @@ "messages" : { "userSignup" : { "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" }, "applicationInstanceId" : { - "title" : null, - "description" : "Unique identifier for a given instance of the publishing application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Unique identifier for a given instance of the publishing application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "payload" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "user" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/userCreate", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/userCreate" }, "signup" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/signup", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/signup" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "correlationId" : { "description" : "Default Correlation ID", @@ -2767,17 +1238,11 @@ "summary" : "Action to sign a user up.", "description" : "A longer description", "tags" : [ { - "name" : "user", - "description" : null, - "externalDocs" : null + "name" : "user" }, { - "name" : "signup", - "description" : null, - "externalDocs" : null + "name" : "signup" }, { - "name" : "register", - "description" : null, - "externalDocs" : null + "name" : "register" } ], "externalDocs" : { "description" : "User sign up rules", @@ -2785,290 +1250,98 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" + }, + "amqp1" : { + "bindingVersion" : "0.1.0" }, - "amqp1" : { }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.0.1" + } + } }, "googlepubsub" : { - "orderingKey" : null, - "attributes" : null, + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Content-Type" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "application/json" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "application/json" ] } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 + }, + "jms" : { + "bindingVersion" : "0.0.1" }, - "jms" : { }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myKey" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" + }, + "mercure" : { + "bindingVersion" : "0.1.0" }, - "mercure" : { }, "mqtt" : { "bindingVersion" : "0.1.0" }, - "mqtt5" : { }, - "nats" : { }, - "pulsar" : { }, - "redis" : { }, - "sns" : { }, - "solace" : { }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "mqtt5" : { + "bindingVersion" : "0.2.0" + }, + "nats" : { + "bindingVersion" : "0.1.0" + }, + "pulsar" : { + "bindingVersion" : "0.1.0" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "bindingVersion" : "0.1.0" + }, + "solace" : { + "bindingVersion" : "0.4.0" + }, + "sqs" : { + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" + }, + "ws" : { + "bindingVersion" : "0.1.0" + } }, "examples" : [ { "headers" : { @@ -3157,8 +1430,7 @@ "httpBasic" : { "type" : "http", "description" : "http", - "scheme" : "basic", - "bearerFormat" : null + "scheme" : "basic" }, "httpBearer" : { "type" : "http", @@ -3189,51 +1461,7 @@ "parameter" : { "description" : "Id of the user.", "schema" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "type" : "string" }, "location" : "$message.payload#/user/id" }, @@ -3266,6 +1494,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -3275,402 +1504,150 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, + "ack" : false + }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { "bindingVersion" : "0.2.0" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, + "additionalProperties" : false + } + }, + "ibmmq" : { "bindingVersion" : "0.1.0" }, - "ibmmq" : { }, - "jms" : { }, + "jms" : { + "bindingVersion" : "0.0.1" + }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, - "mercure" : { }, + "mercure" : { + "bindingVersion" : "0.1.0" + }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true + }, + "mqtt5" : { + "bindingVersion" : "0.2.0" }, - "mqtt5" : { }, "nats" : { - "queue" : "messages", + "bindingVersion" : "0.1.0", + "queue" : "messages" + }, + "pulsar" : { + "bindingVersion" : "0.1.0" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "consumers" : [ ], "bindingVersion" : "0.1.0" }, - "pulsar" : { }, - "redis" : { }, - "sns" : { }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null + "topicSubscriptions" : [ "samples/*" ] + } ] + }, + "sqs" : { + "queues" : [ { + "name" : "myQueue", + "fifoQueue" : true, + "deduplicationScope" : "messageGroup", + "fifoThroughputLimit" : "perMessageGroupId", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600, + "redrivePolicy" : { + "deadLetterQueue" : { + "name" : "myQueue_error" + }, + "maxReceiveCount" : 15 }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] + "policy" : { + "statements" : [ { + "effect" : "Deny", + "principal" : "arn:aws:iam::123456789012:user/dec.kolakowski", + "action" : [ "sqs:SendMessage", "sqs:ReceiveMessage" ] + } ] } + }, { + "name" : "myQueue_error", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600 } ], - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "ws" : { + "bindingVersion" : "0.1.0" + } } } }, "messageTraits" : { "userSignup" : { "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" }, "applicationInstanceId" : { - "title" : null, - "description" : "Unique identifier for a given instance of the publishing application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Unique identifier for a given instance of the publishing application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "correlationId" : { "description" : "Default Correlation ID", @@ -3683,17 +1660,11 @@ "summary" : "Action to sign a user up.", "description" : "A longer description", "tags" : [ { - "name" : "user", - "description" : null, - "externalDocs" : null + "name" : "user" }, { - "name" : "signup", - "description" : null, - "externalDocs" : null + "name" : "signup" }, { - "name" : "register", - "description" : null, - "externalDocs" : null + "name" : "register" } ], "externalDocs" : { "description" : "User sign up rules", @@ -3701,290 +1672,98 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" + }, + "amqp1" : { + "bindingVersion" : "0.1.0" }, - "amqp1" : { }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.0.1" + } + } }, "googlepubsub" : { - "orderingKey" : null, - "attributes" : null, + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Content-Type" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "application/json" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "application/json" ] } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 + }, + "jms" : { + "bindingVersion" : "0.0.1" }, - "jms" : { }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myKey" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" + }, + "mercure" : { + "bindingVersion" : "0.1.0" }, - "mercure" : { }, "mqtt" : { "bindingVersion" : "0.1.0" }, - "mqtt5" : { }, - "nats" : { }, - "pulsar" : { }, - "redis" : { }, - "sns" : { }, - "solace" : { }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "mqtt5" : { + "bindingVersion" : "0.2.0" + }, + "nats" : { + "bindingVersion" : "0.1.0" + }, + "pulsar" : { + "bindingVersion" : "0.1.0" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "bindingVersion" : "0.1.0" + }, + "solace" : { + "bindingVersion" : "0.4.0" + }, + "sqs" : { + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" + }, + "ws" : { + "bindingVersion" : "0.1.0" + } }, "examples" : [ { "headers" : { @@ -4003,26 +1782,40 @@ } }, "serverBindings" : { - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, - "http" : { }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { + "bindingVersion" : "0.2.0" + }, + "http" : { + "bindingVersion" : "0.3.0" + }, "ibmmq" : { + "bindingVersion" : "0.1.0", "groupId" : "PRODCLSTR1", "ccdtQueueManagerName" : "*", "cipherSpec" : "ANY_TLS12_OR_HIGHER", "multiEndpointServer" : false, - "heartBeatInterval" : 300, - "bindingVersion" : "0.1.0" + "heartBeatInterval" : 300 + }, + "jms" : { + "bindingVersion" : "0.0.1", + "jmsConnectionFactory" : "" }, - "jms" : { }, "kafka" : { + "bindingVersion" : "0.5.0", "schemaRegistryUrl" : "https://my-schema-registry.com", - "schemaRegistryVendor" : "confluent", - "bindingVersion" : "0.4.0" + "schemaRegistryVendor" : "confluent" + }, + "mercure" : { + "bindingVersion" : "0.1.0" }, - "mercure" : { }, "mqtt" : { + "bindingVersion" : "0.1.0", "clientId" : "guest", "cleanSession" : true, "lastWill" : { @@ -4031,30 +1824,43 @@ "message" : "Guest gone offline.", "retain" : false }, - "keepAlive" : 60, - "bindingVersion" : "0.1.0" + "keepAlive" : 60 }, "mqtt5" : { "sessionExpiryInterval" : 60, "bindingVersion" : "0.2.0" }, - "nats" : { }, + "nats" : { + "bindingVersion" : "0.1.0" + }, "pulsar" : { - "tenant" : "contoso", + "bindingVersion" : "0.1.0", + "tenant" : "contoso" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { "bindingVersion" : "0.1.0" }, - "redis" : { }, - "sns" : { }, "solace" : { - "msgVpn" : "solace.private.net", - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.4.0", + "msgVpn" : "ProdVPN", + "clientName" : "transactions-broker" + }, + "sqs" : { + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "ws" : { + "bindingVersion" : "0.1.0" + } }, "channelBindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "is" : "routingKey", "exchange" : { "name" : "myExchange", @@ -4069,32 +1875,33 @@ "exclusive" : true, "autoDelete" : false, "vhost" : "/" - }, - "bindingVersion" : "0.2.0" + } + }, + "amqp1" : { + "bindingVersion" : "0.1.0" }, - "amqp1" : { }, "anypointmq" : { + "bindingVersion" : "0.0.1", "destination" : "user-signup-exchg", - "destinationType" : "exchange", - "bindingVersion" : "0.0.1" + "destinationType" : "exchange" }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "topic" : "projects/your-project/topics/topic-proto-schema", - "labels" : null, "messageRetentionDuration" : "86400s", "messageStoragePolicy" : { "allowedPersistenceRegions" : [ "us-central1", "us-central2", "us-east1", "us-east4", "us-east5", "us-east7", "us-south1", "us-west1", "us-west2", "us-west3", "us-west4" ] }, "schemaSettings" : { "encoding" : "binary", - "firstRevisionId" : null, - "lastRevisionId" : null, "name" : "projects/your-project/schemas/message-proto" - }, - "bindingVersion" : "0.1.0" + } + }, + "http" : { + "bindingVersion" : "0.3.0" }, - "http" : { }, "ibmmq" : { + "bindingVersion" : "0.1.0", "destinationType" : "topic", "queue" : { "objectName" : "message", @@ -4107,12 +1914,13 @@ "durablePermitted" : true, "lastMsgRetained" : true }, - "maxMsgLength" : 1024, - "bindingVersion" : "0.1.0" + "maxMsgLength" : 1024 + }, + "jms" : { + "bindingVersion" : "0.0.1" }, - "jms" : { }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "topic" : "my-specific-topic-name", "partitions" : 20, "replicas" : 3, @@ -4124,11 +1932,20 @@ "max.message.bytes" : 1048588 } }, - "mercure" : { }, - "mqtt" : { }, - "mqtt5" : { }, - "nats" : { }, + "mercure" : { + "bindingVersion" : "0.1.0" + }, + "mqtt" : { + "bindingVersion" : "0.2.0" + }, + "mqtt5" : { + "bindingVersion" : "0.2.0" + }, + "nats" : { + "bindingVersion" : "0.1.0" + }, "pulsar" : { + "bindingVersion" : "0.1.0", "namespace" : "staging", "persistence" : "persistent", "compaction" : 1000, @@ -4138,211 +1955,94 @@ "size" : 1000 }, "ttl" : 360, - "deduplication" : false, + "deduplication" : false + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "name" : "my-sns-topic", + "policy" : { + "statements" : [ { + "effect" : "Allow", + "principal" : "*", + "action" : "SNS:Publish" + } ] + }, + "bindingVersion" : "0.1.0" + }, + "solace" : { + "bindingVersion" : "0.4.0" + }, + "sqs" : { + "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" + } + }, + "deadLetterQueue" : { + "name" : "myQueue_error", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 0, + "visibilityTimeout" : 0, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 604800 + }, + "bindingVersion" : "0.2.0" + }, + "stomp" : { "bindingVersion" : "0.1.0" }, - "redis" : { }, - "sns" : { }, - "solace" : { }, - "sqs" : { }, - "stomp" : { }, "ws" : { + "bindingVersion" : "0.1.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "ref" : { - "title" : null, - "description" : "Referral.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Referral." } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Authentication" : { - "title" : null, - "description" : "Authentication token", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Authentication token" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + } + } } }, "operationBindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -4352,543 +2052,261 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, + "ack" : false + }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { "bindingVersion" : "0.2.0" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, + "additionalProperties" : false + } + }, + "ibmmq" : { "bindingVersion" : "0.1.0" }, - "ibmmq" : { }, - "jms" : { }, + "jms" : { + "bindingVersion" : "0.0.1" + }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, - "mercure" : { }, + "mercure" : { + "bindingVersion" : "0.1.0" + }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true + }, + "mqtt5" : { + "bindingVersion" : "0.2.0" }, - "mqtt5" : { }, "nats" : { - "queue" : "messages", + "bindingVersion" : "0.1.0", + "queue" : "messages" + }, + "pulsar" : { + "bindingVersion" : "0.1.0" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "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 + } + } ], "bindingVersion" : "0.1.0" }, - "pulsar" : { }, - "redis" : { }, - "sns" : { }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] + "topicSubscriptions" : [ "samples/*" ] + } ] + }, + "sqs" : { + "queues" : [ { + "name" : "myQueue", + "fifoQueue" : true, + "deduplicationScope" : "messageGroup", + "fifoThroughputLimit" : "perMessageGroupId", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600, + "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", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600 } ], - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.2.0" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "stomp" : { + "bindingVersion" : "0.1.0" + }, + "ws" : { + "bindingVersion" : "0.1.0" + } }, "messageBindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" + }, + "amqp1" : { + "bindingVersion" : "0.1.0" }, - "amqp1" : { }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.0.1" + } + } }, "googlepubsub" : { - "orderingKey" : null, - "attributes" : null, + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Content-Type" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "application/json" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "application/json" ] } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 + }, + "jms" : { + "bindingVersion" : "0.0.1" }, - "jms" : { }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myKey" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" + }, + "mercure" : { + "bindingVersion" : "0.1.0" }, - "mercure" : { }, "mqtt" : { "bindingVersion" : "0.1.0" }, - "mqtt5" : { }, - "nats" : { }, - "pulsar" : { }, - "redis" : { }, - "sns" : { }, - "solace" : { }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "mqtt5" : { + "bindingVersion" : "0.2.0" + }, + "nats" : { + "bindingVersion" : "0.1.0" + }, + "pulsar" : { + "bindingVersion" : "0.1.0" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "bindingVersion" : "0.1.0" + }, + "solace" : { + "bindingVersion" : "0.4.0" + }, + "sqs" : { + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" + }, + "ws" : { + "bindingVersion" : "0.1.0" + } } }, "tags" : [ { diff --git a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/asyncapi - wrongly extended.json b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/asyncapi - wrongly extended.json index 5a1b27bb..fc9008e2 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/asyncapi - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/asyncapi - wrongly extended.json @@ -58,7 +58,7 @@ "kafka": { "schemaRegistryUrl": "https://my-schema-registry.com", "schemaRegistryVendor": "confluent", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -285,7 +285,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -530,7 +530,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { }, "mqtt": { @@ -685,7 +685,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { }, "mqtt": { @@ -812,7 +812,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { }, "mqtt": { }, @@ -996,7 +996,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -1220,7 +1220,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -1365,7 +1365,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -1416,7 +1416,7 @@ "kafka": { "schemaRegistryUrl": "https://my-schema-registry.com", "schemaRegistryVendor": "confluent", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -1531,7 +1531,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { }, "mqtt": { }, @@ -1731,7 +1731,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { diff --git a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/asyncapi.json b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/asyncapi.json index 1664c657..3f41668f 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/asyncapi.json +++ b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/asyncapi.json @@ -58,7 +58,7 @@ "kafka": { "schemaRegistryUrl": "https://my-schema-registry.com", "schemaRegistryVendor": "confluent", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -85,8 +85,9 @@ "redis": {}, "sns": {}, "solace": { - "msgVpn": "solace.private.net", - "bindingVersion": "0.3.0" + "clientName": "transactions-broker", + "msgVpn": "ProdVPN", + "bindingVersion": "0.4.0" }, "sqs": {}, "stomp": {}, @@ -133,7 +134,6 @@ "anypointmq" : { }, "googlepubsub" : { }, "http" : { - "type" : "request", "method" : "GET", "query" : { "type" : "object", @@ -147,7 +147,7 @@ }, "additionalProperties" : false }, - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.3.0" }, "ibmmq" : { }, "jms" : { }, @@ -160,7 +160,7 @@ "type" : "string", "enum" : [ "myClientId" ] }, - "bindingVersion" : "0.4.0" + "bindingVersion" : "0.5.0" }, "mercure" : { }, "mqtt" : { @@ -175,36 +175,99 @@ }, "pulsar" : { }, "redis" : { }, - "sns" : { }, + "sns" : { + "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 + } + } ], + "bindingVersion" : "0.1.0" + }, "solace" : { - "destinations" : [ { - "destinationType" : "queue", - "deliveryMode" : "persistent", - "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "destinations": [ + { + "destinationType": "queue", + "queue": { + "name": "sampleQueue", + "topicSubscriptions": [ + "samples/*" + ], + "accessType": "nonexclusive" + } }, - "topic" : null - }, { - "destinationType" : "queue", - "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null + { + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] + } + ], + "bindingVersion": "0.4.0" + }, + "sqs" : { + "queues" : [ { + "name" : "myQueue", + "fifoQueue" : true, + "deduplicationScope" : "messageGroup", + "fifoThroughputLimit" : "perMessageGroupId", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600, + "redrivePolicy" : { + "deadLetterQueue" : { + "name" : "myQueue_error" + }, + "maxReceiveCount" : 15 }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] + "policy" : { + "statements" : [ { + "effect" : "Deny", + "principal" : "arn:aws:iam::123456789012:user/dec.kolakowski", + "action" : [ "sqs:SendMessage", "sqs:ReceiveMessage" ] + } ] } + }, { + "name" : "myQueue_error", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600 } ], - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.2.0" }, - "sqs" : { }, "stomp" : { }, "ws" : { } }, @@ -252,7 +315,6 @@ "anypointmq": {}, "googlepubsub": {}, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -268,7 +330,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": {}, "jms": {}, @@ -285,7 +347,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -306,33 +368,57 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" + }, + "sqs": { + "queues" : [ { + "name" : "myQueue", + "fifoQueue" : true, + "deduplicationScope" : "messageGroup", + "fifoThroughputLimit" : "perMessageGroupId", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600, + "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", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600 + } ], + "bindingVersion" : "0.2.0" }, - "sqs": {}, "stomp": {}, "ws": {} } @@ -378,7 +464,6 @@ "anypointmq" : { }, "googlepubsub" : { }, "http" : { - "type" : "request", "method" : "GET", "query" : { "type" : "object", @@ -392,7 +477,7 @@ }, "additionalProperties" : false }, - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.3.0" }, "ibmmq" : { }, "jms" : { }, @@ -405,7 +490,7 @@ "type" : "string", "enum" : [ "myClientId" ] }, - "bindingVersion" : "0.4.0" + "bindingVersion" : "0.5.0" }, "mercure" : { }, "mqtt" : { @@ -420,36 +505,99 @@ }, "pulsar" : { }, "redis" : { }, - "sns" : { }, + "sns" : { + "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 + } + } ], + "bindingVersion" : "0.1.0" + }, "solace" : { - "destinations" : [ { - "destinationType" : "queue", - "deliveryMode" : "persistent", - "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "destinations": [ + { + "destinationType": "queue", + "queue": { + "name": "sampleQueue", + "topicSubscriptions": [ + "samples/*" + ], + "accessType": "nonexclusive" + } }, - "topic" : null - }, { - "destinationType" : "queue", - "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null + { + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] + } + ], + "bindingVersion": "0.4.0" + }, + "sqs" : { + "queues" : [ { + "name" : "myQueue", + "fifoQueue" : true, + "deduplicationScope" : "messageGroup", + "fifoThroughputLimit" : "perMessageGroupId", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600, + "redrivePolicy" : { + "deadLetterQueue" : { + "name" : "myQueue_error" + }, + "maxReceiveCount" : 15 }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] + "policy" : { + "statements" : [ { + "effect" : "Deny", + "principal" : "arn:aws:iam::123456789012:user/dec.kolakowski", + "action" : [ "sqs:SendMessage", "sqs:ReceiveMessage" ] + } ] } + }, { + "name" : "myQueue_error", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600 } ], - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.2.0" }, - "sqs" : { }, "stomp" : { }, "ws" : { } }, @@ -497,7 +645,6 @@ "anypointmq": { }, "googlepubsub": { }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -513,7 +660,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { }, "jms": { }, @@ -530,7 +677,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { }, "mqtt": { @@ -551,33 +698,57 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" + }, + "sqs": { + "queues" : [ { + "name" : "myQueue", + "fifoQueue" : true, + "deduplicationScope" : "messageGroup", + "fifoThroughputLimit" : "perMessageGroupId", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600, + "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", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600 + } ], + "bindingVersion" : "0.2.0" }, - "sqs": { }, "stomp": { }, "ws": { } } @@ -665,7 +836,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode": 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -685,7 +857,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { }, "mqtt": { @@ -812,7 +984,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { }, "mqtt": { }, @@ -835,9 +1007,58 @@ "bindingVersion": "0.1.0" }, "redis": { }, - "sns": { }, + "sns": { + "name" : "my-sns-topic", + "policy" : { + "statements" : [ { + "effect" : "Allow", + "principal" : "*", + "action" : "SNS:Publish" + } ] + }, + "bindingVersion" : "0.1.0" + }, "solace": { }, - "sqs": { }, + "sqs": { + "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" + } + }, + "deadLetterQueue" : { + "name" : "myQueue_error", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 0, + "visibilityTimeout" : 0, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 604800 + }, + "bindingVersion" : "0.2.0" + }, "stomp": { }, "ws": { "method": "GET", @@ -976,7 +1197,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -996,7 +1218,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -1187,7 +1409,6 @@ "anypointmq": {}, "googlepubsub": {}, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -1203,7 +1424,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": {}, "jms": {}, @@ -1220,7 +1441,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -1241,33 +1462,57 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" + }, + "sqs": { + "queues" : [ { + "name" : "myQueue", + "fifoQueue" : true, + "deduplicationScope" : "messageGroup", + "fifoThroughputLimit" : "perMessageGroupId", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600, + "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", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600 + } ], + "bindingVersion" : "0.2.0" }, - "sqs": {}, "stomp": {}, "ws": {} } @@ -1345,7 +1590,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1365,7 +1611,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -1416,7 +1662,7 @@ "kafka": { "schemaRegistryUrl": "https://my-schema-registry.com", "schemaRegistryVendor": "confluent", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -1443,8 +1689,9 @@ "redis": {}, "sns": {}, "solace": { - "msgVpn": "solace.private.net", - "bindingVersion": "0.3.0" + "clientName": "transactions-broker", + "msgVpn": "ProdVPN", + "bindingVersion": "0.4.0" }, "sqs": {}, "stomp": {}, @@ -1531,7 +1778,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { }, "mqtt": { }, @@ -1554,9 +1801,58 @@ "bindingVersion": "0.1.0" }, "redis": { }, - "sns": { }, + "sns": { + "name" : "my-sns-topic", + "policy" : { + "statements" : [ { + "effect" : "Allow", + "principal" : "*", + "action" : "SNS:Publish" + } ] + }, + "bindingVersion" : "0.1.0" + }, "solace": { }, - "sqs": { }, + "sqs": { + "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" + } + }, + "deadLetterQueue" : { + "name" : "myQueue_error", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 0, + "visibilityTimeout" : 0, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 604800 + }, + "bindingVersion" : "0.2.0" + }, "stomp": { }, "ws": { "method": "GET", @@ -1598,7 +1894,6 @@ "anypointmq" : { }, "googlepubsub" : { }, "http" : { - "type" : "request", "method" : "GET", "query" : { "type" : "object", @@ -1612,7 +1907,7 @@ }, "additionalProperties" : false }, - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.3.0" }, "ibmmq" : { }, "jms" : { }, @@ -1625,7 +1920,7 @@ "type" : "string", "enum" : [ "myClientId" ] }, - "bindingVersion" : "0.4.0" + "bindingVersion" : "0.5.0" }, "mercure" : { }, "mqtt" : { @@ -1640,36 +1935,98 @@ }, "pulsar" : { }, "redis" : { }, - "sns" : { }, - "solace" : { - "destinations" : [ { - "destinationType" : "queue", - "deliveryMode" : "persistent", - "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null - }, { - "destinationType" : "queue", - "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] + "sns" : { + "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 } } ], - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.1.0" + }, + "solace" : { + "destinations": [ + { + "destinationType": "queue", + "queue": { + "name": "sampleQueue", + "topicSubscriptions": [ + "samples/*" + ], + "accessType": "nonexclusive" + } + }, + { + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] + } + ], + "bindingVersion": "0.4.0" + }, + "sqs" : { + "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 + } + ], + "bindingVersion": "0.2.0" }, - "sqs" : { }, "stomp" : { }, "ws" : { } }, @@ -1711,7 +2068,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode": 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1731,7 +2089,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { diff --git a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/channelItem - extended.json b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/channelItem - extended.json index 0ea9e98e..0d18bdd8 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/channelItem - extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/channelItem - extended.json @@ -1,5 +1,4 @@ { - "$ref" : null, "description" : "This channel is used to exchange messages about users signing up", "subscribe" : { "operationId" : "sendMessage", @@ -19,6 +18,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -28,256 +28,166 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, + "ack" : false + }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { "bindingVersion" : "0.2.0" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, + "additionalProperties" : false + } + }, + "ibmmq" : { "bindingVersion" : "0.1.0" }, - "ibmmq" : { }, - "jms" : { }, + "jms" : { + "bindingVersion" : "0.0.1" + }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, - "mercure" : { }, + "mercure" : { + "bindingVersion" : "0.1.0" + }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true + }, + "mqtt5" : { + "bindingVersion" : "0.2.0" }, - "mqtt5" : { }, "nats" : { - "queue" : "messages", + "bindingVersion" : "0.1.0", + "queue" : "messages" + }, + "pulsar" : { + "bindingVersion" : "0.1.0" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "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 + } + } ], "bindingVersion" : "0.1.0" }, - "pulsar" : { }, - "redis" : { }, - "sns" : { }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null + "topicSubscriptions" : [ "samples/*" ] + } ] + }, + "sqs" : { + "queues" : [ { + "name" : "myQueue", + "fifoQueue" : true, + "deduplicationScope" : "messageGroup", + "fifoThroughputLimit" : "perMessageGroupId", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600, + "redrivePolicy" : { + "deadLetterQueue" : { + "name" : "myQueue_error" + }, + "maxReceiveCount" : 15 }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] + "policy" : { + "statements" : [ { + "effect" : "Deny", + "principal" : "arn:aws:iam::123456789012:user/dec.kolakowski", + "action" : [ "sqs:SendMessage", "sqs:ReceiveMessage" ] + } ] } + }, { + "name" : "myQueue_error", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600 } ], - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "ws" : { + "bindingVersion" : "0.1.0" + } }, "traits" : [ { "$ref" : "#/components/operationTraits/sendMessage" @@ -299,6 +209,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -308,256 +219,133 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, + "ack" : false + }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { "bindingVersion" : "0.2.0" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, + "additionalProperties" : false + } + }, + "ibmmq" : { "bindingVersion" : "0.1.0" }, - "ibmmq" : { }, - "jms" : { }, + "jms" : { + "bindingVersion" : "0.0.1" + }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, - "mercure" : { }, + "mercure" : { + "bindingVersion" : "0.1.0" + }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true + }, + "mqtt5" : { + "bindingVersion" : "0.2.0" }, - "mqtt5" : { }, "nats" : { - "queue" : "messages", + "bindingVersion" : "0.1.0", + "queue" : "messages" + }, + "pulsar" : { + "bindingVersion" : "0.1.0" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "consumers" : [ ], "bindingVersion" : "0.1.0" }, - "pulsar" : { }, - "redis" : { }, - "sns" : { }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null + "topicSubscriptions" : [ "samples/*" ] + } ] + }, + "sqs" : { + "queues" : [ { + "name" : "myQueue", + "fifoQueue" : true, + "deduplicationScope" : "messageGroup", + "fifoThroughputLimit" : "perMessageGroupId", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600, + "redrivePolicy" : { + "deadLetterQueue" : { + "name" : "myQueue_error" + }, + "maxReceiveCount" : 15 }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] + "policy" : { + "statements" : [ { + "effect" : "Deny", + "principal" : "arn:aws:iam::123456789012:user/dec.kolakowski", + "action" : [ "sqs:SendMessage", "sqs:ReceiveMessage" ] + } ] } + }, { + "name" : "myQueue_error", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600 } ], - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.2.0" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "stomp" : { + "bindingVersion" : "0.1.0" + }, + "ws" : { + "bindingVersion" : "0.1.0" + } } } ], "message" : { @@ -582,6 +370,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -591,256 +380,166 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, + "ack" : false + }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { "bindingVersion" : "0.2.0" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, + "additionalProperties" : false + } + }, + "ibmmq" : { "bindingVersion" : "0.1.0" }, - "ibmmq" : { }, - "jms" : { }, + "jms" : { + "bindingVersion" : "0.0.1" + }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, - "mercure" : { }, + "mercure" : { + "bindingVersion" : "0.1.0" + }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true + }, + "mqtt5" : { + "bindingVersion" : "0.2.0" }, - "mqtt5" : { }, "nats" : { - "queue" : "messages", + "bindingVersion" : "0.1.0", + "queue" : "messages" + }, + "pulsar" : { + "bindingVersion" : "0.1.0" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "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 + } + } ], "bindingVersion" : "0.1.0" }, - "pulsar" : { }, - "redis" : { }, - "sns" : { }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null + "topicSubscriptions" : [ "samples/*" ] + } ] + }, + "sqs" : { + "queues" : [ { + "name" : "myQueue", + "fifoQueue" : true, + "deduplicationScope" : "messageGroup", + "fifoThroughputLimit" : "perMessageGroupId", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600, + "redrivePolicy" : { + "deadLetterQueue" : { + "name" : "myQueue_error" + }, + "maxReceiveCount" : 15 }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] + "policy" : { + "statements" : [ { + "effect" : "Deny", + "principal" : "arn:aws:iam::123456789012:user/dec.kolakowski", + "action" : [ "sqs:SendMessage", "sqs:ReceiveMessage" ] + } ] } + }, { + "name" : "myQueue_error", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600 } ], - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "ws" : { + "bindingVersion" : "0.1.0" + } }, "traits" : [ { "$ref" : "#/components/operationTraits/sendMessage" @@ -862,6 +561,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -871,542 +571,159 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, + "ack" : false + }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { "bindingVersion" : "0.2.0" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, + "additionalProperties" : false + } + }, + "ibmmq" : { "bindingVersion" : "0.1.0" }, - "ibmmq" : { }, - "jms" : { }, + "jms" : { + "bindingVersion" : "0.0.1" + }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, - "mercure" : { }, + "mercure" : { + "bindingVersion" : "0.1.0" + }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true + }, + "mqtt5" : { + "bindingVersion" : "0.2.0" }, - "mqtt5" : { }, "nats" : { - "queue" : "messages", + "bindingVersion" : "0.1.0", + "queue" : "messages" + }, + "pulsar" : { + "bindingVersion" : "0.1.0" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "consumers" : [ ], "bindingVersion" : "0.1.0" }, - "pulsar" : { }, - "redis" : { }, - "sns" : { }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null + "topicSubscriptions" : [ "samples/*" ] + } ] + }, + "sqs" : { + "queues" : [ { + "name" : "myQueue", + "fifoQueue" : true, + "deduplicationScope" : "messageGroup", + "fifoThroughputLimit" : "perMessageGroupId", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600, + "redrivePolicy" : { + "deadLetterQueue" : { + "name" : "myQueue_error" + }, + "maxReceiveCount" : 15 }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] + "policy" : { + "statements" : [ { + "effect" : "Deny", + "principal" : "arn:aws:iam::123456789012:user/dec.kolakowski", + "action" : [ "sqs:SendMessage", "sqs:ReceiveMessage" ] + } ] } + }, { + "name" : "myQueue_error", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600 } ], - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.2.0" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "stomp" : { + "bindingVersion" : "0.1.0" + }, + "ws" : { + "bindingVersion" : "0.1.0" + } } } ], "message" : { "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" }, "applicationInstanceId" : { - "title" : null, - "description" : "Unique identifier for a given instance of the publishing application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Unique identifier for a given instance of the publishing application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "payload" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "user" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/userCreate", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/userCreate" }, "signup" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/signup", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/signup" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "correlationId" : { "description" : "Default Correlation ID", @@ -1419,17 +736,11 @@ "summary" : "Action to sign a user up.", "description" : "A longer description", "tags" : [ { - "name" : "user", - "description" : null, - "externalDocs" : null + "name" : "user" }, { - "name" : "signup", - "description" : null, - "externalDocs" : null + "name" : "signup" }, { - "name" : "register", - "description" : null, - "externalDocs" : null + "name" : "register" } ], "externalDocs" : { "description" : "User sign up rules", @@ -1437,290 +748,98 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" + }, + "amqp1" : { + "bindingVersion" : "0.1.0" }, - "amqp1" : { }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.0.1" + } + } }, "googlepubsub" : { - "orderingKey" : null, - "attributes" : null, + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Content-Type" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "application/json" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "application/json" ] } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 + }, + "jms" : { + "bindingVersion" : "0.0.1" }, - "jms" : { }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myKey" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" + }, + "mercure" : { + "bindingVersion" : "0.1.0" }, - "mercure" : { }, "mqtt" : { "bindingVersion" : "0.1.0" }, - "mqtt5" : { }, - "nats" : { }, - "pulsar" : { }, - "redis" : { }, - "sns" : { }, - "solace" : { }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "mqtt5" : { + "bindingVersion" : "0.2.0" + }, + "nats" : { + "bindingVersion" : "0.1.0" + }, + "pulsar" : { + "bindingVersion" : "0.1.0" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "bindingVersion" : "0.1.0" + }, + "solace" : { + "bindingVersion" : "0.4.0" + }, + "sqs" : { + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" + }, + "ws" : { + "bindingVersion" : "0.1.0" + } }, "examples" : [ { "headers" : { @@ -1745,57 +864,14 @@ "userId" : { "description" : "Id of the user.", "schema" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "type" : "string" }, "location" : "$message.payload#/user/id" } }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "is" : "routingKey", "exchange" : { "name" : "myExchange", @@ -1810,32 +886,33 @@ "exclusive" : true, "autoDelete" : false, "vhost" : "/" - }, - "bindingVersion" : "0.2.0" + } + }, + "amqp1" : { + "bindingVersion" : "0.1.0" }, - "amqp1" : { }, "anypointmq" : { + "bindingVersion" : "0.0.1", "destination" : "user-signup-exchg", - "destinationType" : "exchange", - "bindingVersion" : "0.0.1" + "destinationType" : "exchange" }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "topic" : "projects/your-project/topics/topic-proto-schema", - "labels" : null, "messageRetentionDuration" : "86400s", "messageStoragePolicy" : { "allowedPersistenceRegions" : [ "us-central1", "us-central2", "us-east1", "us-east4", "us-east5", "us-east7", "us-south1", "us-west1", "us-west2", "us-west3", "us-west4" ] }, "schemaSettings" : { "encoding" : "binary", - "firstRevisionId" : null, - "lastRevisionId" : null, "name" : "projects/your-project/schemas/message-proto" - }, - "bindingVersion" : "0.1.0" + } + }, + "http" : { + "bindingVersion" : "0.3.0" }, - "http" : { }, "ibmmq" : { + "bindingVersion" : "0.1.0", "destinationType" : "topic", "queue" : { "objectName" : "message", @@ -1848,12 +925,13 @@ "durablePermitted" : true, "lastMsgRetained" : true }, - "maxMsgLength" : 1024, - "bindingVersion" : "0.1.0" + "maxMsgLength" : 1024 + }, + "jms" : { + "bindingVersion" : "0.0.1" }, - "jms" : { }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "topic" : "my-specific-topic-name", "partitions" : 20, "replicas" : 3, @@ -1865,11 +943,20 @@ "max.message.bytes" : 1048588 } }, - "mercure" : { }, - "mqtt" : { }, - "mqtt5" : { }, - "nats" : { }, + "mercure" : { + "bindingVersion" : "0.1.0" + }, + "mqtt" : { + "bindingVersion" : "0.2.0" + }, + "mqtt5" : { + "bindingVersion" : "0.2.0" + }, + "nats" : { + "bindingVersion" : "0.1.0" + }, "pulsar" : { + "bindingVersion" : "0.1.0", "namespace" : "staging", "persistence" : "persistent", "compaction" : 1000, @@ -1879,207 +966,89 @@ "size" : 1000 }, "ttl" : 360, - "deduplication" : false, + "deduplication" : false + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "name" : "my-sns-topic", + "policy" : { + "statements" : [ { + "effect" : "Allow", + "principal" : "*", + "action" : "SNS:Publish" + } ] + }, + "bindingVersion" : "0.1.0" + }, + "solace" : { + "bindingVersion" : "0.4.0" + }, + "sqs" : { + "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" + } + }, + "deadLetterQueue" : { + "name" : "myQueue_error", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 0, + "visibilityTimeout" : 0, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 604800 + }, + "bindingVersion" : "0.2.0" + }, + "stomp" : { "bindingVersion" : "0.1.0" }, - "redis" : { }, - "sns" : { }, - "solace" : { }, - "sqs" : { }, - "stomp" : { }, "ws" : { + "bindingVersion" : "0.1.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "ref" : { - "title" : null, - "description" : "Referral.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Referral." } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Authentication" : { - "title" : null, - "description" : "Authentication token", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Authentication token" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + } + } } }, "x-number" : 0, diff --git a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/channelItem - wrongly extended.json b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/channelItem - wrongly extended.json index 9b6cc41d..6a132a8a 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/channelItem - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/channelItem - wrongly extended.json @@ -36,7 +36,6 @@ "anypointmq" : { }, "googlepubsub" : { }, "http" : { - "type" : "request", "method" : "GET", "query" : { "type" : "object", @@ -50,7 +49,7 @@ }, "additionalProperties" : false }, - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.3.0" }, "ibmmq" : { }, "jms" : { }, @@ -78,34 +77,69 @@ }, "pulsar" : { }, "redis" : { }, - "sns" : { }, + "sns" : { + "bindingVersion": "0.1.0", + "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 + } + } + ] + }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { }, "stomp" : { }, @@ -155,7 +189,6 @@ "anypointmq": {}, "googlepubsub": {}, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -171,7 +204,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": {}, "jms": {}, @@ -188,7 +221,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -205,35 +238,21 @@ "redis": {}, "sns": {}, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": {}, "stomp": {}, @@ -281,7 +300,6 @@ "anypointmq" : { }, "googlepubsub" : { }, "http" : { - "type" : "request", "method" : "GET", "query" : { "type" : "object", @@ -295,7 +313,7 @@ }, "additionalProperties" : false }, - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.3.0" }, "ibmmq" : { }, "jms" : { }, @@ -323,34 +341,69 @@ }, "pulsar" : { }, "redis" : { }, - "sns" : { }, + "sns" : { + "bindingVersion": "0.1.0", + "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 + } + } + ] + }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { }, "stomp" : { }, @@ -400,7 +453,6 @@ "anypointmq": { }, "googlepubsub": { }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -416,7 +468,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { }, "jms": { }, @@ -433,7 +485,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { }, "mqtt": { @@ -450,35 +502,21 @@ "redis": { }, "sns": { }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { }, "stomp": { }, @@ -568,7 +606,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -588,7 +627,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { }, "mqtt": { @@ -715,7 +754,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { }, "mqtt": { }, diff --git a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/channelItem.json b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/channelItem.json index a6ab4905..4e30b4a9 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/channelItem.json +++ b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/channelItem.json @@ -36,7 +36,6 @@ "anypointmq" : { }, "googlepubsub" : { }, "http" : { - "type" : "request", "method" : "GET", "query" : { "type" : "object", @@ -50,7 +49,7 @@ }, "additionalProperties" : false }, - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.3.0" }, "ibmmq" : { }, "jms" : { }, @@ -63,7 +62,7 @@ "type" : "string", "enum" : [ "myClientId" ] }, - "bindingVersion" : "0.4.0" + "bindingVersion" : "0.5.0" }, "mercure" : { }, "mqtt" : { @@ -78,36 +77,94 @@ }, "pulsar" : { }, "redis" : { }, - "sns" : { }, + "sns" : { + "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 + } + } ], + "bindingVersion" : "0.1.0" + }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] + "topicSubscriptions" : [ "samples/*" ] + } ] + }, + "sqs" : { + "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 } - } ], - "bindingVersion" : "0.3.0" + ], + "bindingVersion": "0.2.0" }, - "sqs" : { }, "stomp" : { }, "ws" : { } }, @@ -155,7 +212,6 @@ "anypointmq": {}, "googlepubsub": {}, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -171,7 +227,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": {}, "jms": {}, @@ -188,7 +244,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -205,37 +261,56 @@ "redis": {}, "sns": {}, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] + }, + "sqs": { + "queues": [ { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] + "name": "myQueue", + "fifoQueue": true, + "deduplicationScope": "messageGroup", + "fifoThroughputLimit": "perMessageGroupId", + "deliveryDelay": 10, + "redrivePolicy": { + "deadLetterQueue": { + "name": "myQueue_error" + }, + "maxReceiveCount": 15 }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" + "policy": { + "statements": [ + { + "effect": "Deny", + "principal": "arn:aws:iam::123456789012:user/dec.kolakowski", + "action": [ + "sqs:SendMessage", + "sqs:ReceiveMessage" + ] + } ] } + }, + { + "name": "myQueue_error", + "deliveryDelay": 10 } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.2.0" }, - "sqs": {}, "stomp": {}, "ws": {} } @@ -281,7 +356,6 @@ "anypointmq" : { }, "googlepubsub" : { }, "http" : { - "type" : "request", "method" : "GET", "query" : { "type" : "object", @@ -295,7 +369,7 @@ }, "additionalProperties" : false }, - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.3.0" }, "ibmmq" : { }, "jms" : { }, @@ -308,7 +382,7 @@ "type" : "string", "enum" : [ "myClientId" ] }, - "bindingVersion" : "0.4.0" + "bindingVersion" : "0.5.0" }, "mercure" : { }, "mqtt" : { @@ -323,36 +397,94 @@ }, "pulsar" : { }, "redis" : { }, - "sns" : { }, + "sns" : { + "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 + } + } ], + "bindingVersion" : "0.1.0" + }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] + "topicSubscriptions" : [ "samples/*" ] + } ] + }, + "sqs" : { + "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 } - } ], - "bindingVersion" : "0.3.0" + ], + "bindingVersion": "0.2.0" }, - "sqs" : { }, "stomp" : { }, "ws" : { } }, @@ -400,7 +532,6 @@ "anypointmq": { }, "googlepubsub": { }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -416,7 +547,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { }, "jms": { }, @@ -433,7 +564,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { }, "mqtt": { @@ -450,37 +581,56 @@ "redis": { }, "sns": { }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] + }, + "sqs": { + "queues": [ { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] + "name": "myQueue", + "fifoQueue": true, + "deduplicationScope": "messageGroup", + "fifoThroughputLimit": "perMessageGroupId", + "deliveryDelay": 10, + "redrivePolicy": { + "deadLetterQueue": { + "name": "myQueue_error" + }, + "maxReceiveCount": 15 }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" + "policy": { + "statements": [ + { + "effect": "Deny", + "principal": "arn:aws:iam::123456789012:user/dec.kolakowski", + "action": [ + "sqs:SendMessage", + "sqs:ReceiveMessage" + ] + } ] } + }, + { + "name": "myQueue_error", + "deliveryDelay": 10 } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.2.0" }, - "sqs": { }, "stomp": { }, "ws": { } } @@ -568,7 +718,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -588,7 +739,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { }, "mqtt": { @@ -715,7 +866,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { }, "mqtt": { }, @@ -738,9 +889,60 @@ "bindingVersion": "0.1.0" }, "redis": { }, - "sns": { }, + "sns": { + "name" : "my-sns-topic", + "policy" : { + "statements" : [ { + "effect" : "Allow", + "principal" : "*", + "action" : "SNS:Publish" + } ] + }, + "bindingVersion" : "0.1.0" + }, "solace": { }, - "sqs": { }, + "sqs": { + "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" + } + }, + "deadLetterQueue": { + "name": "myQueue_error", + "deliveryDelay": 0, + "visibilityTimeout": 0, + "receiveMessageWaitTime": 0, + "messageRetentionPeriod": 604800 + }, + "bindingVersion": "0.2.0" + }, "stomp": { }, "ws": { "method": "GET", diff --git a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/message/message - extended.json b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/message/message - extended.json index 380e43d9..9a200ea8 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/message/message - extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/message/message - extended.json @@ -1,287 +1,27 @@ { "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" }, "applicationInstanceId" : { - "title" : null, - "description" : "Unique identifier for a given instance of the publishing application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Unique identifier for a given instance of the publishing application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "payload" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "user" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/userCreate", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/userCreate" }, "signup" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/signup", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/signup" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "correlationId" : { "description" : "Default Correlation ID", @@ -294,17 +34,11 @@ "summary" : "Action to sign a user up.", "description" : "A longer description", "tags" : [ { - "name" : "user", - "description" : null, - "externalDocs" : null + "name" : "user" }, { - "name" : "signup", - "description" : null, - "externalDocs" : null + "name" : "signup" }, { - "name" : "register", - "description" : null, - "externalDocs" : null + "name" : "register" } ], "externalDocs" : { "description" : "User sign up rules", @@ -312,290 +46,98 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" + }, + "amqp1" : { + "bindingVersion" : "0.1.0" }, - "amqp1" : { }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.0.1" + } + } }, "googlepubsub" : { - "orderingKey" : null, - "attributes" : null, + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Content-Type" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "application/json" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "application/json" ] } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 + }, + "jms" : { + "bindingVersion" : "0.0.1" }, - "jms" : { }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myKey" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" + }, + "mercure" : { + "bindingVersion" : "0.1.0" }, - "mercure" : { }, "mqtt" : { "bindingVersion" : "0.1.0" }, - "mqtt5" : { }, - "nats" : { }, - "pulsar" : { }, - "redis" : { }, - "sns" : { }, - "solace" : { }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "mqtt5" : { + "bindingVersion" : "0.2.0" + }, + "nats" : { + "bindingVersion" : "0.1.0" + }, + "pulsar" : { + "bindingVersion" : "0.1.0" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "bindingVersion" : "0.1.0" + }, + "solace" : { + "bindingVersion" : "0.4.0" + }, + "sqs" : { + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" + }, + "ws" : { + "bindingVersion" : "0.1.0" + } }, "examples" : [ { "headers" : { diff --git a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/message/message - wrongly extended.json b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/message/message - wrongly extended.json index 07b8922b..3389d4a6 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/message/message - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/message/message - wrongly extended.json @@ -80,7 +80,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -100,7 +101,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { diff --git a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/message/message.json b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/message/message.json index 6cc96b2f..59834cfa 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/message/message.json +++ b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/message/message.json @@ -80,7 +80,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -100,7 +101,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { diff --git a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/message/messageTrait - extended.json b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/message/messageTrait - extended.json index 4b07b742..a802897a 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/message/messageTrait - extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/message/messageTrait - extended.json @@ -1,145 +1,16 @@ { "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" }, "applicationInstanceId" : { - "title" : null, - "description" : "Unique identifier for a given instance of the publishing application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Unique identifier for a given instance of the publishing application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "correlationId" : { "description" : "Default Correlation ID", @@ -152,17 +23,11 @@ "summary" : "Action to sign a user up.", "description" : "A longer description", "tags" : [ { - "name" : "user", - "description" : null, - "externalDocs" : null + "name" : "user" }, { - "name" : "signup", - "description" : null, - "externalDocs" : null + "name" : "signup" }, { - "name" : "register", - "description" : null, - "externalDocs" : null + "name" : "register" } ], "externalDocs" : { "description" : "User sign up rules", @@ -170,290 +35,98 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" + }, + "amqp1" : { + "bindingVersion" : "0.1.0" }, - "amqp1" : { }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.0.1" + } + } }, "googlepubsub" : { - "orderingKey" : null, - "attributes" : null, + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Content-Type" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "application/json" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "application/json" ] } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 + }, + "jms" : { + "bindingVersion" : "0.0.1" }, - "jms" : { }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myKey" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" + }, + "mercure" : { + "bindingVersion" : "0.1.0" }, - "mercure" : { }, "mqtt" : { "bindingVersion" : "0.1.0" }, - "mqtt5" : { }, - "nats" : { }, - "pulsar" : { }, - "redis" : { }, - "sns" : { }, - "solace" : { }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "mqtt5" : { + "bindingVersion" : "0.2.0" + }, + "nats" : { + "bindingVersion" : "0.1.0" + }, + "pulsar" : { + "bindingVersion" : "0.1.0" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "bindingVersion" : "0.1.0" + }, + "solace" : { + "bindingVersion" : "0.4.0" + }, + "sqs" : { + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" + }, + "ws" : { + "bindingVersion" : "0.1.0" + } }, "examples" : [ { "headers" : { diff --git a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/message/messageTrait - wrongly extended.json b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/message/messageTrait - wrongly extended.json index e64abac3..4976348e 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/message/messageTrait - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/message/messageTrait - wrongly extended.json @@ -69,7 +69,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -89,7 +90,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { diff --git a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/message/messageTrait.json b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/message/messageTrait.json index ff9d399a..bd768a51 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/message/messageTrait.json +++ b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/message/messageTrait.json @@ -69,7 +69,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -89,7 +90,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { diff --git a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operation with message - extended.json b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operation with message - extended.json index 2e2e5a52..678bf2ee 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operation with message - extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operation with message - extended.json @@ -16,6 +16,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -25,256 +26,166 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, + "ack" : false + }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { "bindingVersion" : "0.2.0" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, + "additionalProperties" : false + } + }, + "ibmmq" : { "bindingVersion" : "0.1.0" }, - "ibmmq" : { }, - "jms" : { }, + "jms" : { + "bindingVersion" : "0.0.1" + }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, - "mercure" : { }, + "mercure" : { + "bindingVersion" : "0.1.0" + }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true + }, + "mqtt5" : { + "bindingVersion" : "0.2.0" }, - "mqtt5" : { }, "nats" : { - "queue" : "messages", + "bindingVersion" : "0.1.0", + "queue" : "messages" + }, + "pulsar" : { + "bindingVersion" : "0.1.0" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "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 + } + } ], "bindingVersion" : "0.1.0" }, - "pulsar" : { }, - "redis" : { }, - "sns" : { }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null + "topicSubscriptions" : [ "samples/*" ] + } ] + }, + "sqs" : { + "queues" : [ { + "name" : "myQueue", + "fifoQueue" : true, + "deduplicationScope" : "messageGroup", + "fifoThroughputLimit" : "perMessageGroupId", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600, + "redrivePolicy" : { + "deadLetterQueue" : { + "name" : "myQueue_error" + }, + "maxReceiveCount" : 15 }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] + "policy" : { + "statements" : [ { + "effect" : "Deny", + "principal" : "arn:aws:iam::123456789012:user/dec.kolakowski", + "action" : [ "sqs:SendMessage", "sqs:ReceiveMessage" ] + } ] } + }, { + "name" : "myQueue_error", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600 } ], - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "ws" : { + "bindingVersion" : "0.1.0" + } }, "traits" : [ { "$ref" : "#/components/operationTraits/sendMessage" @@ -296,6 +207,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -305,542 +217,159 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, + "ack" : false + }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { "bindingVersion" : "0.2.0" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, + "additionalProperties" : false + } + }, + "ibmmq" : { "bindingVersion" : "0.1.0" }, - "ibmmq" : { }, - "jms" : { }, + "jms" : { + "bindingVersion" : "0.0.1" + }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, - "mercure" : { }, + "mercure" : { + "bindingVersion" : "0.1.0" + }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true + }, + "mqtt5" : { + "bindingVersion" : "0.2.0" }, - "mqtt5" : { }, "nats" : { - "queue" : "messages", + "bindingVersion" : "0.1.0", + "queue" : "messages" + }, + "pulsar" : { + "bindingVersion" : "0.1.0" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "consumers" : [ ], "bindingVersion" : "0.1.0" }, - "pulsar" : { }, - "redis" : { }, - "sns" : { }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null + "topicSubscriptions" : [ "samples/*" ] + } ] + }, + "sqs" : { + "queues" : [ { + "name" : "myQueue", + "fifoQueue" : true, + "deduplicationScope" : "messageGroup", + "fifoThroughputLimit" : "perMessageGroupId", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600, + "redrivePolicy" : { + "deadLetterQueue" : { + "name" : "myQueue_error" + }, + "maxReceiveCount" : 15 }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] + "policy" : { + "statements" : [ { + "effect" : "Deny", + "principal" : "arn:aws:iam::123456789012:user/dec.kolakowski", + "action" : [ "sqs:SendMessage", "sqs:ReceiveMessage" ] + } ] } + }, { + "name" : "myQueue_error", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600 } ], - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.2.0" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "stomp" : { + "bindingVersion" : "0.1.0" + }, + "ws" : { + "bindingVersion" : "0.1.0" + } } } ], "message" : { "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" }, "applicationInstanceId" : { - "title" : null, - "description" : "Unique identifier for a given instance of the publishing application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Unique identifier for a given instance of the publishing application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "payload" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "user" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/userCreate", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/userCreate" }, "signup" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/signup", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/signup" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "correlationId" : { "description" : "Default Correlation ID", @@ -853,17 +382,11 @@ "summary" : "Action to sign a user up.", "description" : "A longer description", "tags" : [ { - "name" : "user", - "description" : null, - "externalDocs" : null + "name" : "user" }, { - "name" : "signup", - "description" : null, - "externalDocs" : null + "name" : "signup" }, { - "name" : "register", - "description" : null, - "externalDocs" : null + "name" : "register" } ], "externalDocs" : { "description" : "User sign up rules", @@ -871,290 +394,98 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" + }, + "amqp1" : { + "bindingVersion" : "0.1.0" }, - "amqp1" : { }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.0.1" + } + } }, "googlepubsub" : { - "orderingKey" : null, - "attributes" : null, + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Content-Type" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "application/json" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "application/json" ] } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 + }, + "jms" : { + "bindingVersion" : "0.0.1" }, - "jms" : { }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myKey" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" + }, + "mercure" : { + "bindingVersion" : "0.1.0" }, - "mercure" : { }, "mqtt" : { "bindingVersion" : "0.1.0" }, - "mqtt5" : { }, - "nats" : { }, - "pulsar" : { }, - "redis" : { }, - "sns" : { }, - "solace" : { }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "mqtt5" : { + "bindingVersion" : "0.2.0" + }, + "nats" : { + "bindingVersion" : "0.1.0" + }, + "pulsar" : { + "bindingVersion" : "0.1.0" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "bindingVersion" : "0.1.0" + }, + "solace" : { + "bindingVersion" : "0.4.0" + }, + "sqs" : { + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" + }, + "ws" : { + "bindingVersion" : "0.1.0" + } }, "examples" : [ { "headers" : { diff --git a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operation with message - wrongly extended.json b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operation with message - wrongly extended.json index f0c50a9f..af22b3ec 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operation with message - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operation with message - wrongly extended.json @@ -34,7 +34,6 @@ "anypointmq" : { }, "googlepubsub" : { }, "http" : { - "type" : "request", "method" : "GET", "query" : { "type" : "object", @@ -48,7 +47,7 @@ }, "additionalProperties" : false }, - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.3.0" }, "ibmmq" : { }, "jms" : { }, @@ -76,34 +75,69 @@ }, "pulsar" : { }, "redis" : { }, - "sns" : { }, + "sns" : { + "bindingVersion": "0.1.0", + "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 + } + } + ] + }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { }, "stomp" : { }, @@ -153,7 +187,6 @@ "anypointmq": {}, "googlepubsub": {}, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -169,7 +202,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": {}, "jms": {}, @@ -186,7 +219,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -201,37 +234,25 @@ }, "pulsar": {}, "redis": {}, - "sns": {}, + "sns": { + "consumers" : [] + }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": {}, "stomp": {}, @@ -321,7 +342,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -341,7 +363,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { }, "mqtt": { diff --git a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operation with message.json b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operation with message.json index 3938d574..9477baee 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operation with message.json +++ b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operation with message.json @@ -34,7 +34,6 @@ "anypointmq" : { }, "googlepubsub" : { }, "http" : { - "type" : "request", "method" : "GET", "query" : { "type" : "object", @@ -48,7 +47,7 @@ }, "additionalProperties" : false }, - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.3.0" }, "ibmmq" : { }, "jms" : { }, @@ -61,7 +60,7 @@ "type" : "string", "enum" : [ "myClientId" ] }, - "bindingVersion" : "0.4.0" + "bindingVersion" : "0.5.0" }, "mercure" : { }, "mqtt" : { @@ -76,36 +75,104 @@ }, "pulsar" : { }, "redis" : { }, - "sns" : { }, + "sns" : { + "bindingVersion": "0.1.0", + "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 + } + } + ] + }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null + "topicSubscriptions" : [ "samples/*" ] + } ] + }, + "sqs" : { + "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" + ] + } + ] + } }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] + { + "name": "myQueue_error", + "deliveryDelay": 10 } - } ], - "bindingVersion" : "0.3.0" + ], + "bindingVersion": "0.2.0" }, - "sqs" : { }, "stomp" : { }, "ws" : { } }, @@ -153,7 +220,6 @@ "anypointmq": { }, "googlepubsub": { }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -169,7 +235,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { }, "jms": { }, @@ -186,7 +252,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { }, "mqtt": { @@ -203,37 +269,56 @@ "redis": { }, "sns": { }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] + }, + "sqs": { + "queues": [ { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] + "name": "myQueue", + "fifoQueue": true, + "deduplicationScope": "messageGroup", + "fifoThroughputLimit": "perMessageGroupId", + "deliveryDelay": 10, + "redrivePolicy": { + "deadLetterQueue": { + "name": "myQueue_error" + }, + "maxReceiveCount": 15 }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" + "policy": { + "statements": [ + { + "effect": "Deny", + "principal": "arn:aws:iam::123456789012:user/dec.kolakowski", + "action": [ + "sqs:SendMessage", + "sqs:ReceiveMessage" + ] + } ] } + }, + { + "name": "myQueue_error", + "deliveryDelay": 10 } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.2.0" }, - "sqs": { }, "stomp": { }, "ws": { } } @@ -321,7 +406,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -341,7 +427,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { }, "mqtt": { diff --git a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operation with reference to message - extended.json b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operation with reference to message - extended.json index 93bf31ad..8d79d203 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operation with reference to message - extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operation with reference to message - extended.json @@ -16,6 +16,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -25,256 +26,166 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, + "ack" : false + }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { "bindingVersion" : "0.2.0" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, + "additionalProperties" : false + } + }, + "ibmmq" : { "bindingVersion" : "0.1.0" }, - "ibmmq" : { }, - "jms" : { }, + "jms" : { + "bindingVersion" : "0.0.1" + }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, - "mercure" : { }, + "mercure" : { + "bindingVersion" : "0.1.0" + }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true + }, + "mqtt5" : { + "bindingVersion" : "0.2.0" }, - "mqtt5" : { }, "nats" : { - "queue" : "messages", + "bindingVersion" : "0.1.0", + "queue" : "messages" + }, + "pulsar" : { + "bindingVersion" : "0.1.0" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "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 + } + } ], "bindingVersion" : "0.1.0" }, - "pulsar" : { }, - "redis" : { }, - "sns" : { }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null + "topicSubscriptions" : [ "samples/*" ] + } ] + }, + "sqs" : { + "queues" : [ { + "name" : "myQueue", + "fifoQueue" : true, + "deduplicationScope" : "messageGroup", + "fifoThroughputLimit" : "perMessageGroupId", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600, + "redrivePolicy" : { + "deadLetterQueue" : { + "name" : "myQueue_error" + }, + "maxReceiveCount" : 15 }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] + "policy" : { + "statements" : [ { + "effect" : "Deny", + "principal" : "arn:aws:iam::123456789012:user/dec.kolakowski", + "action" : [ "sqs:SendMessage", "sqs:ReceiveMessage" ] + } ] } + }, { + "name" : "myQueue_error", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600 } ], - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.2.0" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "stomp" : { + "bindingVersion" : "0.1.0" + }, + "ws" : { + "bindingVersion" : "0.1.0" + } }, "traits" : [ { "$ref" : "#/components/operationTraits/sendMessage" @@ -296,6 +207,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -305,256 +217,133 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, + "ack" : false + }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { "bindingVersion" : "0.2.0" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, + "additionalProperties" : false + } + }, + "ibmmq" : { "bindingVersion" : "0.1.0" }, - "ibmmq" : { }, - "jms" : { }, + "jms" : { + "bindingVersion" : "0.0.1" + }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, - "mercure" : { }, + "mercure" : { + "bindingVersion" : "0.1.0" + }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true + }, + "mqtt5" : { + "bindingVersion" : "0.2.0" }, - "mqtt5" : { }, "nats" : { - "queue" : "messages", + "bindingVersion" : "0.1.0", + "queue" : "messages" + }, + "pulsar" : { + "bindingVersion" : "0.1.0" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "consumers" : [ ], "bindingVersion" : "0.1.0" }, - "pulsar" : { }, - "redis" : { }, - "sns" : { }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null + "topicSubscriptions" : [ "samples/*" ] + } ] + }, + "sqs" : { + "queues" : [ { + "name" : "myQueue", + "fifoQueue" : true, + "deduplicationScope" : "messageGroup", + "fifoThroughputLimit" : "perMessageGroupId", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600, + "redrivePolicy" : { + "deadLetterQueue" : { + "name" : "myQueue_error" + }, + "maxReceiveCount" : 15 }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] + "policy" : { + "statements" : [ { + "effect" : "Deny", + "principal" : "arn:aws:iam::123456789012:user/dec.kolakowski", + "action" : [ "sqs:SendMessage", "sqs:ReceiveMessage" ] + } ] } + }, { + "name" : "myQueue_error", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600 } ], - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.2.0" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "stomp" : { + "bindingVersion" : "0.1.0" + }, + "ws" : { + "bindingVersion" : "0.1.0" + } } } ], "message" : { diff --git a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operation with reference to message - wrongly extended.json b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operation with reference to message - wrongly extended.json index df38ea47..62a9beac 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operation with reference to message - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operation with reference to message - wrongly extended.json @@ -34,7 +34,6 @@ "anypointmq" : { }, "googlepubsub" : { }, "http" : { - "type" : "request", "method" : "GET", "query" : { "type" : "object", @@ -48,7 +47,7 @@ }, "additionalProperties" : false }, - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.3.0" }, "ibmmq" : { }, "jms" : { }, @@ -61,7 +60,7 @@ "type" : "string", "enum" : [ "myClientId" ] }, - "bindingVersion" : "0.4.0" + "bindingVersion" : "0.5.0" }, "mercure" : { }, "mqtt" : { @@ -76,34 +75,69 @@ }, "pulsar" : { }, "redis" : { }, - "sns" : { }, + "sns" : { + "bindingVersion": "0.1.0", + "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 + } + } + ] + }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { }, "stomp" : { }, @@ -153,7 +187,6 @@ "anypointmq": {}, "googlepubsub": {}, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -169,7 +202,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": {}, "jms": {}, @@ -186,7 +219,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -203,35 +236,21 @@ "redis": {}, "sns": {}, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": {}, "stomp": {}, diff --git a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operation with reference to message.json b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operation with reference to message.json index 335850f2..9796be7e 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operation with reference to message.json +++ b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operation with reference to message.json @@ -34,7 +34,6 @@ "anypointmq" : { }, "googlepubsub" : { }, "http" : { - "type" : "request", "method" : "GET", "query" : { "type" : "object", @@ -48,7 +47,7 @@ }, "additionalProperties" : false }, - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.3.0" }, "ibmmq" : { }, "jms" : { }, @@ -61,7 +60,7 @@ "type" : "string", "enum" : [ "myClientId" ] }, - "bindingVersion" : "0.4.0" + "bindingVersion" : "0.5.0" }, "mercure" : { }, "mqtt" : { @@ -76,36 +75,104 @@ }, "pulsar" : { }, "redis" : { }, - "sns" : { }, + "sns" : { + "bindingVersion": "0.1.0", + "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 + } + } + ] + }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null + "topicSubscriptions" : [ "samples/*" ] + } ] + }, + "sqs" : { + "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" + ] + } + ] + } }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] + { + "name": "myQueue_error", + "deliveryDelay": 10 } - } ], - "bindingVersion" : "0.3.0" + ], + "bindingVersion": "0.2.0" }, - "sqs" : { }, "stomp" : { }, "ws" : { } }, @@ -153,7 +220,6 @@ "anypointmq": {}, "googlepubsub": {}, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -169,7 +235,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": {}, "jms": {}, @@ -186,7 +252,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -203,37 +269,56 @@ "redis": {}, "sns": {}, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] + }, + "sqs": { + "queues": [ { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] + "name": "myQueue", + "fifoQueue": true, + "deduplicationScope": "messageGroup", + "fifoThroughputLimit": "perMessageGroupId", + "deliveryDelay": 10, + "redrivePolicy": { + "deadLetterQueue": { + "name": "myQueue_error" + }, + "maxReceiveCount": 15 }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" + "policy": { + "statements": [ + { + "effect": "Deny", + "principal": "arn:aws:iam::123456789012:user/dec.kolakowski", + "action": [ + "sqs:SendMessage", + "sqs:ReceiveMessage" + ] + } ] } + }, + { + "name": "myQueue_error", + "deliveryDelay": 10 } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.2.0" }, - "sqs": {}, "stomp": {}, "ws": {} } diff --git a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operationTrait - extended.json b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operationTrait - extended.json index abf502d1..78ec71a1 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operationTrait - extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operationTrait - extended.json @@ -16,6 +16,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -25,256 +26,133 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, + "ack" : false + }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { "bindingVersion" : "0.2.0" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, + "additionalProperties" : false + } + }, + "ibmmq" : { "bindingVersion" : "0.1.0" }, - "ibmmq" : { }, - "jms" : { }, + "jms" : { + "bindingVersion" : "0.0.1" + }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, - "mercure" : { }, + "mercure" : { + "bindingVersion" : "0.1.0" + }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true + }, + "mqtt5" : { + "bindingVersion" : "0.2.0" }, - "mqtt5" : { }, "nats" : { - "queue" : "messages", + "bindingVersion" : "0.1.0", + "queue" : "messages" + }, + "pulsar" : { + "bindingVersion" : "0.1.0" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "consumers" : [ ], "bindingVersion" : "0.1.0" }, - "pulsar" : { }, - "redis" : { }, - "sns" : { }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null + "topicSubscriptions" : [ "samples/*" ] + } ] + }, + "sqs" : { + "queues" : [ { + "name" : "myQueue", + "fifoQueue" : true, + "deduplicationScope" : "messageGroup", + "fifoThroughputLimit" : "perMessageGroupId", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600, + "redrivePolicy" : { + "deadLetterQueue" : { + "name" : "myQueue_error" + }, + "maxReceiveCount" : 15 }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] + "policy" : { + "statements" : [ { + "effect" : "Deny", + "principal" : "arn:aws:iam::123456789012:user/dec.kolakowski", + "action" : [ "sqs:SendMessage", "sqs:ReceiveMessage" ] + } ] } + }, { + "name" : "myQueue_error", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600 } ], - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.2.0" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "stomp" : { + "bindingVersion" : "0.1.0" + }, + "ws" : { + "bindingVersion" : "0.1.0" + } }, "x-number" : 0, "x-string" : "", diff --git a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operationTrait - wrongly extended.json b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operationTrait - wrongly extended.json index 208b0075..73589c5c 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operationTrait - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operationTrait - wrongly extended.json @@ -38,7 +38,6 @@ "anypointmq": {}, "googlepubsub": {}, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -54,7 +53,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": {}, "jms": {}, @@ -71,7 +70,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -88,35 +87,21 @@ "redis": {}, "sns": {}, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": {}, "stomp": {}, diff --git a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operationTrait.json b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operationTrait.json index c133052b..8f2b4ee0 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operationTrait.json +++ b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/operation/operationTrait.json @@ -38,7 +38,6 @@ "anypointmq": {}, "googlepubsub": {}, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -54,7 +53,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": {}, "jms": {}, @@ -71,7 +70,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -88,37 +87,56 @@ "redis": {}, "sns": {}, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] + }, + "sqs": { + "queues": [ { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] + "name": "myQueue", + "fifoQueue": true, + "deduplicationScope": "messageGroup", + "fifoThroughputLimit": "perMessageGroupId", + "deliveryDelay": 10, + "redrivePolicy": { + "deadLetterQueue": { + "name": "myQueue_error" + }, + "maxReceiveCount": 15 }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" + "policy": { + "statements": [ + { + "effect": "Deny", + "principal": "arn:aws:iam::123456789012:user/dec.kolakowski", + "action": [ + "sqs:SendMessage", + "sqs:ReceiveMessage" + ] + } ] } + }, + { + "name": "myQueue_error", + "deliveryDelay": 10 } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.2.0" }, - "sqs": {}, "stomp": {}, "ws": {} } diff --git a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/parameter - extended.json b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/parameter - extended.json index 8013bf06..b539a3ca 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/parameter - extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/channel/parameter - extended.json @@ -1,51 +1,7 @@ { "description" : "Id of the user.", "schema" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "type" : "string" }, "location" : "$message.payload#/user/id", "x-number" : 0, diff --git a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/components/components - extended.json b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/components/components - extended.json index 10f34a1d..623507f0 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/components/components - extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/components/components - extended.json @@ -1,288 +1,28 @@ { "schemas" : { "Category" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "id" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "integer", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : "int64", - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "format" : "int64" }, "name" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "type" : "string" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "Tag" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "id" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "integer", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : "int64", - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "format" : "int64" }, "name" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "type" : "string" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "User" : { "$ref" : "#/components/schemas/user" @@ -291,288 +31,28 @@ "messages" : { "userSignup" : { "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" }, "applicationInstanceId" : { - "title" : null, - "description" : "Unique identifier for a given instance of the publishing application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Unique identifier for a given instance of the publishing application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "payload" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "user" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/userCreate", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/userCreate" }, "signup" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/signup", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/signup" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "correlationId" : { "description" : "Default Correlation ID", @@ -585,17 +65,11 @@ "summary" : "Action to sign a user up.", "description" : "A longer description", "tags" : [ { - "name" : "user", - "description" : null, - "externalDocs" : null + "name" : "user" }, { - "name" : "signup", - "description" : null, - "externalDocs" : null + "name" : "signup" }, { - "name" : "register", - "description" : null, - "externalDocs" : null + "name" : "register" } ], "externalDocs" : { "description" : "User sign up rules", @@ -603,290 +77,98 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" + }, + "amqp1" : { + "bindingVersion" : "0.1.0" }, - "amqp1" : { }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.0.1" + } + } }, "googlepubsub" : { - "orderingKey" : null, - "attributes" : null, + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Content-Type" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "application/json" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "application/json" ] } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 + }, + "jms" : { + "bindingVersion" : "0.0.1" }, - "jms" : { }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myKey" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" + }, + "mercure" : { + "bindingVersion" : "0.1.0" }, - "mercure" : { }, "mqtt" : { "bindingVersion" : "0.1.0" }, - "mqtt5" : { }, - "nats" : { }, - "pulsar" : { }, - "redis" : { }, - "sns" : { }, - "solace" : { }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "mqtt5" : { + "bindingVersion" : "0.2.0" + }, + "nats" : { + "bindingVersion" : "0.1.0" + }, + "pulsar" : { + "bindingVersion" : "0.1.0" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "bindingVersion" : "0.1.0" + }, + "solace" : { + "bindingVersion" : "0.4.0" + }, + "sqs" : { + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" + }, + "ws" : { + "bindingVersion" : "0.1.0" + } }, "examples" : [ { "headers" : { @@ -975,8 +257,7 @@ "httpBasic" : { "type" : "http", "description" : "http", - "scheme" : "basic", - "bearerFormat" : null + "scheme" : "basic" }, "httpBearer" : { "type" : "http", @@ -1007,51 +288,7 @@ "parameter" : { "description" : "Id of the user.", "schema" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "type" : "string" }, "location" : "$message.payload#/user/id" }, @@ -1084,6 +321,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -1093,402 +331,150 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, + "ack" : false + }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { "bindingVersion" : "0.2.0" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, + "additionalProperties" : false + } + }, + "ibmmq" : { "bindingVersion" : "0.1.0" }, - "ibmmq" : { }, - "jms" : { }, + "jms" : { + "bindingVersion" : "0.0.1" + }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, - "mercure" : { }, + "mercure" : { + "bindingVersion" : "0.1.0" + }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true + }, + "mqtt5" : { + "bindingVersion" : "0.2.0" }, - "mqtt5" : { }, "nats" : { - "queue" : "messages", + "bindingVersion" : "0.1.0", + "queue" : "messages" + }, + "pulsar" : { + "bindingVersion" : "0.1.0" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "consumers" : [ ], "bindingVersion" : "0.1.0" }, - "pulsar" : { }, - "redis" : { }, - "sns" : { }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null + "topicSubscriptions" : [ "samples/*" ] + } ] + }, + "sqs" : { + "queues" : [ { + "name" : "myQueue", + "fifoQueue" : true, + "deduplicationScope" : "messageGroup", + "fifoThroughputLimit" : "perMessageGroupId", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600, + "redrivePolicy" : { + "deadLetterQueue" : { + "name" : "myQueue_error" + }, + "maxReceiveCount" : 15 }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] + "policy" : { + "statements" : [ { + "effect" : "Deny", + "principal" : "arn:aws:iam::123456789012:user/dec.kolakowski", + "action" : [ "sqs:SendMessage", "sqs:ReceiveMessage" ] + } ] } + }, { + "name" : "myQueue_error", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600 } ], - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "ws" : { + "bindingVersion" : "0.1.0" + } } } }, "messageTraits" : { "userSignup" : { "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" }, "applicationInstanceId" : { - "title" : null, - "description" : "Unique identifier for a given instance of the publishing application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Unique identifier for a given instance of the publishing application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "correlationId" : { "description" : "Default Correlation ID", @@ -1501,17 +487,11 @@ "summary" : "Action to sign a user up.", "description" : "A longer description", "tags" : [ { - "name" : "user", - "description" : null, - "externalDocs" : null + "name" : "user" }, { - "name" : "signup", - "description" : null, - "externalDocs" : null + "name" : "signup" }, { - "name" : "register", - "description" : null, - "externalDocs" : null + "name" : "register" } ], "externalDocs" : { "description" : "User sign up rules", @@ -1519,290 +499,98 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" + }, + "amqp1" : { + "bindingVersion" : "0.1.0" }, - "amqp1" : { }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.0.1" + } + } }, "googlepubsub" : { - "orderingKey" : null, - "attributes" : null, + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Content-Type" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "application/json" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "application/json" ] } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 + }, + "jms" : { + "bindingVersion" : "0.0.1" }, - "jms" : { }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myKey" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" + }, + "mercure" : { + "bindingVersion" : "0.1.0" }, - "mercure" : { }, "mqtt" : { "bindingVersion" : "0.1.0" }, - "mqtt5" : { }, - "nats" : { }, - "pulsar" : { }, - "redis" : { }, - "sns" : { }, - "solace" : { }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "mqtt5" : { + "bindingVersion" : "0.2.0" + }, + "nats" : { + "bindingVersion" : "0.1.0" + }, + "pulsar" : { + "bindingVersion" : "0.1.0" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "bindingVersion" : "0.1.0" + }, + "solace" : { + "bindingVersion" : "0.4.0" + }, + "sqs" : { + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" + }, + "ws" : { + "bindingVersion" : "0.1.0" + } }, "examples" : [ { "headers" : { @@ -1821,26 +609,40 @@ } }, "serverBindings" : { - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, - "http" : { }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { + "bindingVersion" : "0.2.0" + }, + "http" : { + "bindingVersion" : "0.3.0" + }, "ibmmq" : { + "bindingVersion" : "0.1.0", "groupId" : "PRODCLSTR1", "ccdtQueueManagerName" : "*", "cipherSpec" : "ANY_TLS12_OR_HIGHER", "multiEndpointServer" : false, - "heartBeatInterval" : 300, - "bindingVersion" : "0.1.0" + "heartBeatInterval" : 300 + }, + "jms" : { + "bindingVersion" : "0.0.1", + "jmsConnectionFactory" : "" }, - "jms" : { }, "kafka" : { + "bindingVersion" : "0.5.0", "schemaRegistryUrl" : "https://my-schema-registry.com", - "schemaRegistryVendor" : "confluent", - "bindingVersion" : "0.4.0" + "schemaRegistryVendor" : "confluent" + }, + "mercure" : { + "bindingVersion" : "0.1.0" }, - "mercure" : { }, "mqtt" : { + "bindingVersion" : "0.1.0", "clientId" : "guest", "cleanSession" : true, "lastWill" : { @@ -1849,30 +651,43 @@ "message" : "Guest gone offline.", "retain" : false }, - "keepAlive" : 60, - "bindingVersion" : "0.1.0" + "keepAlive" : 60 }, "mqtt5" : { "sessionExpiryInterval" : 60, "bindingVersion" : "0.2.0" }, - "nats" : { }, + "nats" : { + "bindingVersion" : "0.1.0" + }, "pulsar" : { - "tenant" : "contoso", + "bindingVersion" : "0.1.0", + "tenant" : "contoso" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { "bindingVersion" : "0.1.0" }, - "redis" : { }, - "sns" : { }, "solace" : { - "msgVpn" : "solace.private.net", - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.4.0", + "msgVpn" : "ProdVPN", + "clientName" : "transactions-broker" + }, + "sqs" : { + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "ws" : { + "bindingVersion" : "0.1.0" + } }, "channelBindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "is" : "routingKey", "exchange" : { "name" : "myExchange", @@ -1887,32 +702,33 @@ "exclusive" : true, "autoDelete" : false, "vhost" : "/" - }, - "bindingVersion" : "0.2.0" + } + }, + "amqp1" : { + "bindingVersion" : "0.1.0" }, - "amqp1" : { }, "anypointmq" : { + "bindingVersion" : "0.0.1", "destination" : "user-signup-exchg", - "destinationType" : "exchange", - "bindingVersion" : "0.0.1" + "destinationType" : "exchange" }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "topic" : "projects/your-project/topics/topic-proto-schema", - "labels" : null, "messageRetentionDuration" : "86400s", "messageStoragePolicy" : { "allowedPersistenceRegions" : [ "us-central1", "us-central2", "us-east1", "us-east4", "us-east5", "us-east7", "us-south1", "us-west1", "us-west2", "us-west3", "us-west4" ] }, "schemaSettings" : { "encoding" : "binary", - "firstRevisionId" : null, - "lastRevisionId" : null, "name" : "projects/your-project/schemas/message-proto" - }, - "bindingVersion" : "0.1.0" + } + }, + "http" : { + "bindingVersion" : "0.3.0" }, - "http" : { }, "ibmmq" : { + "bindingVersion" : "0.1.0", "destinationType" : "topic", "queue" : { "objectName" : "message", @@ -1925,12 +741,13 @@ "durablePermitted" : true, "lastMsgRetained" : true }, - "maxMsgLength" : 1024, - "bindingVersion" : "0.1.0" + "maxMsgLength" : 1024 + }, + "jms" : { + "bindingVersion" : "0.0.1" }, - "jms" : { }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "topic" : "my-specific-topic-name", "partitions" : 20, "replicas" : 3, @@ -1942,11 +759,20 @@ "max.message.bytes" : 1048588 } }, - "mercure" : { }, - "mqtt" : { }, - "mqtt5" : { }, - "nats" : { }, + "mercure" : { + "bindingVersion" : "0.1.0" + }, + "mqtt" : { + "bindingVersion" : "0.2.0" + }, + "mqtt5" : { + "bindingVersion" : "0.2.0" + }, + "nats" : { + "bindingVersion" : "0.1.0" + }, "pulsar" : { + "bindingVersion" : "0.1.0", "namespace" : "staging", "persistence" : "persistent", "compaction" : 1000, @@ -1956,211 +782,94 @@ "size" : 1000 }, "ttl" : 360, - "deduplication" : false, + "deduplication" : false + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "name" : "my-sns-topic", + "policy" : { + "statements" : [ { + "effect" : "Allow", + "principal" : "*", + "action" : "SNS:Publish" + } ] + }, + "bindingVersion" : "0.1.0" + }, + "solace" : { + "bindingVersion" : "0.4.0" + }, + "sqs" : { + "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" + } + }, + "deadLetterQueue" : { + "name" : "myQueue_error", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 0, + "visibilityTimeout" : 0, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 604800 + }, + "bindingVersion" : "0.2.0" + }, + "stomp" : { "bindingVersion" : "0.1.0" }, - "redis" : { }, - "sns" : { }, - "solace" : { }, - "sqs" : { }, - "stomp" : { }, "ws" : { + "bindingVersion" : "0.1.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "ref" : { - "title" : null, - "description" : "Referral.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Referral." } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Authentication" : { - "title" : null, - "description" : "Authentication token", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Authentication token" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + } + } } }, "operationBindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -2170,543 +879,261 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, + "ack" : false + }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { "bindingVersion" : "0.2.0" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, + "additionalProperties" : false + } + }, + "ibmmq" : { "bindingVersion" : "0.1.0" }, - "ibmmq" : { }, - "jms" : { }, + "jms" : { + "bindingVersion" : "0.0.1" + }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, - "mercure" : { }, + "mercure" : { + "bindingVersion" : "0.1.0" + }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true + }, + "mqtt5" : { + "bindingVersion" : "0.2.0" }, - "mqtt5" : { }, "nats" : { - "queue" : "messages", + "bindingVersion" : "0.1.0", + "queue" : "messages" + }, + "pulsar" : { + "bindingVersion" : "0.1.0" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "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 + } + } ], "bindingVersion" : "0.1.0" }, - "pulsar" : { }, - "redis" : { }, - "sns" : { }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] + "topicSubscriptions" : [ "samples/*" ] + } ] + }, + "sqs" : { + "queues" : [ { + "name" : "myQueue", + "fifoQueue" : true, + "deduplicationScope" : "messageGroup", + "fifoThroughputLimit" : "perMessageGroupId", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600, + "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", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 10, + "visibilityTimeout" : 30, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 345600 } ], - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.2.0" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "stomp" : { + "bindingVersion" : "0.1.0" + }, + "ws" : { + "bindingVersion" : "0.1.0" + } }, "messageBindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" + }, + "amqp1" : { + "bindingVersion" : "0.1.0" }, - "amqp1" : { }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.0.1" + } + } }, "googlepubsub" : { - "orderingKey" : null, - "attributes" : null, + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Content-Type" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "application/json" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "application/json" ] } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 + }, + "jms" : { + "bindingVersion" : "0.0.1" }, - "jms" : { }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myKey" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" + }, + "mercure" : { + "bindingVersion" : "0.1.0" }, - "mercure" : { }, "mqtt" : { "bindingVersion" : "0.1.0" }, - "mqtt5" : { }, - "nats" : { }, - "pulsar" : { }, - "redis" : { }, - "sns" : { }, - "solace" : { }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "mqtt5" : { + "bindingVersion" : "0.2.0" + }, + "nats" : { + "bindingVersion" : "0.1.0" + }, + "pulsar" : { + "bindingVersion" : "0.1.0" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { + "bindingVersion" : "0.1.0" + }, + "solace" : { + "bindingVersion" : "0.4.0" + }, + "sqs" : { + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" + }, + "ws" : { + "bindingVersion" : "0.1.0" + } }, "x-number" : 0, "x-string" : "", diff --git a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/components/components - wrongly extended.json b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/components/components - wrongly extended.json index bc4b8418..2dc2e814 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/components/components - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/components/components - wrongly extended.json @@ -111,7 +111,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -131,7 +132,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -322,7 +323,6 @@ "anypointmq": {}, "googlepubsub": {}, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -338,7 +338,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": {}, "jms": {}, @@ -355,7 +355,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -480,7 +480,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -500,7 +501,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -551,7 +552,7 @@ "kafka": { "schemaRegistryUrl": "https://my-schema-registry.com", "schemaRegistryVendor": "confluent", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -666,7 +667,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { }, "mqtt": { }, @@ -733,7 +734,6 @@ "anypointmq" : { }, "googlepubsub" : { }, "http" : { - "type" : "request", "method" : "GET", "query" : { "type" : "object", @@ -747,7 +747,7 @@ }, "additionalProperties" : false }, - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.3.0" }, "ibmmq" : { }, "jms" : { }, @@ -846,7 +846,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -866,7 +867,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { diff --git a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/components/components.json b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/components/components.json index f2cfe194..6818d88b 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/components/components.json +++ b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/components/components.json @@ -111,7 +111,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -131,7 +132,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -322,7 +323,6 @@ "anypointmq": {}, "googlepubsub": {}, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -338,7 +338,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": {}, "jms": {}, @@ -355,7 +355,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -376,33 +376,56 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] + } + ], + "bindingVersion": "0.4.0" + }, + "sqs": { + "queues": [ + { + "name": "myQueue", + "fifoQueue": true, + "deduplicationScope": "messageGroup", + "fifoThroughputLimit": "perMessageGroupId", + "deliveryDelay": 10, + "redrivePolicy": { + "deadLetterQueue": { + "name": "myQueue_error" + }, + "maxReceiveCount": 15 }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" + "policy": { + "statements": [ + { + "effect": "Deny", + "principal": "arn:aws:iam::123456789012:user/dec.kolakowski", + "action": [ + "sqs:SendMessage", + "sqs:ReceiveMessage" + ] + } ] } + }, + { + "name": "myQueue_error", + "deliveryDelay": 10 } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.2.0" }, - "sqs": {}, "stomp": {}, "ws": {} } @@ -480,7 +503,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -500,7 +524,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -551,7 +575,7 @@ "kafka": { "schemaRegistryUrl": "https://my-schema-registry.com", "schemaRegistryVendor": "confluent", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -578,8 +602,9 @@ "redis": {}, "sns": {}, "solace": { - "msgVpn": "solace.private.net", - "bindingVersion": "0.3.0" + "clientName": "transactions-broker", + "msgVpn": "ProdVPN", + "bindingVersion": "0.4.0" }, "sqs": {}, "stomp": {}, @@ -666,7 +691,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { }, "mqtt": { }, @@ -689,9 +714,57 @@ "bindingVersion": "0.1.0" }, "redis": { }, - "sns": { }, + "sns": { + "name" : "my-sns-topic", + "policy" : { + "statements" : [ { + "effect" : "Allow", + "principal" : "*", + "action" : "SNS:Publish" + } ] + }, + "bindingVersion" : "0.1.0" + }, "solace": { }, - "sqs": { }, + "sqs": { + "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" + } + }, + "deadLetterQueue" : { + "name" : "myQueue_error", + "fifoQueue" : false, + "deduplicationScope" : "queue", + "fifoThroughputLimit" : "perQueue", + "deliveryDelay" : 0, + "visibilityTimeout" : 0, + "receiveMessageWaitTime" : 0, + "messageRetentionPeriod" : 604800 + } + }, "stomp": { }, "ws": { "method": "GET", @@ -733,7 +806,6 @@ "anypointmq" : { }, "googlepubsub" : { }, "http" : { - "type" : "request", "method" : "GET", "query" : { "type" : "object", @@ -747,7 +819,7 @@ }, "additionalProperties" : false }, - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.3.0" }, "ibmmq" : { }, "jms" : { }, @@ -760,7 +832,7 @@ "type" : "string", "enum" : [ "myClientId" ] }, - "bindingVersion" : "0.4.0" + "bindingVersion" : "0.5.0" }, "mercure" : { }, "mqtt" : { @@ -775,36 +847,98 @@ }, "pulsar" : { }, "redis" : { }, - "sns" : { }, - "solace" : { - "destinations" : [ { - "destinationType" : "queue", - "deliveryMode" : "persistent", - "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null - }, { - "destinationType" : "queue", - "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] + "sns" : { + "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 } } ], - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.1.0" + }, + "solace" : { + "destinations": [ + { + "destinationType": "queue", + "queue": { + "name": "sampleQueue", + "topicSubscriptions": [ + "samples/*" + ], + "accessType": "nonexclusive" + } + }, + { + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] + } + ], + "bindingVersion": "0.4.0" + }, + "sqs" : { + "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 + } + ], + "bindingVersion": "0.2.0" }, - "sqs" : { }, "stomp" : { }, "ws" : { } }, @@ -846,7 +980,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -866,7 +1001,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { diff --git a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/server/server - extended.json b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/server/server - extended.json index 9d151fa2..ed813d6b 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/server/server - extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/server/server - extended.json @@ -6,13 +6,9 @@ "variables" : { "username" : { "description" : "This value is assigned by the service provider, in this example `gigantic-server.com`", - "examples" : null, - "enum" : null, "default" : "demo" }, "port" : { - "description" : null, - "examples" : null, "enum" : [ "8883", "8884" ], "default" : "8883" } @@ -21,26 +17,40 @@ "mqttBroker" : [ ] } ], "bindings" : { - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, - "http" : { }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { + "bindingVersion" : "0.2.0" + }, + "http" : { + "bindingVersion" : "0.3.0" + }, "ibmmq" : { + "bindingVersion" : "0.1.0", "groupId" : "PRODCLSTR1", "ccdtQueueManagerName" : "*", "cipherSpec" : "ANY_TLS12_OR_HIGHER", "multiEndpointServer" : false, - "heartBeatInterval" : 300, - "bindingVersion" : "0.1.0" + "heartBeatInterval" : 300 + }, + "jms" : { + "bindingVersion" : "0.0.1", + "jmsConnectionFactory" : "" }, - "jms" : { }, "kafka" : { + "bindingVersion" : "0.5.0", "schemaRegistryUrl" : "https://my-schema-registry.com", - "schemaRegistryVendor" : "confluent", - "bindingVersion" : "0.4.0" + "schemaRegistryVendor" : "confluent" + }, + "mercure" : { + "bindingVersion" : "0.1.0" }, - "mercure" : { }, "mqtt" : { + "bindingVersion" : "0.1.0", "clientId" : "guest", "cleanSession" : true, "lastWill" : { @@ -49,27 +59,39 @@ "message" : "Guest gone offline.", "retain" : false }, - "keepAlive" : 60, - "bindingVersion" : "0.1.0" + "keepAlive" : 60 }, "mqtt5" : { "sessionExpiryInterval" : 60, "bindingVersion" : "0.2.0" }, - "nats" : { }, + "nats" : { + "bindingVersion" : "0.1.0" + }, "pulsar" : { - "tenant" : "contoso", + "bindingVersion" : "0.1.0", + "tenant" : "contoso" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { "bindingVersion" : "0.1.0" }, - "redis" : { }, - "sns" : { }, "solace" : { - "msgVpn" : "solace.private.net", - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.4.0", + "msgVpn" : "ProdVPN", + "clientName" : "transactions-broker" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "sqs" : { + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" + }, + "ws" : { + "bindingVersion" : "0.1.0" + } }, "x-number" : 0, "x-string" : "", diff --git a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/server/server - wrongly extended.json b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/server/server - wrongly extended.json index 516339ec..4d75d119 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/server/server - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/server/server - wrongly extended.json @@ -41,7 +41,7 @@ "kafka": { "schemaRegistryUrl": "https://my-schema-registry.com", "schemaRegistryVendor": "confluent", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { diff --git a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/server/server.json b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/server/server.json index a4695f41..b14cd8c2 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.0.0/model/server/server.json +++ b/asyncapi-core/src/test/resources/json/v2/2.0.0/model/server/server.json @@ -38,7 +38,7 @@ "kafka": { "schemaRegistryUrl": "https://my-schema-registry.com", "schemaRegistryVendor": "confluent", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -65,8 +65,9 @@ "redis": {}, "sns": {}, "solace": { - "msgVpn": "solace.private.net", - "bindingVersion": "0.3.0" + "clientName": "transactions-broker", + "msgVpn": "ProdVPN", + "bindingVersion": "0.4.0" }, "sqs": {}, "stomp": {}, diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/asyncapi - extended.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/asyncapi - extended.json index fa6bf58a..48adbb86 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/asyncapi - extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/asyncapi - extended.json @@ -25,13 +25,9 @@ "variables" : { "username" : { "description" : "This value is assigned by the service provider, in this example `gigantic-server.com`", - "examples" : null, - "enum" : null, "default" : "demo" }, "port" : { - "description" : null, - "examples" : null, "enum" : [ "8883", "8884" ], "default" : "8883" }, @@ -44,33 +40,46 @@ } ], "tags" : [ { "name" : "env:staging", - "description" : "This environment is a replica of the production environment", - "externalDocs" : null + "description" : "This environment is a replica of the production environment" } ], "bindings" : { "amqp" : { "$ref" : "#/components/serverBindings/amqp" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, - "http" : { }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { + "bindingVersion" : "0.2.0" + }, + "http" : { + "bindingVersion" : "0.3.0" + }, "ibmmq" : { + "bindingVersion" : "0.1.0", "groupId" : "PRODCLSTR1", "ccdtQueueManagerName" : "*", "cipherSpec" : "ANY_TLS12_OR_HIGHER", "multiEndpointServer" : false, - "heartBeatInterval" : 300, - "bindingVersion" : "0.1.0" + "heartBeatInterval" : 300 + }, + "jms" : { + "bindingVersion" : "0.0.1", + "jmsConnectionFactory" : "" }, - "jms" : { }, "kafka" : { + "bindingVersion" : "0.5.0", "schemaRegistryUrl" : "https://my-schema-registry.com", - "schemaRegistryVendor" : "confluent", - "bindingVersion" : "0.4.0" + "schemaRegistryVendor" : "confluent" + }, + "mercure" : { + "bindingVersion" : "0.1.0" }, - "mercure" : { }, "mqtt" : { + "bindingVersion" : "0.1.0", "clientId" : "guest", "cleanSession" : true, "lastWill" : { @@ -79,27 +88,39 @@ "message" : "Guest gone offline.", "retain" : false }, - "keepAlive" : 60, - "bindingVersion" : "0.1.0" + "keepAlive" : 60 }, "mqtt5" : { "sessionExpiryInterval" : 60, "bindingVersion" : "0.2.0" }, - "nats" : { }, + "nats" : { + "bindingVersion" : "0.1.0" + }, "pulsar" : { - "tenant" : "contoso", + "bindingVersion" : "0.1.0", + "tenant" : "contoso" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { "bindingVersion" : "0.1.0" }, - "redis" : { }, - "sns" : { }, "solace" : { - "msgVpn" : "solace.private.net", - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.4.0", + "msgVpn" : "ProdVPN", + "clientName" : "transactions-broker" + }, + "sqs" : { + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "ws" : { + "bindingVersion" : "0.1.0" + } } }, "stage-2" : { @@ -132,6 +153,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -141,8 +163,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -154,104 +175,20 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + "additionalProperties" : false + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -260,116 +197,30 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, "mercure" : { "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -381,32 +232,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -441,6 +281,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -450,8 +291,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -463,104 +303,20 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + "additionalProperties" : false + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -569,116 +325,30 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, "mercure" : { "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -690,32 +360,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -734,311 +393,45 @@ }, { "messageId" : "userSignup", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" }, "applicationInstanceId" : { - "title" : null, - "description" : "Unique identifier for a given instance of the publishing application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Unique identifier for a given instance of the publishing application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "payload" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "user" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/userCreate", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/userCreate" }, "signup" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/signup", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/signup" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "correlationId" : { "description" : "Default Correlation ID", "location" : "$message.header#/correlationId" }, - "schemaFormat" : "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat" : "application/vnd.aai.asyncapi;version=2.6.0", "contentType" : "application/json", "name" : "UserSignup", "title" : "User signup", "summary" : "Action to sign a user up.", "description" : "A longer description", "tags" : [ { - "name" : "user", - "description" : null, - "externalDocs" : null + "name" : "user" }, { - "name" : "signup", - "description" : null, - "externalDocs" : null + "name" : "signup" }, { - "name" : "register", - "description" : null, - "externalDocs" : null + "name" : "register" } ], "externalDocs" : { "description" : "User sign up rules", @@ -1046,280 +439,64 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.0.1" + } + } }, "googlepubsub" : { - "orderingKey" : null, - "attributes" : null, + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Content-Type" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "application/json" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "application/json" ] } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myKey" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -1398,6 +575,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -1407,8 +585,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -1420,104 +597,20 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + "additionalProperties" : false + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -1526,116 +619,30 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, "mercure" : { "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -1647,32 +654,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -1707,6 +703,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -1716,8 +713,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -1729,104 +725,20 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + "additionalProperties" : false + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -1835,116 +747,30 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, "mercure" : { "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -1956,32 +782,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -1997,311 +812,45 @@ "message" : { "messageId" : "userSignup", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" }, "applicationInstanceId" : { - "title" : null, - "description" : "Unique identifier for a given instance of the publishing application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Unique identifier for a given instance of the publishing application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "payload" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "user" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/userCreate", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/userCreate" }, "signup" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/signup", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/signup" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "correlationId" : { "description" : "Default Correlation ID", "location" : "$message.header#/correlationId" }, - "schemaFormat" : "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat" : "application/vnd.aai.asyncapi;version=2.6.0", "contentType" : "application/json", "name" : "UserSignup", "title" : "User signup", "summary" : "Action to sign a user up.", "description" : "A longer description", "tags" : [ { - "name" : "user", - "description" : null, - "externalDocs" : null + "name" : "user" }, { - "name" : "signup", - "description" : null, - "externalDocs" : null + "name" : "signup" }, { - "name" : "register", - "description" : null, - "externalDocs" : null + "name" : "register" } ], "externalDocs" : { "description" : "User sign up rules", @@ -2309,280 +858,64 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.0.1" + } + } }, "googlepubsub" : { - "orderingKey" : null, - "attributes" : null, + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Content-Type" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "application/json" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "application/json" ] } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myKey" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -2643,57 +976,14 @@ "userId" : { "description" : "Id of the user.", "schema" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "type" : "string" }, "location" : "$message.payload#/user/id" } }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "is" : "routingKey", "exchange" : { "name" : "myExchange", @@ -2708,36 +998,33 @@ "exclusive" : true, "autoDelete" : false, "vhost" : "/" - }, - "bindingVersion" : "0.2.0" + } }, "amqp1" : { "$ref" : "#/components/channelBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "destination" : "user-signup-exchg", - "destinationType" : "exchange", - "bindingVersion" : "0.0.1" + "destinationType" : "exchange" }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "topic" : "projects/your-project/topics/topic-proto-schema", - "labels" : null, "messageRetentionDuration" : "86400s", "messageStoragePolicy" : { "allowedPersistenceRegions" : [ "us-central1", "us-central2", "us-east1", "us-east4", "us-east5", "us-east7", "us-south1", "us-west1", "us-west2", "us-west3", "us-west4" ] }, "schemaSettings" : { "encoding" : "binary", - "firstRevisionId" : null, - "lastRevisionId" : null, "name" : "projects/your-project/schemas/message-proto" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { "$ref" : "#/components/channelBindings/http" }, "ibmmq" : { + "bindingVersion" : "0.1.0", "destinationType" : "topic", "queue" : { "objectName" : "message", @@ -2750,14 +1037,13 @@ "durablePermitted" : true, "lastMsgRetained" : true }, - "maxMsgLength" : 1024, - "bindingVersion" : "0.1.0" + "maxMsgLength" : 1024 }, "jms" : { "$ref" : "#/components/channelBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "topic" : "my-specific-topic-name", "partitions" : 20, "replicas" : 3, @@ -2782,6 +1068,7 @@ "$ref" : "#/components/channelBindings/nats" }, "pulsar" : { + "bindingVersion" : "0.1.0", "namespace" : "staging", "persistence" : "persistent", "compaction" : 1000, @@ -2791,8 +1078,7 @@ "size" : 1000 }, "ttl" : 360, - "deduplication" : false, - "bindingVersion" : "0.1.0" + "deduplication" : false }, "redis" : { "$ref" : "#/components/channelBindings/redis" @@ -2810,488 +1096,55 @@ "$ref" : "#/components/channelBindings/stomp" }, "ws" : { + "bindingVersion" : "0.1.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "ref" : { - "title" : null, - "description" : "Referral.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Referral." } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Authentication" : { - "title" : null, - "description" : "Authentication token", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Authentication token" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + } + } } - }, - "$ref" : null + } } }, "components" : { "schemas" : { "Category" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "id" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "integer", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : "int64", - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "format" : "int64" }, "name" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "type" : "string" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "Tag" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "id" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "integer", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : "int64", - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "format" : "int64" }, "name" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "type" : "string" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "User" : { "$ref" : "#/components/schemas/user" @@ -3306,13 +1159,9 @@ "variables" : { "username" : { "description" : "This value is assigned by the service provider, in this example `gigantic-server.com`", - "examples" : null, - "enum" : null, "default" : "demo" }, "port" : { - "description" : null, - "examples" : null, "enum" : [ "8883", "8884" ], "default" : "8883" }, @@ -3325,33 +1174,46 @@ } ], "tags" : [ { "name" : "env:staging", - "description" : "This environment is a replica of the production environment", - "externalDocs" : null + "description" : "This environment is a replica of the production environment" } ], "bindings" : { "amqp" : { "$ref" : "#/components/serverBindings/amqp" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, - "http" : { }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { + "bindingVersion" : "0.2.0" + }, + "http" : { + "bindingVersion" : "0.3.0" + }, "ibmmq" : { + "bindingVersion" : "0.1.0", "groupId" : "PRODCLSTR1", "ccdtQueueManagerName" : "*", "cipherSpec" : "ANY_TLS12_OR_HIGHER", "multiEndpointServer" : false, - "heartBeatInterval" : 300, - "bindingVersion" : "0.1.0" + "heartBeatInterval" : 300 + }, + "jms" : { + "bindingVersion" : "0.0.1", + "jmsConnectionFactory" : "" }, - "jms" : { }, "kafka" : { + "bindingVersion" : "0.5.0", "schemaRegistryUrl" : "https://my-schema-registry.com", - "schemaRegistryVendor" : "confluent", - "bindingVersion" : "0.4.0" + "schemaRegistryVendor" : "confluent" + }, + "mercure" : { + "bindingVersion" : "0.1.0" }, - "mercure" : { }, "mqtt" : { + "bindingVersion" : "0.1.0", "clientId" : "guest", "cleanSession" : true, "lastWill" : { @@ -3360,27 +1222,39 @@ "message" : "Guest gone offline.", "retain" : false }, - "keepAlive" : 60, - "bindingVersion" : "0.1.0" + "keepAlive" : 60 }, "mqtt5" : { "sessionExpiryInterval" : 60, "bindingVersion" : "0.2.0" }, - "nats" : { }, + "nats" : { + "bindingVersion" : "0.1.0" + }, "pulsar" : { - "tenant" : "contoso", + "bindingVersion" : "0.1.0", + "tenant" : "contoso" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { "bindingVersion" : "0.1.0" }, - "redis" : { }, - "sns" : { }, "solace" : { - "msgVpn" : "solace.private.net", - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.4.0", + "msgVpn" : "ProdVPN", + "clientName" : "transactions-broker" + }, + "sqs" : { + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "ws" : { + "bindingVersion" : "0.1.0" + } } }, "mqtt-stage" : { @@ -3423,6 +1297,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -3432,8 +1307,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -3445,104 +1319,20 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + "additionalProperties" : false + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -3551,116 +1341,30 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, "mercure" : { "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -3672,32 +1376,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -3732,6 +1425,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -3741,8 +1435,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -3754,104 +1447,20 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + "additionalProperties" : false + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -3860,116 +1469,30 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, "mercure" : { "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -3981,32 +1504,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -4025,311 +1537,45 @@ }, { "messageId" : "userSignup", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" }, "applicationInstanceId" : { - "title" : null, - "description" : "Unique identifier for a given instance of the publishing application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Unique identifier for a given instance of the publishing application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "payload" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "user" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/userCreate", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/userCreate" }, "signup" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/signup", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/signup" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "correlationId" : { "description" : "Default Correlation ID", "location" : "$message.header#/correlationId" }, - "schemaFormat" : "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat" : "application/vnd.aai.asyncapi;version=2.6.0", "contentType" : "application/json", "name" : "UserSignup", "title" : "User signup", "summary" : "Action to sign a user up.", "description" : "A longer description", "tags" : [ { - "name" : "user", - "description" : null, - "externalDocs" : null + "name" : "user" }, { - "name" : "signup", - "description" : null, - "externalDocs" : null + "name" : "signup" }, { - "name" : "register", - "description" : null, - "externalDocs" : null + "name" : "register" } ], "externalDocs" : { "description" : "User sign up rules", @@ -4337,280 +1583,64 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.0.1" + } + } }, "googlepubsub" : { - "orderingKey" : null, - "attributes" : null, + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Content-Type" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "application/json" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "application/json" ] } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myKey" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -4689,6 +1719,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -4698,8 +1729,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -4711,104 +1741,20 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + "additionalProperties" : false + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -4817,116 +1763,30 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, "mercure" : { "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -4938,32 +1798,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -4998,6 +1847,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -5007,8 +1857,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -5020,104 +1869,20 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + "additionalProperties" : false + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -5126,116 +1891,30 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, "mercure" : { "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -5247,32 +1926,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -5288,311 +1956,45 @@ "message" : { "messageId" : "userSignup", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" }, "applicationInstanceId" : { - "title" : null, - "description" : "Unique identifier for a given instance of the publishing application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Unique identifier for a given instance of the publishing application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "payload" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "user" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/userCreate", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/userCreate" }, "signup" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/signup", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/signup" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "correlationId" : { "description" : "Default Correlation ID", "location" : "$message.header#/correlationId" }, - "schemaFormat" : "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat" : "application/vnd.aai.asyncapi;version=2.6.0", "contentType" : "application/json", "name" : "UserSignup", "title" : "User signup", "summary" : "Action to sign a user up.", "description" : "A longer description", "tags" : [ { - "name" : "user", - "description" : null, - "externalDocs" : null + "name" : "user" }, { - "name" : "signup", - "description" : null, - "externalDocs" : null + "name" : "signup" }, { - "name" : "register", - "description" : null, - "externalDocs" : null + "name" : "register" } ], "externalDocs" : { "description" : "User sign up rules", @@ -5600,280 +2002,64 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.0.1" + } + } }, "googlepubsub" : { - "orderingKey" : null, - "attributes" : null, + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Content-Type" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "application/json" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "application/json" ] } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myKey" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -5934,57 +2120,14 @@ "userId" : { "description" : "Id of the user.", "schema" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "type" : "string" }, "location" : "$message.payload#/user/id" } }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "is" : "routingKey", "exchange" : { "name" : "myExchange", @@ -5999,36 +2142,33 @@ "exclusive" : true, "autoDelete" : false, "vhost" : "/" - }, - "bindingVersion" : "0.2.0" + } }, "amqp1" : { "$ref" : "#/components/channelBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "destination" : "user-signup-exchg", - "destinationType" : "exchange", - "bindingVersion" : "0.0.1" + "destinationType" : "exchange" }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "topic" : "projects/your-project/topics/topic-proto-schema", - "labels" : null, "messageRetentionDuration" : "86400s", "messageStoragePolicy" : { "allowedPersistenceRegions" : [ "us-central1", "us-central2", "us-east1", "us-east4", "us-east5", "us-east7", "us-south1", "us-west1", "us-west2", "us-west3", "us-west4" ] }, "schemaSettings" : { "encoding" : "binary", - "firstRevisionId" : null, - "lastRevisionId" : null, "name" : "projects/your-project/schemas/message-proto" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { "$ref" : "#/components/channelBindings/http" }, "ibmmq" : { + "bindingVersion" : "0.1.0", "destinationType" : "topic", "queue" : { "objectName" : "message", @@ -6041,14 +2181,13 @@ "durablePermitted" : true, "lastMsgRetained" : true }, - "maxMsgLength" : 1024, - "bindingVersion" : "0.1.0" + "maxMsgLength" : 1024 }, "jms" : { "$ref" : "#/components/channelBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "topic" : "my-specific-topic-name", "partitions" : 20, "replicas" : 3, @@ -6073,6 +2212,7 @@ "$ref" : "#/components/channelBindings/nats" }, "pulsar" : { + "bindingVersion" : "0.1.0", "namespace" : "staging", "persistence" : "persistent", "compaction" : 1000, @@ -6082,8 +2222,7 @@ "size" : 1000 }, "ttl" : 360, - "deduplication" : false, - "bindingVersion" : "0.1.0" + "deduplication" : false }, "redis" : { "$ref" : "#/components/channelBindings/redis" @@ -6101,512 +2240,73 @@ "$ref" : "#/components/channelBindings/stomp" }, "ws" : { + "bindingVersion" : "0.1.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "ref" : { - "title" : null, - "description" : "Referral.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Referral." } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Authentication" : { - "title" : null, - "description" : "Authentication token", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Authentication token" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + } + } } - }, - "$ref" : null + } } }, "messages" : { "userSignup" : { "messageId" : "userSignup", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" }, "applicationInstanceId" : { - "title" : null, - "description" : "Unique identifier for a given instance of the publishing application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Unique identifier for a given instance of the publishing application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "payload" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "user" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/userCreate", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/userCreate" }, "signup" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/signup", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/signup" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "correlationId" : { "description" : "Default Correlation ID", "location" : "$message.header#/correlationId" }, - "schemaFormat" : "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat" : "application/vnd.aai.asyncapi;version=2.6.0", "contentType" : "application/json", "name" : "UserSignup", "title" : "User signup", "summary" : "Action to sign a user up.", "description" : "A longer description", "tags" : [ { - "name" : "user", - "description" : null, - "externalDocs" : null + "name" : "user" }, { - "name" : "signup", - "description" : null, - "externalDocs" : null + "name" : "signup" }, { - "name" : "register", - "description" : null, - "externalDocs" : null + "name" : "register" } ], "externalDocs" : { "description" : "User sign up rules", @@ -6614,280 +2314,64 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.0.1" + } + } }, "googlepubsub" : { - "orderingKey" : null, - "attributes" : null, + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Content-Type" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "application/json" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "application/json" ] } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myKey" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -7012,8 +2496,7 @@ "httpBasic" : { "type" : "http", "description" : "http", - "scheme" : "basic", - "bearerFormat" : null + "scheme" : "basic" }, "httpBearer" : { "type" : "http", @@ -7044,51 +2527,7 @@ "parameterWithSchema" : { "description" : "Id of the user.", "schema" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "type" : "string" }, "location" : "$message.payload#/user/id" }, @@ -7134,6 +2573,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -7143,8 +2583,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -7156,104 +2595,20 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + "additionalProperties" : false + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -7262,116 +2617,30 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, "mercure" : { "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -7383,32 +2652,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -7429,169 +2687,34 @@ "userSignup" : { "messageId" : "userSignup", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" }, "applicationInstanceId" : { - "title" : null, - "description" : "Unique identifier for a given instance of the publishing application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Unique identifier for a given instance of the publishing application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "correlationId" : { "description" : "Default Correlation ID", "location" : "$message.header#/correlationId" }, - "schemaFormat" : "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat" : "application/vnd.aai.asyncapi;version=2.6.0", "contentType" : "application/json", "name" : "UserSignup", "title" : "User signup", "summary" : "Action to sign a user up.", "description" : "A longer description", "tags" : [ { - "name" : "user", - "description" : null, - "externalDocs" : null + "name" : "user" }, { - "name" : "signup", - "description" : null, - "externalDocs" : null + "name" : "signup" }, { - "name" : "register", - "description" : null, - "externalDocs" : null + "name" : "register" } ], "externalDocs" : { "description" : "User sign up rules", @@ -7599,280 +2722,64 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.0.1" + } + } }, "googlepubsub" : { - "orderingKey" : null, - "attributes" : null, + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Content-Type" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "application/json" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "application/json" ] } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myKey" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -7933,26 +2840,40 @@ "amqp" : { "$ref" : "#/components/serverBindings/amqp" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, - "http" : { }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { + "bindingVersion" : "0.2.0" + }, + "http" : { + "bindingVersion" : "0.3.0" + }, "ibmmq" : { + "bindingVersion" : "0.1.0", "groupId" : "PRODCLSTR1", "ccdtQueueManagerName" : "*", "cipherSpec" : "ANY_TLS12_OR_HIGHER", "multiEndpointServer" : false, - "heartBeatInterval" : 300, - "bindingVersion" : "0.1.0" + "heartBeatInterval" : 300 + }, + "jms" : { + "bindingVersion" : "0.0.1", + "jmsConnectionFactory" : "" }, - "jms" : { }, "kafka" : { + "bindingVersion" : "0.5.0", "schemaRegistryUrl" : "https://my-schema-registry.com", - "schemaRegistryVendor" : "confluent", - "bindingVersion" : "0.4.0" + "schemaRegistryVendor" : "confluent" + }, + "mercure" : { + "bindingVersion" : "0.1.0" }, - "mercure" : { }, "mqtt" : { + "bindingVersion" : "0.1.0", "clientId" : "guest", "cleanSession" : true, "lastWill" : { @@ -7961,30 +2882,43 @@ "message" : "Guest gone offline.", "retain" : false }, - "keepAlive" : 60, - "bindingVersion" : "0.1.0" + "keepAlive" : 60 }, "mqtt5" : { "sessionExpiryInterval" : 60, "bindingVersion" : "0.2.0" }, - "nats" : { }, + "nats" : { + "bindingVersion" : "0.1.0" + }, "pulsar" : { - "tenant" : "contoso", + "bindingVersion" : "0.1.0", + "tenant" : "contoso" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { "bindingVersion" : "0.1.0" }, - "redis" : { }, - "sns" : { }, "solace" : { - "msgVpn" : "solace.private.net", - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.4.0", + "msgVpn" : "ProdVPN", + "clientName" : "transactions-broker" + }, + "sqs" : { + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "ws" : { + "bindingVersion" : "0.1.0" + } }, "channelBindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "is" : "routingKey", "exchange" : { "name" : "myExchange", @@ -7999,36 +2933,33 @@ "exclusive" : true, "autoDelete" : false, "vhost" : "/" - }, - "bindingVersion" : "0.2.0" + } }, "amqp1" : { "$ref" : "#/components/channelBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "destination" : "user-signup-exchg", - "destinationType" : "exchange", - "bindingVersion" : "0.0.1" + "destinationType" : "exchange" }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "topic" : "projects/your-project/topics/topic-proto-schema", - "labels" : null, "messageRetentionDuration" : "86400s", "messageStoragePolicy" : { "allowedPersistenceRegions" : [ "us-central1", "us-central2", "us-east1", "us-east4", "us-east5", "us-east7", "us-south1", "us-west1", "us-west2", "us-west3", "us-west4" ] }, "schemaSettings" : { "encoding" : "binary", - "firstRevisionId" : null, - "lastRevisionId" : null, "name" : "projects/your-project/schemas/message-proto" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { "$ref" : "#/components/channelBindings/http" }, "ibmmq" : { + "bindingVersion" : "0.1.0", "destinationType" : "topic", "queue" : { "objectName" : "message", @@ -8041,14 +2972,13 @@ "durablePermitted" : true, "lastMsgRetained" : true }, - "maxMsgLength" : 1024, - "bindingVersion" : "0.1.0" + "maxMsgLength" : 1024 }, "jms" : { "$ref" : "#/components/channelBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "topic" : "my-specific-topic-name", "partitions" : 20, "replicas" : 3, @@ -8073,6 +3003,7 @@ "$ref" : "#/components/channelBindings/nats" }, "pulsar" : { + "bindingVersion" : "0.1.0", "namespace" : "staging", "persistence" : "persistent", "compaction" : 1000, @@ -8082,8 +3013,7 @@ "size" : 1000 }, "ttl" : 360, - "deduplication" : false, - "bindingVersion" : "0.1.0" + "deduplication" : false }, "redis" : { "$ref" : "#/components/channelBindings/redis" @@ -8101,202 +3031,31 @@ "$ref" : "#/components/channelBindings/stomp" }, "ws" : { + "bindingVersion" : "0.1.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "ref" : { - "title" : null, - "description" : "Referral.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Referral." } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Authentication" : { - "title" : null, - "description" : "Authentication token", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Authentication token" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + } + } } }, "operationBindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -8306,8 +3065,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -8319,104 +3077,20 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + "additionalProperties" : false + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -8425,116 +3099,30 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, "mercure" : { "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -8546,32 +3134,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -8585,280 +3162,64 @@ }, "messageBindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.0.1" + } + } }, "googlepubsub" : { - "orderingKey" : null, - "attributes" : null, + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Content-Type" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "application/json" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "application/json" ] } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myKey" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/asyncapi - wrongly extended.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/asyncapi - wrongly extended.json index cc2a0361..2a1e29a4 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/asyncapi - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/asyncapi - wrongly extended.json @@ -70,7 +70,7 @@ "kafka": { "schemaRegistryUrl": "https://my-schema-registry.com", "schemaRegistryVendor": "confluent", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -205,7 +205,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -366,7 +366,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -470,7 +470,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -547,7 +547,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -698,7 +698,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -859,7 +859,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -958,7 +958,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -1035,7 +1035,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1190,7 +1190,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" @@ -1342,7 +1342,7 @@ "kafka": { "schemaRegistryUrl": "https://my-schema-registry.com", "schemaRegistryVendor": "confluent", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -1494,7 +1494,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -1655,7 +1655,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -1759,7 +1759,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -1836,7 +1836,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1987,7 +1987,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -2148,7 +2148,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -2247,7 +2247,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -2324,7 +2324,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -2479,7 +2479,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" @@ -2579,7 +2579,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -2656,7 +2656,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -2929,7 +2929,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -3021,7 +3021,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -3098,7 +3098,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -3177,7 +3177,7 @@ "kafka": { "schemaRegistryUrl": "https://my-schema-registry.com", "schemaRegistryVendor": "confluent", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -3298,7 +3298,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" @@ -3430,7 +3430,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -3559,7 +3559,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/asyncapi.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/asyncapi.json index 8684ba91..2f0eabd7 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/asyncapi.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/asyncapi.json @@ -70,7 +70,7 @@ "kafka": { "schemaRegistryUrl": "https://my-schema-registry.com", "schemaRegistryVendor": "confluent", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -97,8 +97,9 @@ "redis": {}, "sns": {}, "solace": { - "msgVpn": "solace.private.net", - "bindingVersion": "0.3.0" + "clientName": "transactions-broker", + "msgVpn": "ProdVPN", + "bindingVersion": "0.4.0" }, "sqs": {}, "stomp": {}, @@ -168,7 +169,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -184,7 +184,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -205,7 +205,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -236,31 +236,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -329,7 +319,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -345,7 +334,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -366,7 +355,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -397,31 +386,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -470,7 +449,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -525,7 +504,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode": 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -547,7 +527,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -661,7 +641,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -677,7 +656,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -698,7 +677,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -729,31 +708,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -822,7 +791,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -838,7 +806,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -859,7 +827,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -890,31 +858,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -958,7 +916,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -1013,7 +971,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode": 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1035,7 +994,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1190,7 +1149,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" @@ -1342,7 +1301,7 @@ "kafka": { "schemaRegistryUrl": "https://my-schema-registry.com", "schemaRegistryVendor": "confluent", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -1369,8 +1328,9 @@ "redis": {}, "sns": {}, "solace": { - "msgVpn": "solace.private.net", - "bindingVersion": "0.3.0" + "clientName": "transactions-broker", + "msgVpn": "ProdVPN", + "bindingVersion": "0.4.0" }, "sqs": {}, "stomp": {}, @@ -1457,7 +1417,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -1473,7 +1432,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -1494,7 +1453,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -1525,31 +1484,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -1618,7 +1567,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -1634,7 +1582,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -1655,7 +1603,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -1686,31 +1634,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -1759,7 +1697,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -1814,7 +1752,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1836,7 +1775,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1950,7 +1889,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -1966,7 +1904,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -1987,7 +1925,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -2018,31 +1956,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -2111,7 +2039,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -2127,7 +2054,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -2148,7 +2075,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -2179,31 +2106,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -2247,7 +2164,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -2302,7 +2219,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -2324,7 +2242,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -2479,7 +2397,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" @@ -2579,7 +2497,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -2634,7 +2552,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -2656,7 +2575,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -2892,7 +2811,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -2908,7 +2826,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -2929,7 +2847,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -2960,31 +2878,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -3021,7 +2929,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -3076,7 +2984,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -3098,7 +3007,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -3177,7 +3086,7 @@ "kafka": { "schemaRegistryUrl": "https://my-schema-registry.com", "schemaRegistryVendor": "confluent", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -3204,8 +3113,9 @@ "redis": {}, "sns": {}, "solace": { - "msgVpn": "solace.private.net", - "bindingVersion": "0.3.0" + "clientName": "transactions-broker", + "msgVpn": "ProdVPN", + "bindingVersion": "0.4.0" }, "sqs": {}, "stomp": {}, @@ -3298,7 +3208,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" @@ -3393,7 +3303,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -3409,7 +3318,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -3430,7 +3339,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -3461,31 +3370,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -3537,7 +3436,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -3559,7 +3459,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/channelItem - extended.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/channelItem - extended.json index b63a038c..16eab19f 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/channelItem - extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/channelItem - extended.json @@ -22,6 +22,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -31,8 +32,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -44,104 +44,20 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + "additionalProperties" : false + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -150,116 +66,30 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, "mercure" : { "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -271,32 +101,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -331,6 +150,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -340,8 +160,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -353,104 +172,20 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + "additionalProperties" : false + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -459,116 +194,30 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, "mercure" : { "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -580,32 +229,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -624,311 +262,45 @@ }, { "messageId" : "userSignup", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" }, "applicationInstanceId" : { - "title" : null, - "description" : "Unique identifier for a given instance of the publishing application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Unique identifier for a given instance of the publishing application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "payload" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "user" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/userCreate", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/userCreate" }, "signup" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/signup", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/signup" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "correlationId" : { "description" : "Default Correlation ID", "location" : "$message.header#/correlationId" }, - "schemaFormat" : "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat" : "application/vnd.aai.asyncapi;version=2.6.0", "contentType" : "application/json", "name" : "UserSignup", "title" : "User signup", "summary" : "Action to sign a user up.", "description" : "A longer description", "tags" : [ { - "name" : "user", - "description" : null, - "externalDocs" : null + "name" : "user" }, { - "name" : "signup", - "description" : null, - "externalDocs" : null + "name" : "signup" }, { - "name" : "register", - "description" : null, - "externalDocs" : null + "name" : "register" } ], "externalDocs" : { "description" : "User sign up rules", @@ -936,280 +308,64 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.0.1" + } + } }, "googlepubsub" : { - "orderingKey" : null, - "attributes" : null, + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Content-Type" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "application/json" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "application/json" ] } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myKey" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -1288,6 +444,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -1297,8 +454,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -1310,104 +466,20 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + "additionalProperties" : false + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -1416,116 +488,30 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, "mercure" : { "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -1537,32 +523,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -1597,6 +572,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -1606,8 +582,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -1619,104 +594,20 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + "additionalProperties" : false + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -1725,116 +616,30 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, "mercure" : { "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -1846,32 +651,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -1887,311 +681,45 @@ "message" : { "messageId" : "userSignup", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" }, "applicationInstanceId" : { - "title" : null, - "description" : "Unique identifier for a given instance of the publishing application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Unique identifier for a given instance of the publishing application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "payload" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "user" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/userCreate", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/userCreate" }, "signup" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/signup", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/signup" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "correlationId" : { "description" : "Default Correlation ID", "location" : "$message.header#/correlationId" }, - "schemaFormat" : "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat" : "application/vnd.aai.asyncapi;version=2.6.0", "contentType" : "application/json", "name" : "UserSignup", "title" : "User signup", "summary" : "Action to sign a user up.", "description" : "A longer description", "tags" : [ { - "name" : "user", - "description" : null, - "externalDocs" : null + "name" : "user" }, { - "name" : "signup", - "description" : null, - "externalDocs" : null + "name" : "signup" }, { - "name" : "register", - "description" : null, - "externalDocs" : null + "name" : "register" } ], "externalDocs" : { "description" : "User sign up rules", @@ -2199,280 +727,64 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.0.1" + } + } }, "googlepubsub" : { - "orderingKey" : null, - "attributes" : null, + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Content-Type" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "application/json" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "application/json" ] } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myKey" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -2533,57 +845,14 @@ "userId" : { "description" : "Id of the user.", "schema" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "type" : "string" }, "location" : "$message.payload#/user/id" } }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "is" : "routingKey", "exchange" : { "name" : "myExchange", @@ -2598,36 +867,33 @@ "exclusive" : true, "autoDelete" : false, "vhost" : "/" - }, - "bindingVersion" : "0.2.0" + } }, "amqp1" : { "$ref" : "#/components/channelBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "destination" : "user-signup-exchg", - "destinationType" : "exchange", - "bindingVersion" : "0.0.1" + "destinationType" : "exchange" }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "topic" : "projects/your-project/topics/topic-proto-schema", - "labels" : null, "messageRetentionDuration" : "86400s", "messageStoragePolicy" : { "allowedPersistenceRegions" : [ "us-central1", "us-central2", "us-east1", "us-east4", "us-east5", "us-east7", "us-south1", "us-west1", "us-west2", "us-west3", "us-west4" ] }, "schemaSettings" : { "encoding" : "binary", - "firstRevisionId" : null, - "lastRevisionId" : null, "name" : "projects/your-project/schemas/message-proto" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { "$ref" : "#/components/channelBindings/http" }, "ibmmq" : { + "bindingVersion" : "0.1.0", "destinationType" : "topic", "queue" : { "objectName" : "message", @@ -2640,14 +906,13 @@ "durablePermitted" : true, "lastMsgRetained" : true }, - "maxMsgLength" : 1024, - "bindingVersion" : "0.1.0" + "maxMsgLength" : 1024 }, "jms" : { "$ref" : "#/components/channelBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "topic" : "my-specific-topic-name", "partitions" : 20, "replicas" : 3, @@ -2672,6 +937,7 @@ "$ref" : "#/components/channelBindings/nats" }, "pulsar" : { + "bindingVersion" : "0.1.0", "namespace" : "staging", "persistence" : "persistent", "compaction" : 1000, @@ -2681,8 +947,7 @@ "size" : 1000 }, "ttl" : 360, - "deduplication" : false, - "bindingVersion" : "0.1.0" + "deduplication" : false }, "redis" : { "$ref" : "#/components/channelBindings/redis" @@ -2700,201 +965,28 @@ "$ref" : "#/components/channelBindings/stomp" }, "ws" : { + "bindingVersion" : "0.1.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "ref" : { - "title" : null, - "description" : "Referral.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Referral." } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Authentication" : { - "title" : null, - "description" : "Authentication token", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Authentication token" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + } + } } }, - "$ref" : null, "x-number" : 0, "x-string" : "", "x-object" : { diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/channelItem - wrongly extended.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/channelItem - wrongly extended.json index b0b28043..6048e8fc 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/channelItem - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/channelItem - wrongly extended.json @@ -56,7 +56,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -72,7 +71,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -93,7 +92,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -120,35 +119,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -217,7 +202,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -233,7 +217,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -254,7 +238,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -281,35 +265,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -358,7 +328,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -413,7 +383,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -435,7 +406,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -549,7 +520,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -565,7 +535,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -586,7 +556,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -613,35 +583,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -710,7 +666,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -726,7 +681,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -747,7 +702,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -774,35 +729,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -846,7 +787,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -901,7 +842,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -923,7 +865,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1078,7 +1020,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/channelItem.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/channelItem.json index eb5ac519..5f009d24 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/channelItem.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/channelItem.json @@ -56,7 +56,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -72,7 +71,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -93,7 +92,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -120,35 +119,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -217,7 +202,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -233,7 +217,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -254,7 +238,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -281,35 +265,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -358,7 +328,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -413,7 +383,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -435,7 +406,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -549,7 +520,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -565,7 +535,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -586,7 +556,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -613,35 +583,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -710,7 +666,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -726,7 +681,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -747,7 +702,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -774,35 +729,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -846,7 +787,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -901,7 +842,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -923,7 +865,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1078,7 +1020,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/message - extended.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/message - extended.json index 4d8872fd..4c79ef7c 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/message - extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/message - extended.json @@ -1,311 +1,45 @@ { "messageId" : "userSignup", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" }, "applicationInstanceId" : { - "title" : null, - "description" : "Unique identifier for a given instance of the publishing application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Unique identifier for a given instance of the publishing application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "payload" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "user" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/userCreate", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/userCreate" }, "signup" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/signup", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/signup" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "correlationId" : { "description" : "Default Correlation ID", "location" : "$message.header#/correlationId" }, - "schemaFormat" : "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat" : "application/vnd.aai.asyncapi;version=2.6.0", "contentType" : "application/json", "name" : "UserSignup", "title" : "User signup", "summary" : "Action to sign a user up.", "description" : "A longer description", "tags" : [ { - "name" : "user", - "description" : null, - "externalDocs" : null + "name" : "user" }, { - "name" : "signup", - "description" : null, - "externalDocs" : null + "name" : "signup" }, { - "name" : "register", - "description" : null, - "externalDocs" : null + "name" : "register" } ], "externalDocs" : { "description" : "User sign up rules", @@ -313,280 +47,64 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.0.1" + } + } }, "googlepubsub" : { - "orderingKey" : null, - "attributes" : null, + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Content-Type" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "application/json" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "application/json" ] } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myKey" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/message - wrongly extended.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/message - wrongly extended.json index 7caf1254..a45cbeae 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/message - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/message - wrongly extended.json @@ -28,7 +28,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -83,7 +83,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -105,7 +106,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/message.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/message.json index ce97a10f..2185c960 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/message.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/message.json @@ -28,7 +28,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -83,7 +83,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -105,7 +106,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/messageTrait - extended.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/messageTrait - extended.json index 90e1ddeb..00c91ae8 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/messageTrait - extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/messageTrait - extended.json @@ -1,169 +1,34 @@ { "messageId" : "userSignup", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" }, "applicationInstanceId" : { - "title" : null, - "description" : "Unique identifier for a given instance of the publishing application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Unique identifier for a given instance of the publishing application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "correlationId" : { "description" : "Default Correlation ID", "location" : "$message.header#/correlationId" }, - "schemaFormat" : "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat" : "application/vnd.aai.asyncapi;version=2.6.0", "contentType" : "application/json", "name" : "UserSignup", "title" : "User signup", "summary" : "Action to sign a user up.", "description" : "A longer description", "tags" : [ { - "name" : "user", - "description" : null, - "externalDocs" : null + "name" : "user" }, { - "name" : "signup", - "description" : null, - "externalDocs" : null + "name" : "signup" }, { - "name" : "register", - "description" : null, - "externalDocs" : null + "name" : "register" } ], "externalDocs" : { "description" : "User sign up rules", @@ -171,280 +36,64 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.0.1" + } + } }, "googlepubsub" : { - "orderingKey" : null, - "attributes" : null, + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Content-Type" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "application/json" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "application/json" ] } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myKey" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/messageTrait - wrongly extended.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/messageTrait - wrongly extended.json index 9fdd8bf8..e4a0dfaf 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/messageTrait - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/messageTrait - wrongly extended.json @@ -17,7 +17,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -72,7 +72,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -94,7 +95,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/messageTrait.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/messageTrait.json index 0b188b7a..071aa8ff 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/messageTrait.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/messageTrait.json @@ -17,7 +17,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -72,7 +72,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -94,7 +95,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/messageWithArrayPayloadArrayOfSchemas.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/messageWithArrayPayloadArrayOfSchemas.json index 33dc7425..e52c6d78 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/messageWithArrayPayloadArrayOfSchemas.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/messageWithArrayPayloadArrayOfSchemas.json @@ -4,7 +4,7 @@ "key": { "type": "string" }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" } }, "payload": { diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/messageWithArrayPayloadJsonSchema.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/messageWithArrayPayloadJsonSchema.json index e8c084f3..5aed86ef 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/messageWithArrayPayloadJsonSchema.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/messageWithArrayPayloadJsonSchema.json @@ -4,7 +4,7 @@ "key": { "type": "string" }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" } }, "payload": { diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/oneOfMessages.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/oneOfMessages.json index 435dd64b..4e6f3bcb 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/oneOfMessages.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/message/oneOfMessages.json @@ -33,7 +33,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -88,7 +88,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -110,7 +111,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with message - extended.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with message - extended.json index 6c8ef4d1..07cdaa73 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with message - extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with message - extended.json @@ -19,6 +19,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -28,8 +29,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -41,104 +41,20 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + "additionalProperties" : false + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -147,116 +63,30 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, "mercure" : { "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -268,32 +98,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -328,6 +147,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -337,8 +157,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -350,104 +169,20 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + "additionalProperties" : false + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -456,116 +191,30 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, "mercure" : { "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -577,32 +226,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -618,311 +256,45 @@ "message" : { "messageId" : "userSignup", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" }, "applicationInstanceId" : { - "title" : null, - "description" : "Unique identifier for a given instance of the publishing application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Unique identifier for a given instance of the publishing application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "payload" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "user" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/userCreate", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/userCreate" }, "signup" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/signup", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/signup" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "correlationId" : { "description" : "Default Correlation ID", "location" : "$message.header#/correlationId" }, - "schemaFormat" : "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat" : "application/vnd.aai.asyncapi;version=2.6.0", "contentType" : "application/json", "name" : "UserSignup", "title" : "User signup", "summary" : "Action to sign a user up.", "description" : "A longer description", "tags" : [ { - "name" : "user", - "description" : null, - "externalDocs" : null + "name" : "user" }, { - "name" : "signup", - "description" : null, - "externalDocs" : null + "name" : "signup" }, { - "name" : "register", - "description" : null, - "externalDocs" : null + "name" : "register" } ], "externalDocs" : { "description" : "User sign up rules", @@ -930,280 +302,64 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.0.1" + } + } }, "googlepubsub" : { - "orderingKey" : null, - "attributes" : null, + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Content-Type" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "application/json" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "application/json" ] } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myKey" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with message - wrongly extended.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with message - wrongly extended.json index 9e06c19c..dcb6313b 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with message - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with message - wrongly extended.json @@ -88,7 +88,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -115,35 +115,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -249,7 +235,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -276,35 +262,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -348,7 +320,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -425,7 +397,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with message.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with message.json index 68896895..1f3510d5 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with message.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with message.json @@ -51,7 +51,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -67,7 +66,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -88,7 +87,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -115,35 +114,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -212,7 +197,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -228,7 +212,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -249,7 +233,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -276,35 +260,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -348,7 +318,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -403,7 +373,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -425,7 +396,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with oneOf message - extended.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with oneOf message - extended.json index 3d6bd371..3de27985 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with oneOf message - extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with oneOf message - extended.json @@ -19,6 +19,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -28,8 +29,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -41,104 +41,20 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + "additionalProperties" : false + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -147,116 +63,30 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, "mercure" : { "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -268,32 +98,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -328,6 +147,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -337,8 +157,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -350,104 +169,20 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + "additionalProperties" : false + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -456,116 +191,30 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, "mercure" : { "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -577,32 +226,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -621,311 +259,45 @@ }, { "messageId" : "userSignup", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" }, "applicationInstanceId" : { - "title" : null, - "description" : "Unique identifier for a given instance of the publishing application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Unique identifier for a given instance of the publishing application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "payload" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "user" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/userCreate", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/userCreate" }, "signup" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/signup", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/signup" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "correlationId" : { "description" : "Default Correlation ID", "location" : "$message.header#/correlationId" }, - "schemaFormat" : "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat" : "application/vnd.aai.asyncapi;version=2.6.0", "contentType" : "application/json", "name" : "UserSignup", "title" : "User signup", "summary" : "Action to sign a user up.", "description" : "A longer description", "tags" : [ { - "name" : "user", - "description" : null, - "externalDocs" : null + "name" : "user" }, { - "name" : "signup", - "description" : null, - "externalDocs" : null + "name" : "signup" }, { - "name" : "register", - "description" : null, - "externalDocs" : null + "name" : "register" } ], "externalDocs" : { "description" : "User sign up rules", @@ -933,280 +305,64 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.0.1" + } + } }, "googlepubsub" : { - "orderingKey" : null, - "attributes" : null, + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Content-Type" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "application/json" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "application/json" ] } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myKey" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with oneOf message - wrongly extended.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with oneOf message - wrongly extended.json index 0980fcbc..8b10b59e 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with oneOf message - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with oneOf message - wrongly extended.json @@ -51,7 +51,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -67,7 +66,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -88,7 +87,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -115,35 +114,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -212,7 +197,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -228,7 +212,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -249,7 +233,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -276,35 +260,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -353,7 +323,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -408,7 +378,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -430,7 +401,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with oneOf message.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with oneOf message.json index 18ca41cb..8e1dc9d9 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with oneOf message.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with oneOf message.json @@ -51,7 +51,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -67,7 +66,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -88,7 +87,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -115,35 +114,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -212,7 +197,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -228,7 +212,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -249,7 +233,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -276,35 +260,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -353,7 +323,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -408,7 +378,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -430,7 +401,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with reference to message - extended.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with reference to message - extended.json index 3ba03711..0008d12c 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with reference to message - extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with reference to message - extended.json @@ -19,6 +19,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -28,8 +29,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -41,104 +41,20 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + "additionalProperties" : false + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -147,116 +63,30 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, "mercure" : { "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -268,32 +98,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -328,6 +147,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -337,8 +157,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -350,104 +169,20 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + "additionalProperties" : false + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -456,116 +191,30 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, "mercure" : { "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -577,32 +226,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with reference to message - wrongly extended.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with reference to message - wrongly extended.json index a283b17e..ecc52754 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with reference to message - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with reference to message - wrongly extended.json @@ -51,7 +51,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -67,7 +66,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -88,7 +87,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -115,35 +114,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -212,7 +197,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -228,7 +212,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -249,7 +233,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -276,35 +260,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with reference to message.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with reference to message.json index 56fd6fd1..4c2767d3 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with reference to message.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operation with reference to message.json @@ -51,7 +51,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -67,7 +66,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -88,7 +87,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -115,35 +114,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -212,7 +197,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -228,7 +212,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -249,7 +233,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -276,35 +260,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operationTrait - extended.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operationTrait - extended.json index 2f5df643..d3b61a1f 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operationTrait - extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operationTrait - extended.json @@ -19,6 +19,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -28,8 +29,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -41,104 +41,20 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + "additionalProperties" : false + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -147,116 +63,30 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, "mercure" : { "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -268,32 +98,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operationTrait - wrongly extended.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operationTrait - wrongly extended.json index 068d76a5..1f409d8d 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operationTrait - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operationTrait - wrongly extended.json @@ -51,7 +51,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -67,7 +66,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -88,7 +87,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -115,35 +114,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operationTrait.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operationTrait.json index 2a102376..519b5700 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operationTrait.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/operation/operationTrait.json @@ -51,7 +51,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -67,7 +66,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -88,7 +87,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -115,35 +114,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/parameter with schema - extended.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/parameter with schema - extended.json index 8013bf06..b539a3ca 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/parameter with schema - extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/channel/parameter with schema - extended.json @@ -1,51 +1,7 @@ { "description" : "Id of the user.", "schema" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "type" : "string" }, "location" : "$message.payload#/user/id", "x-number" : 0, diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/components/components - extended.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/components/components - extended.json index 7477382f..557a5a74 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/components/components - extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/components/components - extended.json @@ -1,288 +1,28 @@ { "schemas" : { "Category" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "id" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "integer", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : "int64", - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "format" : "int64" }, "name" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "type" : "string" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "Tag" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "id" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "integer", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : "int64", - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "format" : "int64" }, "name" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "type" : "string" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "User" : { "$ref" : "#/components/schemas/user" @@ -297,13 +37,9 @@ "variables" : { "username" : { "description" : "This value is assigned by the service provider, in this example `gigantic-server.com`", - "examples" : null, - "enum" : null, "default" : "demo" }, "port" : { - "description" : null, - "examples" : null, "enum" : [ "8883", "8884" ], "default" : "8883" }, @@ -316,33 +52,46 @@ } ], "tags" : [ { "name" : "env:staging", - "description" : "This environment is a replica of the production environment", - "externalDocs" : null + "description" : "This environment is a replica of the production environment" } ], "bindings" : { "amqp" : { "$ref" : "#/components/serverBindings/amqp" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, - "http" : { }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { + "bindingVersion" : "0.2.0" + }, + "http" : { + "bindingVersion" : "0.3.0" + }, "ibmmq" : { + "bindingVersion" : "0.1.0", "groupId" : "PRODCLSTR1", "ccdtQueueManagerName" : "*", "cipherSpec" : "ANY_TLS12_OR_HIGHER", "multiEndpointServer" : false, - "heartBeatInterval" : 300, - "bindingVersion" : "0.1.0" + "heartBeatInterval" : 300 + }, + "jms" : { + "bindingVersion" : "0.0.1", + "jmsConnectionFactory" : "" }, - "jms" : { }, "kafka" : { + "bindingVersion" : "0.5.0", "schemaRegistryUrl" : "https://my-schema-registry.com", - "schemaRegistryVendor" : "confluent", - "bindingVersion" : "0.4.0" + "schemaRegistryVendor" : "confluent" + }, + "mercure" : { + "bindingVersion" : "0.1.0" }, - "mercure" : { }, "mqtt" : { + "bindingVersion" : "0.1.0", "clientId" : "guest", "cleanSession" : true, "lastWill" : { @@ -351,27 +100,39 @@ "message" : "Guest gone offline.", "retain" : false }, - "keepAlive" : 60, - "bindingVersion" : "0.1.0" + "keepAlive" : 60 }, "mqtt5" : { "sessionExpiryInterval" : 60, "bindingVersion" : "0.2.0" }, - "nats" : { }, + "nats" : { + "bindingVersion" : "0.1.0" + }, "pulsar" : { - "tenant" : "contoso", + "bindingVersion" : "0.1.0", + "tenant" : "contoso" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { "bindingVersion" : "0.1.0" }, - "redis" : { }, - "sns" : { }, "solace" : { - "msgVpn" : "solace.private.net", - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.4.0", + "msgVpn" : "ProdVPN", + "clientName" : "transactions-broker" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "sqs" : { + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" + }, + "ws" : { + "bindingVersion" : "0.1.0" + } } }, "mqtt-stage" : { @@ -414,6 +175,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -423,8 +185,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -436,104 +197,20 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + "additionalProperties" : false + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -542,116 +219,30 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, "mercure" : { "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -663,32 +254,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -723,6 +303,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -732,8 +313,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -745,104 +325,20 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + "additionalProperties" : false + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -851,116 +347,30 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, "mercure" : { "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -972,32 +382,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -1016,311 +415,45 @@ }, { "messageId" : "userSignup", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" }, "applicationInstanceId" : { - "title" : null, - "description" : "Unique identifier for a given instance of the publishing application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Unique identifier for a given instance of the publishing application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "payload" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "user" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/userCreate", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/userCreate" }, "signup" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/signup", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/signup" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "correlationId" : { "description" : "Default Correlation ID", "location" : "$message.header#/correlationId" }, - "schemaFormat" : "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat" : "application/vnd.aai.asyncapi;version=2.6.0", "contentType" : "application/json", "name" : "UserSignup", "title" : "User signup", "summary" : "Action to sign a user up.", "description" : "A longer description", "tags" : [ { - "name" : "user", - "description" : null, - "externalDocs" : null + "name" : "user" }, { - "name" : "signup", - "description" : null, - "externalDocs" : null + "name" : "signup" }, { - "name" : "register", - "description" : null, - "externalDocs" : null + "name" : "register" } ], "externalDocs" : { "description" : "User sign up rules", @@ -1328,280 +461,64 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.0.1" + } + } }, "googlepubsub" : { - "orderingKey" : null, - "attributes" : null, + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Content-Type" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "application/json" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "application/json" ] } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myKey" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -1680,6 +597,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -1689,8 +607,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -1702,104 +619,20 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + "additionalProperties" : false + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -1808,116 +641,30 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, "mercure" : { "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -1929,32 +676,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -1989,6 +725,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -1998,8 +735,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -2011,104 +747,20 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + "additionalProperties" : false + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -2117,116 +769,30 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, "mercure" : { "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -2238,32 +804,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -2279,311 +834,45 @@ "message" : { "messageId" : "userSignup", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" }, "applicationInstanceId" : { - "title" : null, - "description" : "Unique identifier for a given instance of the publishing application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Unique identifier for a given instance of the publishing application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "payload" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "user" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/userCreate", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/userCreate" }, "signup" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/signup", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/signup" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "correlationId" : { "description" : "Default Correlation ID", "location" : "$message.header#/correlationId" }, - "schemaFormat" : "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat" : "application/vnd.aai.asyncapi;version=2.6.0", "contentType" : "application/json", "name" : "UserSignup", "title" : "User signup", "summary" : "Action to sign a user up.", "description" : "A longer description", "tags" : [ { - "name" : "user", - "description" : null, - "externalDocs" : null + "name" : "user" }, { - "name" : "signup", - "description" : null, - "externalDocs" : null + "name" : "signup" }, { - "name" : "register", - "description" : null, - "externalDocs" : null + "name" : "register" } ], "externalDocs" : { "description" : "User sign up rules", @@ -2591,280 +880,64 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.0.1" + } + } }, "googlepubsub" : { - "orderingKey" : null, - "attributes" : null, + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Content-Type" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "application/json" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "application/json" ] } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myKey" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -2925,57 +998,14 @@ "userId" : { "description" : "Id of the user.", "schema" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "type" : "string" }, "location" : "$message.payload#/user/id" } }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "is" : "routingKey", "exchange" : { "name" : "myExchange", @@ -2990,36 +1020,33 @@ "exclusive" : true, "autoDelete" : false, "vhost" : "/" - }, - "bindingVersion" : "0.2.0" + } }, "amqp1" : { "$ref" : "#/components/channelBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "destination" : "user-signup-exchg", - "destinationType" : "exchange", - "bindingVersion" : "0.0.1" + "destinationType" : "exchange" }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "topic" : "projects/your-project/topics/topic-proto-schema", - "labels" : null, "messageRetentionDuration" : "86400s", "messageStoragePolicy" : { "allowedPersistenceRegions" : [ "us-central1", "us-central2", "us-east1", "us-east4", "us-east5", "us-east7", "us-south1", "us-west1", "us-west2", "us-west3", "us-west4" ] }, "schemaSettings" : { "encoding" : "binary", - "firstRevisionId" : null, - "lastRevisionId" : null, "name" : "projects/your-project/schemas/message-proto" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { "$ref" : "#/components/channelBindings/http" }, "ibmmq" : { + "bindingVersion" : "0.1.0", "destinationType" : "topic", "queue" : { "objectName" : "message", @@ -3032,14 +1059,13 @@ "durablePermitted" : true, "lastMsgRetained" : true }, - "maxMsgLength" : 1024, - "bindingVersion" : "0.1.0" + "maxMsgLength" : 1024 }, "jms" : { "$ref" : "#/components/channelBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "topic" : "my-specific-topic-name", "partitions" : 20, "replicas" : 3, @@ -3064,6 +1090,7 @@ "$ref" : "#/components/channelBindings/nats" }, "pulsar" : { + "bindingVersion" : "0.1.0", "namespace" : "staging", "persistence" : "persistent", "compaction" : 1000, @@ -3073,8 +1100,7 @@ "size" : 1000 }, "ttl" : 360, - "deduplication" : false, - "bindingVersion" : "0.1.0" + "deduplication" : false }, "redis" : { "$ref" : "#/components/channelBindings/redis" @@ -3092,512 +1118,73 @@ "$ref" : "#/components/channelBindings/stomp" }, "ws" : { + "bindingVersion" : "0.1.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "ref" : { - "title" : null, - "description" : "Referral.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Referral." } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Authentication" : { - "title" : null, - "description" : "Authentication token", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Authentication token" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + } + } } - }, - "$ref" : null + } } }, "messages" : { "userSignup" : { "messageId" : "userSignup", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" }, "applicationInstanceId" : { - "title" : null, - "description" : "Unique identifier for a given instance of the publishing application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Unique identifier for a given instance of the publishing application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "payload" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "user" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/userCreate", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/userCreate" }, "signup" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : null, - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : "#/components/schemas/signup", - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "$ref" : "#/components/schemas/signup" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "correlationId" : { "description" : "Default Correlation ID", "location" : "$message.header#/correlationId" }, - "schemaFormat" : "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat" : "application/vnd.aai.asyncapi;version=2.6.0", "contentType" : "application/json", "name" : "UserSignup", "title" : "User signup", "summary" : "Action to sign a user up.", "description" : "A longer description", "tags" : [ { - "name" : "user", - "description" : null, - "externalDocs" : null + "name" : "user" }, { - "name" : "signup", - "description" : null, - "externalDocs" : null + "name" : "signup" }, { - "name" : "register", - "description" : null, - "externalDocs" : null + "name" : "register" } ], "externalDocs" : { "description" : "User sign up rules", @@ -3605,280 +1192,64 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.0.1" + } + } }, "googlepubsub" : { - "orderingKey" : null, - "attributes" : null, + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Content-Type" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "application/json" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "application/json" ] } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myKey" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -4003,8 +1374,7 @@ "httpBasic" : { "type" : "http", "description" : "http", - "scheme" : "basic", - "bearerFormat" : null + "scheme" : "basic" }, "httpBearer" : { "type" : "http", @@ -4035,51 +1405,7 @@ "parameterWithSchema" : { "description" : "Id of the user.", "schema" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "type" : "string" }, "location" : "$message.payload#/user/id" }, @@ -4125,6 +1451,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -4134,8 +1461,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -4147,104 +1473,20 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + "additionalProperties" : false + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -4253,116 +1495,30 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, "mercure" : { "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -4374,32 +1530,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -4420,169 +1565,34 @@ "userSignup" : { "messageId" : "userSignup", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" }, "applicationInstanceId" : { - "title" : null, - "description" : "Unique identifier for a given instance of the publishing application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Unique identifier for a given instance of the publishing application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "correlationId" : { "description" : "Default Correlation ID", "location" : "$message.header#/correlationId" }, - "schemaFormat" : "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat" : "application/vnd.aai.asyncapi;version=2.6.0", "contentType" : "application/json", "name" : "UserSignup", "title" : "User signup", "summary" : "Action to sign a user up.", "description" : "A longer description", "tags" : [ { - "name" : "user", - "description" : null, - "externalDocs" : null + "name" : "user" }, { - "name" : "signup", - "description" : null, - "externalDocs" : null + "name" : "signup" }, { - "name" : "register", - "description" : null, - "externalDocs" : null + "name" : "register" } ], "externalDocs" : { "description" : "User sign up rules", @@ -4590,280 +1600,64 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.0.1" + } + } }, "googlepubsub" : { - "orderingKey" : null, - "attributes" : null, + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Content-Type" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "application/json" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "application/json" ] } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myKey" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -4924,26 +1718,40 @@ "amqp" : { "$ref" : "#/components/serverBindings/amqp" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, - "http" : { }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { + "bindingVersion" : "0.2.0" + }, + "http" : { + "bindingVersion" : "0.3.0" + }, "ibmmq" : { + "bindingVersion" : "0.1.0", "groupId" : "PRODCLSTR1", "ccdtQueueManagerName" : "*", "cipherSpec" : "ANY_TLS12_OR_HIGHER", "multiEndpointServer" : false, - "heartBeatInterval" : 300, - "bindingVersion" : "0.1.0" + "heartBeatInterval" : 300 + }, + "jms" : { + "bindingVersion" : "0.0.1", + "jmsConnectionFactory" : "" }, - "jms" : { }, "kafka" : { + "bindingVersion" : "0.5.0", "schemaRegistryUrl" : "https://my-schema-registry.com", - "schemaRegistryVendor" : "confluent", - "bindingVersion" : "0.4.0" + "schemaRegistryVendor" : "confluent" + }, + "mercure" : { + "bindingVersion" : "0.1.0" }, - "mercure" : { }, "mqtt" : { + "bindingVersion" : "0.1.0", "clientId" : "guest", "cleanSession" : true, "lastWill" : { @@ -4952,30 +1760,43 @@ "message" : "Guest gone offline.", "retain" : false }, - "keepAlive" : 60, - "bindingVersion" : "0.1.0" + "keepAlive" : 60 }, "mqtt5" : { "sessionExpiryInterval" : 60, "bindingVersion" : "0.2.0" }, - "nats" : { }, + "nats" : { + "bindingVersion" : "0.1.0" + }, "pulsar" : { - "tenant" : "contoso", + "bindingVersion" : "0.1.0", + "tenant" : "contoso" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { "bindingVersion" : "0.1.0" }, - "redis" : { }, - "sns" : { }, "solace" : { - "msgVpn" : "solace.private.net", - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.4.0", + "msgVpn" : "ProdVPN", + "clientName" : "transactions-broker" + }, + "sqs" : { + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "ws" : { + "bindingVersion" : "0.1.0" + } }, "channelBindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "is" : "routingKey", "exchange" : { "name" : "myExchange", @@ -4990,36 +1811,33 @@ "exclusive" : true, "autoDelete" : false, "vhost" : "/" - }, - "bindingVersion" : "0.2.0" + } }, "amqp1" : { "$ref" : "#/components/channelBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "destination" : "user-signup-exchg", - "destinationType" : "exchange", - "bindingVersion" : "0.0.1" + "destinationType" : "exchange" }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "topic" : "projects/your-project/topics/topic-proto-schema", - "labels" : null, "messageRetentionDuration" : "86400s", "messageStoragePolicy" : { "allowedPersistenceRegions" : [ "us-central1", "us-central2", "us-east1", "us-east4", "us-east5", "us-east7", "us-south1", "us-west1", "us-west2", "us-west3", "us-west4" ] }, "schemaSettings" : { "encoding" : "binary", - "firstRevisionId" : null, - "lastRevisionId" : null, "name" : "projects/your-project/schemas/message-proto" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { "$ref" : "#/components/channelBindings/http" }, "ibmmq" : { + "bindingVersion" : "0.1.0", "destinationType" : "topic", "queue" : { "objectName" : "message", @@ -5032,14 +1850,13 @@ "durablePermitted" : true, "lastMsgRetained" : true }, - "maxMsgLength" : 1024, - "bindingVersion" : "0.1.0" + "maxMsgLength" : 1024 }, "jms" : { "$ref" : "#/components/channelBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "topic" : "my-specific-topic-name", "partitions" : 20, "replicas" : 3, @@ -5064,6 +1881,7 @@ "$ref" : "#/components/channelBindings/nats" }, "pulsar" : { + "bindingVersion" : "0.1.0", "namespace" : "staging", "persistence" : "persistent", "compaction" : 1000, @@ -5073,8 +1891,7 @@ "size" : 1000 }, "ttl" : 360, - "deduplication" : false, - "bindingVersion" : "0.1.0" + "deduplication" : false }, "redis" : { "$ref" : "#/components/channelBindings/redis" @@ -5092,202 +1909,31 @@ "$ref" : "#/components/channelBindings/stomp" }, "ws" : { + "bindingVersion" : "0.1.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "ref" : { - "title" : null, - "description" : "Referral.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Referral." } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Authentication" : { - "title" : null, - "description" : "Authentication token", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Authentication token" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + } + } } }, "operationBindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -5297,8 +1943,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -5310,104 +1955,20 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, "required" : [ "companyId" ], "properties" : { "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "The Id of the company." } }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0" + "additionalProperties" : false + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -5416,116 +1977,30 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myGroupId" ] }, "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myClientId" ] } }, "mercure" : { "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -5537,32 +2012,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" + } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -5576,280 +2040,64 @@ }, "messageBindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + "description" : "Correlation ID set by application" } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.0.1" + } + } }, "googlepubsub" : { - "orderingKey" : null, - "attributes" : null, + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, "properties" : { "Content-Type" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "application/json" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "application/json" ] } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null + } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myKey" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null + "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/components/components - wrongly extended.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/components/components - wrongly extended.json index daed3183..9a9eb212 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/components/components - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/components/components - wrongly extended.json @@ -81,7 +81,7 @@ "kafka": { "schemaRegistryUrl": "https://my-schema-registry.com", "schemaRegistryVendor": "confluent", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -108,8 +108,9 @@ "redis": {}, "sns": {}, "solace": { - "msgVpn": "solace.private.net", - "bindingVersion": "0.3.0" + "bindingVersion" : "0.4.0", + "msgVpn" : "ProdVPN", + "clientName" : "transactions-broker" }, "sqs": {}, "stomp": {}, @@ -233,7 +234,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -260,35 +261,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -394,7 +381,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -421,35 +408,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -498,7 +471,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -575,7 +548,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -726,7 +699,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -753,35 +726,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -887,7 +846,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -914,35 +873,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -986,7 +931,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -1063,7 +1008,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1218,7 +1163,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" @@ -1318,7 +1263,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -1395,7 +1340,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1668,7 +1613,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -1695,35 +1640,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -1760,7 +1691,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -1837,7 +1768,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1916,7 +1847,7 @@ "kafka": { "schemaRegistryUrl": "https://my-schema-registry.com", "schemaRegistryVendor": "confluent", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -1943,8 +1874,9 @@ "redis": {}, "sns": {}, "solace": { - "msgVpn": "solace.private.net", - "bindingVersion": "0.3.0" + "bindingVersion" : "0.4.0", + "msgVpn" : "ProdVPN", + "clientName" : "transactions-broker" }, "sqs": {}, "stomp": {}, @@ -2037,7 +1969,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" @@ -2169,7 +2101,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -2196,35 +2128,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -2298,7 +2216,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/components/components.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/components/components.json index fb628bf6..c1bb82c3 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/components/components.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/components/components.json @@ -81,7 +81,7 @@ "kafka": { "schemaRegistryUrl": "https://my-schema-registry.com", "schemaRegistryVendor": "confluent", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -108,8 +108,9 @@ "redis": {}, "sns": {}, "solace": { - "msgVpn": "solace.private.net", - "bindingVersion": "0.3.0" + "bindingVersion" : "0.4.0", + "msgVpn" : "ProdVPN", + "clientName" : "transactions-broker" }, "sqs": {}, "stomp": {}, @@ -196,7 +197,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -212,7 +212,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -233,7 +233,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -260,35 +260,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -357,7 +343,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -373,7 +358,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -394,7 +379,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -421,35 +406,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -498,7 +469,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -553,7 +524,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -575,7 +547,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -689,7 +661,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -705,7 +676,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -726,7 +697,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -753,35 +724,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -850,7 +807,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -866,7 +822,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -887,7 +843,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -914,35 +870,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -986,7 +928,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -1041,7 +983,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1063,7 +1006,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1218,7 +1161,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" @@ -1318,7 +1261,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -1373,7 +1316,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1395,7 +1339,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1631,7 +1575,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -1647,7 +1590,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -1668,7 +1611,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -1695,35 +1638,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -1760,7 +1689,7 @@ "description": "Default Correlation ID", "location": "$message.header#/correlationId" }, - "schemaFormat": "application/vnd.apache.avro+json;version=1.9.0", + "schemaFormat": "application/vnd.aai.asyncapi;version=2.6.0", "contentType": "application/json", "name": "UserSignup", "title": "User signup", @@ -1815,7 +1744,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1837,7 +1767,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1916,7 +1846,7 @@ "kafka": { "schemaRegistryUrl": "https://my-schema-registry.com", "schemaRegistryVendor": "confluent", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -1943,8 +1873,9 @@ "redis": {}, "sns": {}, "solace": { - "msgVpn": "solace.private.net", - "bindingVersion": "0.3.0" + "bindingVersion" : "0.4.0", + "msgVpn" : "ProdVPN", + "clientName" : "transactions-broker" }, "sqs": {}, "stomp": {}, @@ -2037,7 +1968,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" @@ -2132,7 +2063,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -2148,7 +2078,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -2169,7 +2099,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -2196,35 +2126,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -2276,7 +2192,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -2298,7 +2215,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/server/server - extended.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/server/server - extended.json index d6988852..a2b83b7f 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/server/server - extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/server/server - extended.json @@ -6,13 +6,9 @@ "variables" : { "username" : { "description" : "This value is assigned by the service provider, in this example `gigantic-server.com`", - "examples" : null, - "enum" : null, "default" : "demo" }, "port" : { - "description" : null, - "examples" : null, "enum" : [ "8883", "8884" ], "default" : "8883" }, @@ -25,33 +21,46 @@ } ], "tags" : [ { "name" : "env:staging", - "description" : "This environment is a replica of the production environment", - "externalDocs" : null + "description" : "This environment is a replica of the production environment" } ], "bindings" : { "amqp" : { "$ref" : "#/components/serverBindings/amqp" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, - "http" : { }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { + "bindingVersion" : "0.2.0" + }, + "http" : { + "bindingVersion" : "0.3.0" + }, "ibmmq" : { + "bindingVersion" : "0.1.0", "groupId" : "PRODCLSTR1", "ccdtQueueManagerName" : "*", "cipherSpec" : "ANY_TLS12_OR_HIGHER", "multiEndpointServer" : false, - "heartBeatInterval" : 300, - "bindingVersion" : "0.1.0" + "heartBeatInterval" : 300 + }, + "jms" : { + "bindingVersion" : "0.0.1", + "jmsConnectionFactory" : "" }, - "jms" : { }, "kafka" : { + "bindingVersion" : "0.5.0", "schemaRegistryUrl" : "https://my-schema-registry.com", - "schemaRegistryVendor" : "confluent", - "bindingVersion" : "0.4.0" + "schemaRegistryVendor" : "confluent" + }, + "mercure" : { + "bindingVersion" : "0.1.0" }, - "mercure" : { }, "mqtt" : { + "bindingVersion" : "0.1.0", "clientId" : "guest", "cleanSession" : true, "lastWill" : { @@ -60,27 +69,39 @@ "message" : "Guest gone offline.", "retain" : false }, - "keepAlive" : 60, - "bindingVersion" : "0.1.0" + "keepAlive" : 60 }, "mqtt5" : { "sessionExpiryInterval" : 60, "bindingVersion" : "0.2.0" }, - "nats" : { }, + "nats" : { + "bindingVersion" : "0.1.0" + }, "pulsar" : { - "tenant" : "contoso", + "bindingVersion" : "0.1.0", + "tenant" : "contoso" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { "bindingVersion" : "0.1.0" }, - "redis" : { }, - "sns" : { }, "solace" : { - "msgVpn" : "solace.private.net", - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.4.0", + "msgVpn" : "ProdVPN", + "clientName" : "transactions-broker" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "sqs" : { + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" + }, + "ws" : { + "bindingVersion" : "0.1.0" + } }, "x-number" : 0, "x-string" : "", diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/server/server - wrongly extended.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/server/server - wrongly extended.json index a27abfe8..ec5079c5 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/server/server - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/server/server - wrongly extended.json @@ -50,7 +50,7 @@ "kafka": { "schemaRegistryUrl": "https://my-schema-registry.com", "schemaRegistryVendor": "confluent", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { diff --git a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/server/server.json b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/server/server.json index c924cdbc..4f34e900 100644 --- a/asyncapi-core/src/test/resources/json/v2/2.6.0/model/server/server.json +++ b/asyncapi-core/src/test/resources/json/v2/2.6.0/model/server/server.json @@ -50,7 +50,7 @@ "kafka": { "schemaRegistryUrl": "https://my-schema-registry.com", "schemaRegistryVendor": "confluent", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -77,8 +77,9 @@ "redis": {}, "sns": {}, "solace": { - "msgVpn": "solace.private.net", - "bindingVersion": "0.3.0" + "clientName": "transactions-broker", + "msgVpn": "ProdVPN", + "bindingVersion": "0.4.0" }, "sqs": {}, "stomp": {}, diff --git a/asyncapi-core/src/test/resources/json/v2/binding/channel/amqp/amqpChannelBinding - extended.json b/asyncapi-core/src/test/resources/json/v2/binding/channel/amqp/amqpChannelBinding - extended.json deleted file mode 100644 index 61ef0ad3..00000000 --- a/asyncapi-core/src/test/resources/json/v2/binding/channel/amqp/amqpChannelBinding - extended.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "is" : "routingKey", - "exchange" : { - "name" : "myExchange", - "type" : "topic", - "durable" : true, - "autoDelete" : false, - "vhost" : "/" - }, - "queue" : { - "name" : "my-queue-name", - "durable" : true, - "exclusive" : true, - "autoDelete" : false, - "vhost" : "/" - }, - "bindingVersion" : "0.2.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/channel/anypoint/anypointMQChannelBinding - extended.json b/asyncapi-core/src/test/resources/json/v2/binding/channel/anypoint/anypointMQChannelBinding - extended.json deleted file mode 100644 index 4a27096c..00000000 --- a/asyncapi-core/src/test/resources/json/v2/binding/channel/anypoint/anypointMQChannelBinding - extended.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "destination" : "user-signup-exchg", - "destinationType" : "exchange", - "bindingVersion" : "0.0.1", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/channel/googlepubsub/googlePubSubChannelBinding - extended.json b/asyncapi-core/src/test/resources/json/v2/binding/channel/googlepubsub/googlePubSubChannelBinding - extended.json deleted file mode 100644 index 560f8293..00000000 --- a/asyncapi-core/src/test/resources/json/v2/binding/channel/googlepubsub/googlePubSubChannelBinding - extended.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "topic" : "projects/your-project/topics/topic-proto-schema", - "labels" : null, - "messageRetentionDuration" : "86400s", - "messageStoragePolicy" : { - "allowedPersistenceRegions" : [ "us-central1", "us-central2", "us-east1", "us-east4", "us-east5", "us-east7", "us-south1", "us-west1", "us-west2", "us-west3", "us-west4" ] - }, - "schemaSettings" : { - "encoding" : "binary", - "firstRevisionId" : null, - "lastRevisionId" : null, - "name" : "projects/your-project/schemas/message-proto" - }, - "bindingVersion" : "0.1.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/channel/ibmmq/ibmMQChannelBinding - extended.json b/asyncapi-core/src/test/resources/json/v2/binding/channel/ibmmq/ibmMQChannelBinding - extended.json deleted file mode 100644 index a0f4e987..00000000 --- a/asyncapi-core/src/test/resources/json/v2/binding/channel/ibmmq/ibmMQChannelBinding - extended.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "destinationType" : "topic", - "queue" : { - "objectName" : "message", - "isPartitioned" : false, - "exclusive" : true - }, - "topic" : { - "string" : "messages", - "objectName" : "message", - "durablePermitted" : true, - "lastMsgRetained" : true - }, - "maxMsgLength" : 1024, - "bindingVersion" : "0.1.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/channel/pulsar/pulsarChannelBinding - extended.json b/asyncapi-core/src/test/resources/json/v2/binding/channel/pulsar/pulsarChannelBinding - extended.json deleted file mode 100644 index 17b32f84..00000000 --- a/asyncapi-core/src/test/resources/json/v2/binding/channel/pulsar/pulsarChannelBinding - extended.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "namespace" : "staging", - "persistence" : "persistent", - "compaction" : 1000, - "geo-replication" : [ "us-east1", "us-west1" ], - "retention" : { - "time" : 7, - "size" : 1000 - }, - "ttl" : 360, - "deduplication" : false, - "bindingVersion" : "0.1.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/channel/ws/webSocketsChannelBinding - extended.json b/asyncapi-core/src/test/resources/json/v2/binding/channel/ws/webSocketsChannelBinding - extended.json deleted file mode 100644 index 022ca87a..00000000 --- a/asyncapi-core/src/test/resources/json/v2/binding/channel/ws/webSocketsChannelBinding - extended.json +++ /dev/null @@ -1,199 +0,0 @@ -{ - "method" : "GET", - "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : { - "ref" : { - "title" : null, - "description" : "Referral.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : { - "Authentication" : { - "title" : null, - "description" : "Authentication token", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/message/amqp/amqpMessageBinding - extended.json b/asyncapi-core/src/test/resources/json/v2/binding/message/amqp/amqpMessageBinding - extended.json deleted file mode 100644 index 98d5ef64..00000000 --- a/asyncapi-core/src/test/resources/json/v2/binding/message/amqp/amqpMessageBinding - extended.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/message/anypointmq/anypointMQMessageBinding - extended.json b/asyncapi-core/src/test/resources/json/v2/binding/message/anypointmq/anypointMQMessageBinding - extended.json deleted file mode 100644 index 32f0633d..00000000 --- a/asyncapi-core/src/test/resources/json/v2/binding/message/anypointmq/anypointMQMessageBinding - extended.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : { - "correlationId" : { - "title" : null, - "description" : "Correlation ID set by application", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.0.1", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/message/googlepubsub/googlePubSubMessageBinding - extended.json b/asyncapi-core/src/test/resources/json/v2/binding/message/googlepubsub/googlePubSubMessageBinding - extended.json deleted file mode 100644 index ba8ea89d..00000000 --- a/asyncapi-core/src/test/resources/json/v2/binding/message/googlepubsub/googlePubSubMessageBinding - extended.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "orderingKey" : null, - "attributes" : null, - "schema" : { - "name" : "projects/your-project/schemas/message-avro", - "type" : "avro" - }, - "bindingVersion" : "0.1.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/message/http/httpMessageBinding - extended.json b/asyncapi-core/src/test/resources/json/v2/binding/message/http/httpMessageBinding - extended.json deleted file mode 100644 index 506a4b29..00000000 --- a/asyncapi-core/src/test/resources/json/v2/binding/message/http/httpMessageBinding - extended.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "headers" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : { - "Content-Type" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "application/json" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null - } - }, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/message/ibmmq/ibmMQMessageBinding - extended.json b/asyncapi-core/src/test/resources/json/v2/binding/message/ibmmq/ibmMQMessageBinding - extended.json deleted file mode 100644 index bf14dfb0..00000000 --- a/asyncapi-core/src/test/resources/json/v2/binding/message/ibmmq/ibmMQMessageBinding - extended.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type" : "jms", - "headers" : "Content-Type: application/json", - "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/message/kafka/kafkaMessageBinding - extended.json b/asyncapi-core/src/test/resources/json/v2/binding/message/kafka/kafkaMessageBinding - extended.json deleted file mode 100644 index 8a8f68ce..00000000 --- a/asyncapi-core/src/test/resources/json/v2/binding/message/kafka/kafkaMessageBinding - extended.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "key" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myKey" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "schemaIdLocation" : "payload", - "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/operation/amqp/amqpOperationBinding - extended.json b/asyncapi-core/src/test/resources/json/v2/binding/operation/amqp/amqpOperationBinding - extended.json deleted file mode 100644 index a19a9822..00000000 --- a/asyncapi-core/src/test/resources/json/v2/binding/operation/amqp/amqpOperationBinding - extended.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "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", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/operation/http/httpOperationBinding - extended.json b/asyncapi-core/src/test/resources/json/v2/binding/operation/http/httpOperationBinding - extended.json deleted file mode 100644 index d114cb25..00000000 --- a/asyncapi-core/src/test/resources/json/v2/binding/operation/http/httpOperationBinding - extended.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "type" : "request", - "method" : "GET", - "query" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "object", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : [ "companyId" ], - "properties" : { - "companyId" : { - "title" : null, - "description" : "The Id of the company.", - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "number", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : 1, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - } - }, - "patternProperties" : null, - "additionalProperties" : false, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : null, - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "bindingVersion" : "0.1.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/operation/kafka/kafkaOperationBinding - extended.json b/asyncapi-core/src/test/resources/json/v2/binding/operation/kafka/kafkaOperationBinding - extended.json deleted file mode 100644 index 9dbacd7c..00000000 --- a/asyncapi-core/src/test/resources/json/v2/binding/operation/kafka/kafkaOperationBinding - extended.json +++ /dev/null @@ -1,102 +0,0 @@ -{ - "bindingVersion" : "0.4.0", - "groupId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myGroupId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "clientId" : { - "title" : null, - "description" : null, - "readOnly" : null, - "writeOnly" : null, - "examples" : null, - "contentEncoding" : null, - "contentMediaType" : null, - "type" : "string", - "multipleOf" : null, - "maximum" : null, - "exclusiveMaximum" : null, - "minimum" : null, - "exclusiveMinimum" : null, - "maxLength" : null, - "minLength" : null, - "pattern" : null, - "items" : null, - "additionalItems" : null, - "maxItems" : null, - "minItems" : null, - "uniqueItems" : null, - "contains" : null, - "maxProperties" : null, - "minProperties" : null, - "required" : null, - "properties" : null, - "patternProperties" : null, - "additionalProperties" : null, - "dependencies" : null, - "propertyNames" : null, - "allOf" : null, - "anyOf" : null, - "oneOf" : null, - "not" : null, - "format" : null, - "discriminator" : null, - "externalDocs" : null, - "deprecated" : null, - "default" : null, - "$ref" : null, - "enum" : [ "myClientId" ], - "const" : null, - "if" : null, - "then" : null, - "else" : null - }, - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/operation/mqtt/mqttOperationBinding - extended.json b/asyncapi-core/src/test/resources/json/v2/binding/operation/mqtt/mqttOperationBinding - extended.json deleted file mode 100644 index 987a9860..00000000 --- a/asyncapi-core/src/test/resources/json/v2/binding/operation/mqtt/mqttOperationBinding - extended.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/operation/nats/natsOperationBinding - extended.json b/asyncapi-core/src/test/resources/json/v2/binding/operation/nats/natsOperationBinding - extended.json deleted file mode 100644 index 2a77c3b3..00000000 --- a/asyncapi-core/src/test/resources/json/v2/binding/operation/nats/natsOperationBinding - extended.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "queue" : "messages", - "bindingVersion" : "0.1.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/operation/solace/solaceOperationBinding - extended.json b/asyncapi-core/src/test/resources/json/v2/binding/operation/solace/solaceOperationBinding - extended.json deleted file mode 100644 index e8a8ed88..00000000 --- a/asyncapi-core/src/test/resources/json/v2/binding/operation/solace/solaceOperationBinding - extended.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "destinations" : [ { - "destinationType" : "queue", - "deliveryMode" : "persistent", - "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - }, - "topic" : null - }, { - "destinationType" : "queue", - "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ], - "accessType" : null, - "maxMsgSpoolSize" : null, - "maxTtl" : null - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/operation/solace/solaceOperationBinding - wrongly extended.json b/asyncapi-core/src/test/resources/json/v2/binding/operation/solace/solaceOperationBinding - wrongly extended.json deleted file mode 100644 index ef371f24..00000000 --- a/asyncapi-core/src/test/resources/json/v2/binding/operation/solace/solaceOperationBinding - wrongly extended.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } - } - ], - "bindingVersion": "0.3.0", - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - }, - "ext-number": 1 -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/operation/solace/solaceOperationBinding.json b/asyncapi-core/src/test/resources/json/v2/binding/operation/solace/solaceOperationBinding.json deleted file mode 100644 index e5b10158..00000000 --- a/asyncapi-core/src/test/resources/json/v2/binding/operation/solace/solaceOperationBinding.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } - } - ], - "bindingVersion": "0.3.0" -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/server/ibmmq/ibmmqServerBinding - extended.json b/asyncapi-core/src/test/resources/json/v2/binding/server/ibmmq/ibmmqServerBinding - extended.json deleted file mode 100644 index 53447913..00000000 --- a/asyncapi-core/src/test/resources/json/v2/binding/server/ibmmq/ibmmqServerBinding - extended.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "groupId" : "PRODCLSTR1", - "ccdtQueueManagerName" : "*", - "cipherSpec" : "ANY_TLS12_OR_HIGHER", - "multiEndpointServer" : false, - "heartBeatInterval" : 300, - "bindingVersion" : "0.1.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/server/kafka/kafkaServerBinding - extended.json b/asyncapi-core/src/test/resources/json/v2/binding/server/kafka/kafkaServerBinding - extended.json deleted file mode 100644 index a0349c5c..00000000 --- a/asyncapi-core/src/test/resources/json/v2/binding/server/kafka/kafkaServerBinding - extended.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "schemaRegistryUrl" : "https://my-schema-registry.com", - "schemaRegistryVendor" : "confluent", - "bindingVersion" : "0.4.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/server/mqtt/mqttServerBinding - extended.json b/asyncapi-core/src/test/resources/json/v2/binding/server/mqtt/mqttServerBinding - extended.json deleted file mode 100644 index 304ed881..00000000 --- a/asyncapi-core/src/test/resources/json/v2/binding/server/mqtt/mqttServerBinding - extended.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "clientId" : "guest", - "cleanSession" : true, - "lastWill" : { - "topic" : "/last-wills", - "qos" : 2, - "message" : "Guest gone offline.", - "retain" : false - }, - "keepAlive" : 60, - "bindingVersion" : "0.1.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/server/pulsar/pulsarServerBinding - extended.json b/asyncapi-core/src/test/resources/json/v2/binding/server/pulsar/pulsarServerBinding - extended.json deleted file mode 100644 index de267c67..00000000 --- a/asyncapi-core/src/test/resources/json/v2/binding/server/pulsar/pulsarServerBinding - extended.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "tenant" : "contoso", - "bindingVersion" : "0.1.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v2/binding/server/solace/solaceServerBinding - extended.json b/asyncapi-core/src/test/resources/json/v2/binding/server/solace/solaceServerBinding - extended.json deleted file mode 100644 index 4e9101f6..00000000 --- a/asyncapi-core/src/test/resources/json/v2/binding/server/solace/solaceServerBinding - extended.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "msgVpn" : "solace.private.net", - "bindingVersion" : "0.3.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/asyncapi - extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/asyncapi - extended.json index 28da7797..8a4b3aaf 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/asyncapi - extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/asyncapi - extended.json @@ -73,26 +73,40 @@ "amqp" : { "$ref" : "#/components/serverBindings/amqp" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, - "http" : { }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { + "bindingVersion" : "0.2.0" + }, + "http" : { + "bindingVersion" : "0.3.0" + }, "ibmmq" : { + "bindingVersion" : "0.1.0", "groupId" : "PRODCLSTR1", "ccdtQueueManagerName" : "*", "cipherSpec" : "ANY_TLS12_OR_HIGHER", "multiEndpointServer" : false, - "heartBeatInterval" : 300, - "bindingVersion" : "0.1.0" + "heartBeatInterval" : 300 + }, + "jms" : { + "bindingVersion" : "0.0.1", + "jmsConnectionFactory" : "" }, - "jms" : { }, "kafka" : { + "bindingVersion" : "0.5.0", "schemaRegistryUrl" : "https://my-schema-registry.com", - "schemaRegistryVendor" : "confluent", - "bindingVersion" : "0.4.0" + "schemaRegistryVendor" : "confluent" + }, + "mercure" : { + "bindingVersion" : "0.1.0" }, - "mercure" : { }, "mqtt" : { + "bindingVersion" : "0.1.0", "clientId" : "guest", "cleanSession" : true, "lastWill" : { @@ -101,27 +115,39 @@ "message" : "Guest gone offline.", "retain" : false }, - "keepAlive" : 60, - "bindingVersion" : "0.1.0" + "keepAlive" : 60 }, "mqtt5" : { "sessionExpiryInterval" : 60, "bindingVersion" : "0.2.0" }, - "nats" : { }, + "nats" : { + "bindingVersion" : "0.1.0" + }, "pulsar" : { - "tenant" : "contoso", + "bindingVersion" : "0.1.0", + "tenant" : "contoso" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { "bindingVersion" : "0.1.0" }, - "redis" : { }, - "sns" : { }, "solace" : { - "msgVpn" : "solace.private.net", - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.4.0", + "msgVpn" : "ProdVPN", + "clientName" : "transactions-broker" + }, + "sqs" : { + "bindingVersion" : "0.2.0" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "stomp" : { + "bindingVersion" : "0.1.0" + }, + "ws" : { + "bindingVersion" : "0.1.0" + } } }, "server 2" : { @@ -170,26 +196,40 @@ "amqp" : { "$ref" : "#/components/serverBindings/amqp" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, - "http" : { }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { + "bindingVersion" : "0.2.0" + }, + "http" : { + "bindingVersion" : "0.3.0" + }, "ibmmq" : { + "bindingVersion" : "0.1.0", "groupId" : "PRODCLSTR1", "ccdtQueueManagerName" : "*", "cipherSpec" : "ANY_TLS12_OR_HIGHER", "multiEndpointServer" : false, - "heartBeatInterval" : 300, - "bindingVersion" : "0.1.0" + "heartBeatInterval" : 300 + }, + "jms" : { + "bindingVersion" : "0.0.1", + "jmsConnectionFactory" : "" }, - "jms" : { }, "kafka" : { + "bindingVersion" : "0.5.0", "schemaRegistryUrl" : "https://my-schema-registry.com", - "schemaRegistryVendor" : "confluent", - "bindingVersion" : "0.4.0" + "schemaRegistryVendor" : "confluent" + }, + "mercure" : { + "bindingVersion" : "0.1.0" }, - "mercure" : { }, "mqtt" : { + "bindingVersion" : "0.1.0", "clientId" : "guest", "cleanSession" : true, "lastWill" : { @@ -198,27 +238,39 @@ "message" : "Guest gone offline.", "retain" : false }, - "keepAlive" : 60, - "bindingVersion" : "0.1.0" + "keepAlive" : 60 }, "mqtt5" : { "sessionExpiryInterval" : 60, "bindingVersion" : "0.2.0" }, - "nats" : { }, + "nats" : { + "bindingVersion" : "0.1.0" + }, "pulsar" : { - "tenant" : "contoso", + "bindingVersion" : "0.1.0", + "tenant" : "contoso" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { "bindingVersion" : "0.1.0" }, - "redis" : { }, - "sns" : { }, "solace" : { - "msgVpn" : "solace.private.net", - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.4.0", + "msgVpn" : "ProdVPN", + "clientName" : "transactions-broker" + }, + "sqs" : { + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "ws" : { + "bindingVersion" : "0.1.0" + } } }, "server 3" : { @@ -288,14 +340,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -304,17 +357,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -324,27 +377,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -421,14 +474,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -437,17 +491,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -457,27 +511,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -554,14 +608,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -570,17 +625,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -590,27 +645,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -701,14 +756,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -717,17 +773,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -737,27 +793,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -873,14 +929,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -889,17 +946,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -909,27 +966,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -1006,14 +1063,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -1022,17 +1080,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -1042,27 +1100,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -1139,14 +1197,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -1155,17 +1214,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -1175,27 +1234,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -1286,14 +1345,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -1302,17 +1362,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -1322,27 +1382,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -1437,14 +1497,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -1453,17 +1514,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -1473,27 +1534,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -1570,14 +1631,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -1586,17 +1648,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -1606,27 +1668,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -1703,14 +1765,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -1719,17 +1782,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -1739,27 +1802,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -1850,14 +1913,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -1866,17 +1930,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -1886,27 +1950,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -1987,6 +2051,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "is" : "routingKey", "exchange" : { "name" : "myExchange", @@ -2001,18 +2066,18 @@ "exclusive" : true, "autoDelete" : false, "vhost" : "/" - }, - "bindingVersion" : "0.2.0" + } }, "amqp1" : { "$ref" : "#/components/channelBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "destination" : "user-signup-exchg", - "destinationType" : "exchange", - "bindingVersion" : "0.0.1" + "destinationType" : "exchange" }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "topic" : "projects/your-project/topics/topic-proto-schema", "messageRetentionDuration" : "86400s", "messageStoragePolicy" : { @@ -2021,13 +2086,13 @@ "schemaSettings" : { "encoding" : "binary", "name" : "projects/your-project/schemas/message-proto" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { "$ref" : "#/components/channelBindings/http" }, "ibmmq" : { + "bindingVersion" : "0.1.0", "destinationType" : "topic", "queue" : { "objectName" : "message", @@ -2040,14 +2105,13 @@ "durablePermitted" : true, "lastMsgRetained" : true }, - "maxMsgLength" : 1024, - "bindingVersion" : "0.1.0" + "maxMsgLength" : 1024 }, "jms" : { "$ref" : "#/components/channelBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "topic" : "my-specific-topic-name", "partitions" : 20, "replicas" : 3, @@ -2072,6 +2136,7 @@ "$ref" : "#/components/channelBindings/nats" }, "pulsar" : { + "bindingVersion" : "0.1.0", "namespace" : "staging", "persistence" : "persistent", "compaction" : 1000, @@ -2081,8 +2146,7 @@ "size" : 1000 }, "ttl" : 360, - "deduplication" : false, - "bindingVersion" : "0.1.0" + "deduplication" : false }, "redis" : { "$ref" : "#/components/channelBindings/redis" @@ -2100,6 +2164,7 @@ "$ref" : "#/components/channelBindings/stomp" }, "ws" : { + "bindingVersion" : "0.1.0", "method" : "GET", "query" : { "type" : "object", @@ -2118,8 +2183,7 @@ "description" : "Authentication token" } } - }, - "bindingVersion" : "0.1.0" + } } }, "tags" : [ { @@ -2205,14 +2269,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -2221,17 +2286,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -2241,27 +2306,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -2338,14 +2403,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -2354,17 +2420,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -2374,27 +2440,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -2471,14 +2537,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -2487,17 +2554,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -2507,27 +2574,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -2618,14 +2685,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -2634,17 +2702,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -2654,27 +2722,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -2790,14 +2858,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -2806,17 +2875,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -2826,27 +2895,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -2923,14 +2992,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -2939,17 +3009,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -2959,27 +3029,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -3056,14 +3126,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -3072,17 +3143,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -3092,27 +3163,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -3203,14 +3274,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -3219,17 +3291,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -3239,27 +3311,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -3354,14 +3426,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -3370,17 +3443,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -3390,27 +3463,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -3487,14 +3560,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -3503,17 +3577,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -3523,27 +3597,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -3620,14 +3694,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -3636,17 +3711,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -3656,27 +3731,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -3767,14 +3842,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -3783,17 +3859,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -3803,27 +3879,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -3904,6 +3980,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "is" : "routingKey", "exchange" : { "name" : "myExchange", @@ -3918,18 +3995,18 @@ "exclusive" : true, "autoDelete" : false, "vhost" : "/" - }, - "bindingVersion" : "0.2.0" + } }, "amqp1" : { "$ref" : "#/components/channelBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "destination" : "user-signup-exchg", - "destinationType" : "exchange", - "bindingVersion" : "0.0.1" + "destinationType" : "exchange" }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "topic" : "projects/your-project/topics/topic-proto-schema", "messageRetentionDuration" : "86400s", "messageStoragePolicy" : { @@ -3938,13 +4015,13 @@ "schemaSettings" : { "encoding" : "binary", "name" : "projects/your-project/schemas/message-proto" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { "$ref" : "#/components/channelBindings/http" }, "ibmmq" : { + "bindingVersion" : "0.1.0", "destinationType" : "topic", "queue" : { "objectName" : "message", @@ -3957,14 +4034,13 @@ "durablePermitted" : true, "lastMsgRetained" : true }, - "maxMsgLength" : 1024, - "bindingVersion" : "0.1.0" + "maxMsgLength" : 1024 }, "jms" : { "$ref" : "#/components/channelBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "topic" : "my-specific-topic-name", "partitions" : 20, "replicas" : 3, @@ -3989,6 +4065,7 @@ "$ref" : "#/components/channelBindings/nats" }, "pulsar" : { + "bindingVersion" : "0.1.0", "namespace" : "staging", "persistence" : "persistent", "compaction" : 1000, @@ -3998,8 +4075,7 @@ "size" : 1000 }, "ttl" : 360, - "deduplication" : false, - "bindingVersion" : "0.1.0" + "deduplication" : false }, "redis" : { "$ref" : "#/components/channelBindings/redis" @@ -4017,6 +4093,7 @@ "$ref" : "#/components/channelBindings/stomp" }, "ws" : { + "bindingVersion" : "0.1.0", "method" : "GET", "query" : { "type" : "object", @@ -4035,8 +4112,7 @@ "description" : "Authentication token" } } - }, - "bindingVersion" : "0.1.0" + } } }, "tags" : [ { @@ -4095,6 +4171,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -4104,8 +4181,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -4117,7 +4193,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -4130,8 +4206,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -4140,7 +4215,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -4154,16 +4229,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -4175,28 +4250,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -4235,6 +4303,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -4244,8 +4313,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -4257,7 +4325,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -4270,8 +4338,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -4280,7 +4347,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -4294,16 +4361,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -4315,28 +4382,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -4374,6 +4434,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -4383,8 +4444,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -4396,7 +4456,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -4409,8 +4469,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -4419,7 +4478,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -4433,16 +4492,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -4454,28 +4513,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -4544,6 +4596,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -4553,8 +4606,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -4566,7 +4618,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -4579,8 +4631,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -4589,7 +4640,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -4603,16 +4654,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -4624,28 +4675,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -4684,6 +4728,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -4693,8 +4738,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -4706,7 +4750,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -4719,8 +4763,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -4729,7 +4772,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -4743,16 +4786,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -4764,28 +4807,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -4823,6 +4859,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -4832,8 +4869,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -4845,7 +4881,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -4858,8 +4894,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -4868,7 +4903,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -4882,16 +4917,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -4903,28 +4938,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -5031,26 +5059,40 @@ "amqp" : { "$ref" : "#/components/serverBindings/amqp" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, - "http" : { }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { + "bindingVersion" : "0.2.0" + }, + "http" : { + "bindingVersion" : "0.3.0" + }, "ibmmq" : { + "bindingVersion" : "0.1.0", "groupId" : "PRODCLSTR1", "ccdtQueueManagerName" : "*", "cipherSpec" : "ANY_TLS12_OR_HIGHER", "multiEndpointServer" : false, - "heartBeatInterval" : 300, - "bindingVersion" : "0.1.0" + "heartBeatInterval" : 300 + }, + "jms" : { + "bindingVersion" : "0.0.1", + "jmsConnectionFactory" : "" }, - "jms" : { }, "kafka" : { + "bindingVersion" : "0.5.0", "schemaRegistryUrl" : "https://my-schema-registry.com", - "schemaRegistryVendor" : "confluent", - "bindingVersion" : "0.4.0" + "schemaRegistryVendor" : "confluent" + }, + "mercure" : { + "bindingVersion" : "0.1.0" }, - "mercure" : { }, "mqtt" : { + "bindingVersion" : "0.1.0", "clientId" : "guest", "cleanSession" : true, "lastWill" : { @@ -5059,27 +5101,39 @@ "message" : "Guest gone offline.", "retain" : false }, - "keepAlive" : 60, - "bindingVersion" : "0.1.0" + "keepAlive" : 60 }, "mqtt5" : { "sessionExpiryInterval" : 60, "bindingVersion" : "0.2.0" }, - "nats" : { }, + "nats" : { + "bindingVersion" : "0.1.0" + }, "pulsar" : { - "tenant" : "contoso", + "bindingVersion" : "0.1.0", + "tenant" : "contoso" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { "bindingVersion" : "0.1.0" }, - "redis" : { }, - "sns" : { }, "solace" : { - "msgVpn" : "solace.private.net", - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.4.0", + "msgVpn" : "ProdVPN", + "clientName" : "transactions-broker" + }, + "sqs" : { + "bindingVersion" : "0.2.0" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "stomp" : { + "bindingVersion" : "0.1.0" + }, + "ws" : { + "bindingVersion" : "0.1.0" + } } }, "mqtt-stage" : { @@ -5160,14 +5214,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -5176,17 +5231,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -5196,27 +5251,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -5293,14 +5348,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -5309,17 +5365,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -5329,27 +5385,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -5426,14 +5482,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -5442,17 +5499,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -5462,27 +5519,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -5573,14 +5630,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -5589,17 +5647,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -5609,27 +5667,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -5745,14 +5803,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -5761,17 +5820,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -5781,27 +5840,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -5878,14 +5937,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -5894,17 +5954,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -5914,27 +5974,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -6011,14 +6071,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -6027,17 +6088,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -6047,27 +6108,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -6158,14 +6219,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -6174,17 +6236,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -6194,27 +6256,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -6309,14 +6371,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -6325,17 +6388,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -6345,27 +6408,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -6442,14 +6505,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -6458,17 +6522,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -6478,27 +6542,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -6575,14 +6639,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -6591,17 +6656,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -6611,27 +6676,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -6722,14 +6787,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -6738,17 +6804,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -6758,27 +6824,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -6859,6 +6925,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "is" : "routingKey", "exchange" : { "name" : "myExchange", @@ -6873,18 +6940,18 @@ "exclusive" : true, "autoDelete" : false, "vhost" : "/" - }, - "bindingVersion" : "0.2.0" + } }, "amqp1" : { "$ref" : "#/components/channelBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "destination" : "user-signup-exchg", - "destinationType" : "exchange", - "bindingVersion" : "0.0.1" + "destinationType" : "exchange" }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "topic" : "projects/your-project/topics/topic-proto-schema", "messageRetentionDuration" : "86400s", "messageStoragePolicy" : { @@ -6893,13 +6960,13 @@ "schemaSettings" : { "encoding" : "binary", "name" : "projects/your-project/schemas/message-proto" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { "$ref" : "#/components/channelBindings/http" }, "ibmmq" : { + "bindingVersion" : "0.1.0", "destinationType" : "topic", "queue" : { "objectName" : "message", @@ -6912,14 +6979,13 @@ "durablePermitted" : true, "lastMsgRetained" : true }, - "maxMsgLength" : 1024, - "bindingVersion" : "0.1.0" + "maxMsgLength" : 1024 }, "jms" : { "$ref" : "#/components/channelBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "topic" : "my-specific-topic-name", "partitions" : 20, "replicas" : 3, @@ -6944,6 +7010,7 @@ "$ref" : "#/components/channelBindings/nats" }, "pulsar" : { + "bindingVersion" : "0.1.0", "namespace" : "staging", "persistence" : "persistent", "compaction" : 1000, @@ -6953,8 +7020,7 @@ "size" : 1000 }, "ttl" : 360, - "deduplication" : false, - "bindingVersion" : "0.1.0" + "deduplication" : false }, "redis" : { "$ref" : "#/components/channelBindings/redis" @@ -6972,6 +7038,7 @@ "$ref" : "#/components/channelBindings/stomp" }, "ws" : { + "bindingVersion" : "0.1.0", "method" : "GET", "query" : { "type" : "object", @@ -6990,8 +7057,7 @@ "description" : "Authentication token" } } - }, - "bindingVersion" : "0.1.0" + } } }, "tags" : [ { @@ -7077,14 +7143,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -7093,17 +7160,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -7113,27 +7180,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -7210,14 +7277,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -7226,17 +7294,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -7246,27 +7314,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -7343,14 +7411,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -7359,17 +7428,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -7379,27 +7448,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -7490,14 +7559,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -7506,17 +7576,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -7526,27 +7596,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -7662,14 +7732,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -7678,17 +7749,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -7698,27 +7769,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -7795,14 +7866,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -7811,17 +7883,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -7831,27 +7903,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -7928,14 +8000,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -7944,17 +8017,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -7964,27 +8037,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -8075,14 +8148,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -8091,17 +8165,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -8111,27 +8185,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -8226,14 +8300,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -8242,17 +8317,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -8262,27 +8337,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -8359,14 +8434,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -8375,17 +8451,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -8395,27 +8471,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -8492,14 +8568,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -8508,17 +8585,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -8528,27 +8605,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -8639,14 +8716,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -8655,17 +8733,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -8675,27 +8753,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -8776,6 +8854,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "is" : "routingKey", "exchange" : { "name" : "myExchange", @@ -8790,18 +8869,18 @@ "exclusive" : true, "autoDelete" : false, "vhost" : "/" - }, - "bindingVersion" : "0.2.0" + } }, "amqp1" : { "$ref" : "#/components/channelBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "destination" : "user-signup-exchg", - "destinationType" : "exchange", - "bindingVersion" : "0.0.1" + "destinationType" : "exchange" }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "topic" : "projects/your-project/topics/topic-proto-schema", "messageRetentionDuration" : "86400s", "messageStoragePolicy" : { @@ -8810,13 +8889,13 @@ "schemaSettings" : { "encoding" : "binary", "name" : "projects/your-project/schemas/message-proto" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { "$ref" : "#/components/channelBindings/http" }, "ibmmq" : { + "bindingVersion" : "0.1.0", "destinationType" : "topic", "queue" : { "objectName" : "message", @@ -8829,14 +8908,13 @@ "durablePermitted" : true, "lastMsgRetained" : true }, - "maxMsgLength" : 1024, - "bindingVersion" : "0.1.0" + "maxMsgLength" : 1024 }, "jms" : { "$ref" : "#/components/channelBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "topic" : "my-specific-topic-name", "partitions" : 20, "replicas" : 3, @@ -8861,6 +8939,7 @@ "$ref" : "#/components/channelBindings/nats" }, "pulsar" : { + "bindingVersion" : "0.1.0", "namespace" : "staging", "persistence" : "persistent", "compaction" : 1000, @@ -8870,8 +8949,7 @@ "size" : 1000 }, "ttl" : 360, - "deduplication" : false, - "bindingVersion" : "0.1.0" + "deduplication" : false }, "redis" : { "$ref" : "#/components/channelBindings/redis" @@ -8889,6 +8967,7 @@ "$ref" : "#/components/channelBindings/stomp" }, "ws" : { + "bindingVersion" : "0.1.0", "method" : "GET", "query" : { "type" : "object", @@ -8907,8 +8986,7 @@ "description" : "Authentication token" } } - }, - "bindingVersion" : "0.1.0" + } } }, "tags" : [ { @@ -8967,6 +9045,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -8976,8 +9055,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -8989,7 +9067,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -9002,8 +9080,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -9012,7 +9089,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -9026,16 +9103,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -9047,28 +9124,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -9107,6 +9177,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -9116,8 +9187,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -9129,7 +9199,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -9142,8 +9212,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -9152,7 +9221,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -9166,16 +9235,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -9187,28 +9256,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -9246,6 +9308,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -9255,8 +9318,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -9268,7 +9330,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -9281,8 +9343,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -9291,7 +9352,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -9305,16 +9366,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -9326,28 +9387,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -9416,6 +9470,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -9425,8 +9480,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -9438,7 +9492,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -9451,8 +9505,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -9461,7 +9514,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -9475,16 +9528,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -9496,28 +9549,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -9556,6 +9602,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -9565,8 +9612,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -9578,7 +9624,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -9591,8 +9637,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -9601,7 +9646,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -9615,16 +9660,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -9636,28 +9681,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -9695,6 +9733,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -9704,8 +9743,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -9717,7 +9755,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -9730,8 +9768,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -9740,7 +9777,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -9754,16 +9791,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -9775,28 +9812,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -9906,14 +9936,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -9922,17 +9953,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -9942,27 +9973,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -10039,14 +10070,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -10055,17 +10087,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -10075,27 +10107,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -10172,14 +10204,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -10188,17 +10221,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -10208,27 +10241,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -10319,14 +10352,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -10335,17 +10369,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -10355,27 +10389,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -10491,14 +10525,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -10507,17 +10542,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -10527,27 +10562,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -10624,14 +10659,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -10640,17 +10676,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -10660,27 +10696,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -10757,14 +10793,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -10773,17 +10810,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -10793,27 +10830,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -10904,14 +10941,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -10920,17 +10958,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -10940,27 +10978,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -11055,14 +11093,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -11071,17 +11110,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -11091,27 +11130,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -11188,14 +11227,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -11204,17 +11244,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -11224,27 +11264,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -11321,14 +11361,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -11337,17 +11378,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -11357,27 +11398,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -11468,14 +11509,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -11484,17 +11526,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -11504,27 +11546,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -11749,6 +11791,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -11758,8 +11801,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -11771,7 +11813,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -11784,8 +11826,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -11794,7 +11835,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -11808,16 +11849,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -11829,28 +11870,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -11889,6 +11923,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -11898,8 +11933,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -11911,7 +11945,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -11924,8 +11958,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -11934,7 +11967,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -11948,16 +11981,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -11969,28 +12002,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -12033,14 +12059,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -12049,17 +12076,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -12069,27 +12096,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -12180,14 +12207,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -12196,17 +12224,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -12216,27 +12244,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -12315,14 +12343,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -12331,17 +12360,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -12351,27 +12380,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -12444,26 +12473,40 @@ "amqp" : { "$ref" : "#/components/serverBindings/amqp" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, - "http" : { }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { + "bindingVersion" : "0.2.0" + }, + "http" : { + "bindingVersion" : "0.3.0" + }, "ibmmq" : { + "bindingVersion" : "0.1.0", "groupId" : "PRODCLSTR1", "ccdtQueueManagerName" : "*", "cipherSpec" : "ANY_TLS12_OR_HIGHER", "multiEndpointServer" : false, - "heartBeatInterval" : 300, - "bindingVersion" : "0.1.0" + "heartBeatInterval" : 300 + }, + "jms" : { + "bindingVersion" : "0.0.1", + "jmsConnectionFactory" : "" }, - "jms" : { }, "kafka" : { + "bindingVersion" : "0.5.0", "schemaRegistryUrl" : "https://my-schema-registry.com", - "schemaRegistryVendor" : "confluent", - "bindingVersion" : "0.4.0" + "schemaRegistryVendor" : "confluent" + }, + "mercure" : { + "bindingVersion" : "0.1.0" }, - "mercure" : { }, "mqtt" : { + "bindingVersion" : "0.1.0", "clientId" : "guest", "cleanSession" : true, "lastWill" : { @@ -12472,30 +12515,43 @@ "message" : "Guest gone offline.", "retain" : false }, - "keepAlive" : 60, - "bindingVersion" : "0.1.0" + "keepAlive" : 60 }, "mqtt5" : { "sessionExpiryInterval" : 60, "bindingVersion" : "0.2.0" }, - "nats" : { }, + "nats" : { + "bindingVersion" : "0.1.0" + }, "pulsar" : { - "tenant" : "contoso", + "bindingVersion" : "0.1.0", + "tenant" : "contoso" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { "bindingVersion" : "0.1.0" }, - "redis" : { }, - "sns" : { }, "solace" : { - "msgVpn" : "solace.private.net", - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.4.0", + "msgVpn" : "ProdVPN", + "clientName" : "transactions-broker" + }, + "sqs" : { + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "ws" : { + "bindingVersion" : "0.1.0" + } }, "channelBindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "is" : "routingKey", "exchange" : { "name" : "myExchange", @@ -12510,18 +12566,18 @@ "exclusive" : true, "autoDelete" : false, "vhost" : "/" - }, - "bindingVersion" : "0.2.0" + } }, "amqp1" : { "$ref" : "#/components/channelBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "destination" : "user-signup-exchg", - "destinationType" : "exchange", - "bindingVersion" : "0.0.1" + "destinationType" : "exchange" }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "topic" : "projects/your-project/topics/topic-proto-schema", "messageRetentionDuration" : "86400s", "messageStoragePolicy" : { @@ -12530,13 +12586,13 @@ "schemaSettings" : { "encoding" : "binary", "name" : "projects/your-project/schemas/message-proto" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { "$ref" : "#/components/channelBindings/http" }, "ibmmq" : { + "bindingVersion" : "0.1.0", "destinationType" : "topic", "queue" : { "objectName" : "message", @@ -12549,14 +12605,13 @@ "durablePermitted" : true, "lastMsgRetained" : true }, - "maxMsgLength" : 1024, - "bindingVersion" : "0.1.0" + "maxMsgLength" : 1024 }, "jms" : { "$ref" : "#/components/channelBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "topic" : "my-specific-topic-name", "partitions" : 20, "replicas" : 3, @@ -12581,6 +12636,7 @@ "$ref" : "#/components/channelBindings/nats" }, "pulsar" : { + "bindingVersion" : "0.1.0", "namespace" : "staging", "persistence" : "persistent", "compaction" : 1000, @@ -12590,8 +12646,7 @@ "size" : 1000 }, "ttl" : 360, - "deduplication" : false, - "bindingVersion" : "0.1.0" + "deduplication" : false }, "redis" : { "$ref" : "#/components/channelBindings/redis" @@ -12609,6 +12664,7 @@ "$ref" : "#/components/channelBindings/stomp" }, "ws" : { + "bindingVersion" : "0.1.0", "method" : "GET", "query" : { "type" : "object", @@ -12627,12 +12683,12 @@ "description" : "Authentication token" } } - }, - "bindingVersion" : "0.1.0" + } } }, "operationBindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -12642,8 +12698,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -12655,7 +12710,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -12668,8 +12723,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -12678,7 +12732,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -12692,16 +12746,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -12713,28 +12767,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -12748,14 +12795,15 @@ }, "messageBindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -12764,17 +12812,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -12784,27 +12832,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/asyncapi - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/asyncapi - wrongly extended.json index 3bca49ed..12ec5675 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/asyncapi - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/asyncapi - wrongly extended.json @@ -373,7 +373,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -522,7 +522,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -660,7 +660,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -811,7 +811,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -976,7 +976,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1125,7 +1125,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1263,7 +1263,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1414,7 +1414,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1557,7 +1557,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1706,7 +1706,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1844,7 +1844,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1995,7 +1995,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -2140,7 +2140,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" @@ -2367,7 +2367,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -2516,7 +2516,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -2654,7 +2654,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -2805,7 +2805,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -2970,7 +2970,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -3119,7 +3119,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -3257,7 +3257,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -3408,7 +3408,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -3551,7 +3551,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -3700,7 +3700,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -3838,7 +3838,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -3989,7 +3989,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -4134,7 +4134,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" @@ -4328,7 +4328,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -4492,7 +4492,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -4655,7 +4655,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -4856,7 +4856,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -5020,7 +5020,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -5183,7 +5183,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -5564,7 +5564,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -5713,7 +5713,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -5851,7 +5851,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -6002,7 +6002,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -6167,7 +6167,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -6316,7 +6316,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -6454,7 +6454,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -6605,7 +6605,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -6748,7 +6748,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -6897,7 +6897,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -7035,7 +7035,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -7186,7 +7186,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -7331,7 +7331,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" @@ -7558,7 +7558,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -7707,7 +7707,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -7845,7 +7845,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -7996,7 +7996,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -8161,7 +8161,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -8310,7 +8310,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -8448,7 +8448,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -8599,7 +8599,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -8742,7 +8742,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -8891,7 +8891,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -9029,7 +9029,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -9180,7 +9180,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -9325,7 +9325,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" @@ -9519,7 +9519,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -9683,7 +9683,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -9846,7 +9846,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -10047,7 +10047,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -10211,7 +10211,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -10374,7 +10374,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -10622,7 +10622,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -10771,7 +10771,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -10909,7 +10909,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -11060,7 +11060,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -11225,7 +11225,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -11374,7 +11374,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -11512,7 +11512,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -11663,7 +11663,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -11806,7 +11806,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -11955,7 +11955,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -12093,7 +12093,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -12244,7 +12244,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -12530,7 +12530,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -12693,7 +12693,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -12860,7 +12860,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -13011,7 +13011,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -13149,7 +13149,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -13228,7 +13228,7 @@ "kafka": { "schemaRegistryUrl": "https://my-schema-registry.com", "schemaRegistryVendor": "confluent", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -13349,7 +13349,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" @@ -13481,7 +13481,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -13610,7 +13610,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/asyncapi.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/asyncapi.json index cacc25aa..3c9e7e6c 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/asyncapi.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/asyncapi.json @@ -96,7 +96,7 @@ "kafka" : { "schemaRegistryUrl" : "https://my-schema-registry.com", "schemaRegistryVendor" : "confluent", - "bindingVersion" : "0.4.0" + "bindingVersion" : "0.5.0" }, "mercure" : { }, "mqtt" : { @@ -123,8 +123,9 @@ "redis" : { }, "sns" : { }, "solace" : { - "msgVpn" : "solace.private.net", - "bindingVersion" : "0.3.0" + "clientName": "transactions-broker", + "msgVpn": "ProdVPN", + "bindingVersion": "0.4.0" }, "sqs" : { }, "stomp" : { }, @@ -198,7 +199,7 @@ "kafka" : { "schemaRegistryUrl" : "https://my-schema-registry.com", "schemaRegistryVendor" : "confluent", - "bindingVersion" : "0.4.0" + "bindingVersion" : "0.5.0" }, "mercure" : { }, "mqtt" : { @@ -225,8 +226,9 @@ "redis" : { }, "sns" : { }, "solace" : { - "msgVpn" : "solace.private.net", - "bindingVersion" : "0.3.0" + "clientName": "transactions-broker", + "msgVpn": "ProdVPN", + "bindingVersion": "0.4.0" }, "sqs" : { }, "stomp" : { }, @@ -351,7 +353,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode": 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -373,7 +376,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -500,7 +503,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode": 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -522,7 +526,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -638,7 +642,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode": 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -660,7 +665,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -789,7 +794,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode": 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -811,7 +817,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -954,7 +960,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode": 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -976,7 +983,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1103,7 +1110,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode": 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1125,7 +1133,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1241,7 +1249,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode": 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1263,7 +1272,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1392,7 +1401,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode": 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1414,7 +1424,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1535,7 +1545,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode": 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1557,7 +1568,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1684,7 +1695,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode": 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1706,7 +1718,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1822,7 +1834,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode": 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1844,7 +1857,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1973,7 +1986,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode": 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1995,7 +2009,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -2140,7 +2154,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" @@ -2345,7 +2359,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode": 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -2367,7 +2382,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -2494,7 +2509,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode": 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -2516,7 +2532,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -2632,7 +2648,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode": 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -2654,7 +2671,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -2783,7 +2800,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode": 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -2805,7 +2823,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -2948,7 +2966,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode": 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -2970,7 +2989,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -3097,7 +3116,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode": 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -3119,7 +3139,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -3235,7 +3255,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode": 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -3257,7 +3278,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -3386,7 +3407,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode": 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -3408,7 +3430,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -3529,7 +3551,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode": 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -3551,7 +3574,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -3678,7 +3701,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode": 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -3700,7 +3724,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -3816,7 +3840,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode": 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -3838,7 +3863,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -3967,7 +3992,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode": 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -3989,7 +4015,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -4134,7 +4160,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" @@ -4291,7 +4317,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -4307,7 +4332,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -4328,7 +4353,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -4359,31 +4384,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -4455,7 +4470,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -4471,7 +4485,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -4492,7 +4506,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -4523,31 +4537,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -4618,7 +4622,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -4634,7 +4637,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -4655,7 +4658,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -4686,31 +4689,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -4819,7 +4812,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -4835,7 +4827,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -4856,7 +4848,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -4887,31 +4879,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -4983,7 +4965,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -4999,7 +4980,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -5020,7 +5001,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -5051,31 +5032,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -5146,7 +5117,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -5162,7 +5132,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -5183,7 +5153,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -5214,31 +5184,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -5372,7 +5332,7 @@ "kafka" : { "schemaRegistryUrl" : "https://my-schema-registry.com", "schemaRegistryVendor" : "confluent", - "bindingVersion" : "0.4.0" + "bindingVersion" : "0.5.0" }, "mercure" : { }, "mqtt" : { @@ -5399,8 +5359,9 @@ "redis" : { }, "sns" : { }, "solace" : { - "msgVpn" : "solace.private.net", - "bindingVersion" : "0.3.0" + "clientName": "transactions-broker", + "msgVpn": "ProdVPN", + "bindingVersion": "0.4.0" }, "sqs" : { }, "stomp" : { }, @@ -5542,7 +5503,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -5564,7 +5526,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -5691,7 +5653,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -5713,7 +5676,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -5829,7 +5792,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -5851,7 +5815,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -5980,7 +5944,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -6002,7 +5967,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -6145,7 +6110,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -6167,7 +6133,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -6294,7 +6260,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -6316,7 +6283,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -6432,7 +6399,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -6454,7 +6422,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -6583,7 +6551,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -6605,7 +6574,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -6726,7 +6695,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -6748,7 +6718,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -6875,7 +6845,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -6897,7 +6868,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -7013,7 +6984,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -7035,7 +7007,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -7164,7 +7136,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -7186,7 +7159,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -7331,7 +7304,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" @@ -7536,7 +7509,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -7558,7 +7532,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -7685,7 +7659,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -7707,7 +7682,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -7823,7 +7798,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -7845,7 +7821,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -7974,7 +7950,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -7996,7 +7973,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -8139,7 +8116,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -8161,7 +8139,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -8288,7 +8266,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -8310,7 +8289,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -8426,7 +8405,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -8448,7 +8428,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -8577,7 +8557,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -8599,7 +8580,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -8720,7 +8701,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -8742,7 +8724,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -8869,7 +8851,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -8891,7 +8874,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -9007,7 +8990,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -9029,7 +9013,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -9158,7 +9142,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -9180,7 +9165,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -9325,7 +9310,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" @@ -9482,7 +9467,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -9498,7 +9482,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -9519,7 +9503,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -9550,31 +9534,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -9646,7 +9620,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -9662,7 +9635,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -9683,7 +9656,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -9714,31 +9687,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -9809,7 +9772,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -9825,7 +9787,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -9846,7 +9808,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -9877,31 +9839,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -10010,7 +9962,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -10026,7 +9977,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -10047,7 +9998,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -10078,31 +10029,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -10174,7 +10115,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -10190,7 +10130,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -10211,7 +10151,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -10242,31 +10182,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -10337,7 +10267,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -10353,7 +10282,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -10374,7 +10303,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -10405,31 +10334,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -10600,7 +10519,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -10622,7 +10542,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -10749,7 +10669,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -10771,7 +10692,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -10887,7 +10808,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -10909,7 +10831,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -11038,7 +10960,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -11060,7 +10983,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -11203,7 +11126,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -11225,7 +11149,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -11352,7 +11276,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -11374,7 +11299,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -11490,7 +11415,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -11512,7 +11438,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -11641,7 +11567,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -11663,7 +11590,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -11784,7 +11711,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -11806,7 +11734,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -11933,7 +11861,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -11955,7 +11884,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -12071,7 +12000,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -12093,7 +12023,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -12222,7 +12152,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -12244,7 +12175,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -12493,7 +12424,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -12509,7 +12439,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -12530,7 +12460,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -12561,31 +12491,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -12656,7 +12576,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -12672,7 +12591,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -12693,7 +12612,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -12724,31 +12643,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -12838,7 +12747,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -12860,7 +12770,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -12989,7 +12899,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -13011,7 +12922,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -13127,7 +13038,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -13149,7 +13061,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -13228,7 +13140,7 @@ "kafka": { "schemaRegistryUrl": "https://my-schema-registry.com", "schemaRegistryVendor": "confluent", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -13255,8 +13167,9 @@ "redis": {}, "sns": {}, "solace": { - "msgVpn": "solace.private.net", - "bindingVersion": "0.3.0" + "clientName": "transactions-broker", + "msgVpn": "ProdVPN", + "bindingVersion": "0.4.0" }, "sqs": {}, "stomp": {}, @@ -13349,7 +13262,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" @@ -13444,7 +13357,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -13460,7 +13372,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -13481,7 +13393,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -13512,31 +13424,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -13588,7 +13490,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -13610,7 +13513,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/channel - extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/channel - extended.json index a74df3c7..688810f9 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/channel - extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/channel - extended.json @@ -60,14 +60,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -76,17 +77,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -96,27 +97,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -193,14 +194,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -209,17 +211,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -229,27 +231,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -326,14 +328,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -342,17 +345,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -362,27 +365,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -473,14 +476,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -489,17 +493,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -509,27 +513,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -645,14 +649,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -661,17 +666,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -681,27 +686,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -778,14 +783,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -794,17 +800,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -814,27 +820,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -911,14 +917,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -927,17 +934,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -947,27 +954,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -1058,14 +1065,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -1074,17 +1082,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -1094,27 +1102,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -1209,14 +1217,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -1225,17 +1234,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -1245,27 +1254,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -1342,14 +1351,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -1358,17 +1368,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -1378,27 +1388,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -1475,14 +1485,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -1491,17 +1502,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -1511,27 +1522,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -1622,14 +1633,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -1638,17 +1650,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -1658,27 +1670,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -1759,6 +1771,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "is" : "routingKey", "exchange" : { "name" : "myExchange", @@ -1773,18 +1786,18 @@ "exclusive" : true, "autoDelete" : false, "vhost" : "/" - }, - "bindingVersion" : "0.2.0" + } }, "amqp1" : { "$ref" : "#/components/channelBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "destination" : "user-signup-exchg", - "destinationType" : "exchange", - "bindingVersion" : "0.0.1" + "destinationType" : "exchange" }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "topic" : "projects/your-project/topics/topic-proto-schema", "messageRetentionDuration" : "86400s", "messageStoragePolicy" : { @@ -1793,13 +1806,13 @@ "schemaSettings" : { "encoding" : "binary", "name" : "projects/your-project/schemas/message-proto" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { "$ref" : "#/components/channelBindings/http" }, "ibmmq" : { + "bindingVersion" : "0.1.0", "destinationType" : "topic", "queue" : { "objectName" : "message", @@ -1812,14 +1825,13 @@ "durablePermitted" : true, "lastMsgRetained" : true }, - "maxMsgLength" : 1024, - "bindingVersion" : "0.1.0" + "maxMsgLength" : 1024 }, "jms" : { "$ref" : "#/components/channelBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "topic" : "my-specific-topic-name", "partitions" : 20, "replicas" : 3, @@ -1844,6 +1856,7 @@ "$ref" : "#/components/channelBindings/nats" }, "pulsar" : { + "bindingVersion" : "0.1.0", "namespace" : "staging", "persistence" : "persistent", "compaction" : 1000, @@ -1853,8 +1866,7 @@ "size" : 1000 }, "ttl" : 360, - "deduplication" : false, - "bindingVersion" : "0.1.0" + "deduplication" : false }, "redis" : { "$ref" : "#/components/channelBindings/redis" @@ -1872,6 +1884,7 @@ "$ref" : "#/components/channelBindings/stomp" }, "ws" : { + "bindingVersion" : "0.1.0", "method" : "GET", "query" : { "type" : "object", @@ -1890,8 +1903,7 @@ "description" : "Authentication token" } } - }, - "bindingVersion" : "0.1.0" + } } }, "tags" : [ { diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/channel - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/channel - wrongly extended.json index 8486e6b1..d3c2479f 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/channel - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/channel - wrongly extended.json @@ -133,7 +133,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -282,7 +282,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -420,7 +420,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -571,7 +571,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -736,7 +736,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -885,7 +885,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1023,7 +1023,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1174,7 +1174,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1317,7 +1317,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1466,7 +1466,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1604,7 +1604,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1755,7 +1755,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1900,7 +1900,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/channel with reference - extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/channel with reference - extended.json index 14181083..a6ecfaba 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/channel with reference - extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/channel with reference - extended.json @@ -60,14 +60,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -76,17 +77,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -96,27 +97,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -193,14 +194,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -209,17 +211,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -229,27 +231,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -326,14 +328,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -342,17 +345,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -362,27 +365,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -473,14 +476,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -489,17 +493,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -509,27 +513,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -645,14 +649,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -661,17 +666,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -681,27 +686,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -778,14 +783,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -794,17 +800,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -814,27 +820,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -911,14 +917,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -927,17 +934,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -947,27 +954,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -1058,14 +1065,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -1074,17 +1082,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -1094,27 +1102,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -1209,14 +1217,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -1225,17 +1234,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -1245,27 +1254,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -1342,14 +1351,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -1358,17 +1368,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -1378,27 +1388,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -1475,14 +1485,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -1491,17 +1502,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -1511,27 +1522,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -1622,14 +1633,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -1638,17 +1650,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -1658,27 +1670,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -1759,6 +1771,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "is" : "routingKey", "exchange" : { "name" : "myExchange", @@ -1773,18 +1786,18 @@ "exclusive" : true, "autoDelete" : false, "vhost" : "/" - }, - "bindingVersion" : "0.2.0" + } }, "amqp1" : { "$ref" : "#/components/channelBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "destination" : "user-signup-exchg", - "destinationType" : "exchange", - "bindingVersion" : "0.0.1" + "destinationType" : "exchange" }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "topic" : "projects/your-project/topics/topic-proto-schema", "messageRetentionDuration" : "86400s", "messageStoragePolicy" : { @@ -1793,13 +1806,13 @@ "schemaSettings" : { "encoding" : "binary", "name" : "projects/your-project/schemas/message-proto" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { "$ref" : "#/components/channelBindings/http" }, "ibmmq" : { + "bindingVersion" : "0.1.0", "destinationType" : "topic", "queue" : { "objectName" : "message", @@ -1812,14 +1825,13 @@ "durablePermitted" : true, "lastMsgRetained" : true }, - "maxMsgLength" : 1024, - "bindingVersion" : "0.1.0" + "maxMsgLength" : 1024 }, "jms" : { "$ref" : "#/components/channelBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "topic" : "my-specific-topic-name", "partitions" : 20, "replicas" : 3, @@ -1844,6 +1856,7 @@ "$ref" : "#/components/channelBindings/nats" }, "pulsar" : { + "bindingVersion" : "0.1.0", "namespace" : "staging", "persistence" : "persistent", "compaction" : 1000, @@ -1853,8 +1866,7 @@ "size" : 1000 }, "ttl" : 360, - "deduplication" : false, - "bindingVersion" : "0.1.0" + "deduplication" : false }, "redis" : { "$ref" : "#/components/channelBindings/redis" @@ -1872,6 +1884,7 @@ "$ref" : "#/components/channelBindings/stomp" }, "ws" : { + "bindingVersion" : "0.1.0", "method" : "GET", "query" : { "type" : "object", @@ -1890,8 +1903,7 @@ "description" : "Authentication token" } } - }, - "bindingVersion" : "0.1.0" + } } }, "tags" : [ { diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/channel with reference - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/channel with reference - wrongly extended.json index 2dba6547..3e3005fa 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/channel with reference - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/channel with reference - wrongly extended.json @@ -111,7 +111,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -133,7 +134,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -260,7 +261,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -282,7 +284,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -398,7 +400,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -420,7 +423,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -549,7 +552,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -571,7 +575,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -714,7 +718,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -736,7 +741,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -863,7 +868,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -885,7 +891,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1001,7 +1007,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1023,7 +1030,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1152,7 +1159,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1174,7 +1182,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1295,7 +1303,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1317,7 +1326,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1444,7 +1453,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1466,7 +1476,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1582,7 +1592,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1604,7 +1615,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1733,7 +1744,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1755,7 +1767,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1900,7 +1912,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/channel with reference.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/channel with reference.json index a492cd68..c37f98db 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/channel with reference.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/channel with reference.json @@ -111,7 +111,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -133,7 +134,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -260,7 +261,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -282,7 +284,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -398,7 +400,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -420,7 +423,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -549,7 +552,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -571,7 +575,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -714,7 +718,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -736,7 +741,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -863,7 +868,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -885,7 +891,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1001,7 +1007,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1023,7 +1030,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1152,7 +1159,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1174,7 +1182,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1295,7 +1303,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1317,7 +1326,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1444,7 +1453,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1466,7 +1476,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1582,7 +1592,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1604,7 +1615,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1733,7 +1744,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1755,7 +1767,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1900,7 +1912,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/channel.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/channel.json index 20388e10..df27d3b1 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/channel.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/channel.json @@ -111,7 +111,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -133,7 +134,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -260,7 +261,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -282,7 +284,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -398,7 +400,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -420,7 +423,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -549,7 +552,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -571,7 +575,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -714,7 +718,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -736,7 +741,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -863,7 +868,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -885,7 +891,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1001,7 +1007,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1023,7 +1030,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1152,7 +1159,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1174,7 +1182,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1295,7 +1303,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1317,7 +1326,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1444,7 +1453,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1466,7 +1476,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1582,7 +1592,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1604,7 +1615,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1733,7 +1744,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1755,7 +1767,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1900,7 +1912,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message - extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message - extended.json index 4fd445a2..0f9ffafd 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message - extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message - extended.json @@ -32,14 +32,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -48,17 +49,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -68,27 +69,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -165,14 +166,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -181,17 +183,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -201,27 +203,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -298,14 +300,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -314,17 +317,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -334,27 +337,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -445,14 +448,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -461,17 +465,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -481,27 +485,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message - wrongly extended.json index 5848c90f..b962a2a4 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message - wrongly extended.json @@ -79,7 +79,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -101,7 +102,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -228,7 +229,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -250,7 +252,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -366,7 +368,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -388,7 +391,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -517,7 +520,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -539,7 +543,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message 2 - extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message 2 - extended.json index 188d3afd..b034827c 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message 2 - extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message 2 - extended.json @@ -37,14 +37,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -53,17 +54,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -73,27 +74,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -170,14 +171,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -186,17 +188,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -206,27 +208,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -303,14 +305,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -319,17 +322,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -339,27 +342,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -450,14 +453,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -466,17 +470,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -486,27 +490,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message 2 - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message 2 - wrongly extended.json index 798dea70..e2297e0d 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message 2 - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message 2 - wrongly extended.json @@ -84,7 +84,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -106,7 +107,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -233,7 +234,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -255,7 +257,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -371,7 +373,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -393,7 +396,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -522,7 +525,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -544,7 +548,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message 2.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message 2.json index 140939d5..0433105c 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message 2.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message 2.json @@ -84,7 +84,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -106,7 +107,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -233,7 +234,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -255,7 +257,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -371,7 +373,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -393,7 +396,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -522,7 +525,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -544,7 +548,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message with reference - extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message with reference - extended.json index 6887c72e..71d0422f 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message with reference - extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message with reference - extended.json @@ -15,14 +15,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -31,17 +32,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -51,27 +52,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -148,14 +149,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -164,17 +166,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -184,27 +186,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -281,14 +283,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -297,17 +300,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -317,27 +320,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -428,14 +431,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -444,17 +448,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -464,27 +468,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message with reference - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message with reference - wrongly extended.json index e207c4e4..5d169d07 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message with reference - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message with reference - wrongly extended.json @@ -62,7 +62,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -84,7 +85,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -211,7 +212,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -233,7 +235,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -349,7 +351,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -371,7 +374,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -500,7 +503,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -522,7 +526,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message with reference.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message with reference.json index 60629b5b..4ff268fd 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message with reference.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message with reference.json @@ -62,7 +62,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -84,7 +85,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -211,7 +212,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -233,7 +235,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -349,7 +351,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -371,7 +374,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -500,7 +503,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -522,7 +526,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message.json index 225f0827..8e884dba 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/message.json @@ -79,7 +79,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -101,7 +102,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -228,7 +229,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -250,7 +252,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -366,7 +368,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -388,7 +391,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -517,7 +520,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -539,7 +543,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait - extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait - extended.json index df3c310d..de9b4d34 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait - extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait - extended.json @@ -23,14 +23,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -39,17 +40,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -59,27 +60,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait - wrongly extended.json index 4e472db0..a252d136 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait - wrongly extended.json @@ -70,7 +70,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -92,7 +93,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait 2 - extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait 2 - extended.json index b46b615a..9265b50d 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait 2 - extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait 2 - extended.json @@ -25,14 +25,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -41,17 +42,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -61,27 +62,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait 2 - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait 2 - wrongly extended.json index 372e9a77..291ddcb6 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait 2 - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait 2 - wrongly extended.json @@ -235,7 +235,8 @@ "then" : null, "else" : null }, - "bindingVersion" : "0.1.0" + "statusCode" : 200, + "bindingVersion" : "0.3.0" }, "ibmmq" : { "type" : "jms", diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait 2.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait 2.json index c9b26960..d35bc7af 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait 2.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait 2.json @@ -72,7 +72,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -94,7 +95,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait with reference - extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait with reference - extended.json index 13f3cffc..1f833208 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait with reference - extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait with reference - extended.json @@ -12,14 +12,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -28,17 +29,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -48,27 +49,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait with reference - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait with reference - wrongly extended.json index accf02a6..dd93c981 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait with reference - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait with reference - wrongly extended.json @@ -59,7 +59,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -81,7 +82,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait with reference.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait with reference.json index 170d3c6a..d7f20cc8 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait with reference.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait with reference.json @@ -59,7 +59,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -81,7 +82,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait.json index 6d03fca2..a14f59bb 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageTrait.json @@ -70,7 +70,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -92,7 +93,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageWithArrayPayloadArrayOfSchemas.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageWithArrayPayloadArrayOfSchemas.json index 33dc7425..e52c6d78 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageWithArrayPayloadArrayOfSchemas.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageWithArrayPayloadArrayOfSchemas.json @@ -4,7 +4,7 @@ "key": { "type": "string" }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" } }, "payload": { diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageWithArrayPayloadJsonSchema.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageWithArrayPayloadJsonSchema.json index e8c084f3..5aed86ef 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageWithArrayPayloadJsonSchema.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/channel/message/messageWithArrayPayloadJsonSchema.json @@ -4,7 +4,7 @@ "key": { "type": "string" }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" } }, "payload": { diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/components/components - extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/components/components - extended.json index d937e849..045b6393 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/components/components - extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/components/components - extended.json @@ -75,26 +75,40 @@ "amqp" : { "$ref" : "#/components/serverBindings/amqp" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, - "http" : { }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { + "bindingVersion" : "0.2.0" + }, + "http" : { + "bindingVersion" : "0.3.0" + }, "ibmmq" : { + "bindingVersion" : "0.1.0", "groupId" : "PRODCLSTR1", "ccdtQueueManagerName" : "*", "cipherSpec" : "ANY_TLS12_OR_HIGHER", "multiEndpointServer" : false, - "heartBeatInterval" : 300, - "bindingVersion" : "0.1.0" + "heartBeatInterval" : 300 + }, + "jms" : { + "bindingVersion" : "0.0.1", + "jmsConnectionFactory" : "" }, - "jms" : { }, "kafka" : { + "bindingVersion" : "0.5.0", "schemaRegistryUrl" : "https://my-schema-registry.com", - "schemaRegistryVendor" : "confluent", - "bindingVersion" : "0.4.0" + "schemaRegistryVendor" : "confluent" + }, + "mercure" : { + "bindingVersion" : "0.1.0" }, - "mercure" : { }, "mqtt" : { + "bindingVersion" : "0.1.0", "clientId" : "guest", "cleanSession" : true, "lastWill" : { @@ -103,27 +117,39 @@ "message" : "Guest gone offline.", "retain" : false }, - "keepAlive" : 60, - "bindingVersion" : "0.1.0" + "keepAlive" : 60 }, "mqtt5" : { "sessionExpiryInterval" : 60, "bindingVersion" : "0.2.0" }, - "nats" : { }, + "nats" : { + "bindingVersion" : "0.1.0" + }, "pulsar" : { - "tenant" : "contoso", + "bindingVersion" : "0.1.0", + "tenant" : "contoso" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { "bindingVersion" : "0.1.0" }, - "redis" : { }, - "sns" : { }, "solace" : { - "msgVpn" : "solace.private.net", - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.4.0", + "msgVpn" : "ProdVPN", + "clientName" : "transactions-broker" + }, + "sqs" : { + "bindingVersion" : "0.2.0" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "stomp" : { + "bindingVersion" : "0.1.0" + }, + "ws" : { + "bindingVersion" : "0.1.0" + } } }, "mqtt-stage" : { @@ -204,14 +230,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -220,17 +247,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -240,27 +267,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -337,14 +364,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -353,17 +381,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -373,27 +401,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -470,14 +498,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -486,17 +515,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -506,27 +535,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -617,14 +646,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -633,17 +663,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -653,27 +683,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -789,14 +819,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -805,17 +836,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -825,27 +856,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -922,14 +953,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -938,17 +970,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -958,27 +990,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -1055,14 +1087,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -1071,17 +1104,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -1091,27 +1124,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -1202,14 +1235,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -1218,17 +1252,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -1238,27 +1272,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -1353,14 +1387,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -1369,17 +1404,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -1389,27 +1424,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -1486,14 +1521,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -1502,17 +1538,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -1522,27 +1558,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -1619,14 +1655,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -1635,17 +1672,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -1655,27 +1692,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -1766,14 +1803,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -1782,17 +1820,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -1802,27 +1840,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -1903,6 +1941,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "is" : "routingKey", "exchange" : { "name" : "myExchange", @@ -1917,18 +1956,18 @@ "exclusive" : true, "autoDelete" : false, "vhost" : "/" - }, - "bindingVersion" : "0.2.0" + } }, "amqp1" : { "$ref" : "#/components/channelBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "destination" : "user-signup-exchg", - "destinationType" : "exchange", - "bindingVersion" : "0.0.1" + "destinationType" : "exchange" }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "topic" : "projects/your-project/topics/topic-proto-schema", "messageRetentionDuration" : "86400s", "messageStoragePolicy" : { @@ -1937,13 +1976,13 @@ "schemaSettings" : { "encoding" : "binary", "name" : "projects/your-project/schemas/message-proto" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { "$ref" : "#/components/channelBindings/http" }, "ibmmq" : { + "bindingVersion" : "0.1.0", "destinationType" : "topic", "queue" : { "objectName" : "message", @@ -1956,14 +1995,13 @@ "durablePermitted" : true, "lastMsgRetained" : true }, - "maxMsgLength" : 1024, - "bindingVersion" : "0.1.0" + "maxMsgLength" : 1024 }, "jms" : { "$ref" : "#/components/channelBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "topic" : "my-specific-topic-name", "partitions" : 20, "replicas" : 3, @@ -1988,6 +2026,7 @@ "$ref" : "#/components/channelBindings/nats" }, "pulsar" : { + "bindingVersion" : "0.1.0", "namespace" : "staging", "persistence" : "persistent", "compaction" : 1000, @@ -1997,8 +2036,7 @@ "size" : 1000 }, "ttl" : 360, - "deduplication" : false, - "bindingVersion" : "0.1.0" + "deduplication" : false }, "redis" : { "$ref" : "#/components/channelBindings/redis" @@ -2016,6 +2054,7 @@ "$ref" : "#/components/channelBindings/stomp" }, "ws" : { + "bindingVersion" : "0.1.0", "method" : "GET", "query" : { "type" : "object", @@ -2034,8 +2073,7 @@ "description" : "Authentication token" } } - }, - "bindingVersion" : "0.1.0" + } } }, "tags" : [ { @@ -2121,14 +2159,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -2137,17 +2176,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -2157,27 +2196,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -2254,14 +2293,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -2270,17 +2310,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -2290,27 +2330,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -2387,14 +2427,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -2403,17 +2444,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -2423,27 +2464,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -2534,14 +2575,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -2550,17 +2592,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -2570,27 +2612,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -2706,14 +2748,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -2722,17 +2765,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -2742,27 +2785,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -2839,14 +2882,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -2855,17 +2899,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -2875,27 +2919,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -2972,14 +3016,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -2988,17 +3033,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -3008,27 +3053,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -3119,14 +3164,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -3135,17 +3181,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -3155,27 +3201,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -3270,14 +3316,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -3286,17 +3333,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -3306,27 +3353,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -3403,14 +3450,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -3419,17 +3467,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -3439,27 +3487,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -3536,14 +3584,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -3552,17 +3601,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -3572,27 +3621,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -3683,14 +3732,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -3699,17 +3749,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -3719,27 +3769,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -3820,6 +3870,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "is" : "routingKey", "exchange" : { "name" : "myExchange", @@ -3834,18 +3885,18 @@ "exclusive" : true, "autoDelete" : false, "vhost" : "/" - }, - "bindingVersion" : "0.2.0" + } }, "amqp1" : { "$ref" : "#/components/channelBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "destination" : "user-signup-exchg", - "destinationType" : "exchange", - "bindingVersion" : "0.0.1" + "destinationType" : "exchange" }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "topic" : "projects/your-project/topics/topic-proto-schema", "messageRetentionDuration" : "86400s", "messageStoragePolicy" : { @@ -3854,13 +3905,13 @@ "schemaSettings" : { "encoding" : "binary", "name" : "projects/your-project/schemas/message-proto" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { "$ref" : "#/components/channelBindings/http" }, "ibmmq" : { + "bindingVersion" : "0.1.0", "destinationType" : "topic", "queue" : { "objectName" : "message", @@ -3873,14 +3924,13 @@ "durablePermitted" : true, "lastMsgRetained" : true }, - "maxMsgLength" : 1024, - "bindingVersion" : "0.1.0" + "maxMsgLength" : 1024 }, "jms" : { "$ref" : "#/components/channelBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "topic" : "my-specific-topic-name", "partitions" : 20, "replicas" : 3, @@ -3905,6 +3955,7 @@ "$ref" : "#/components/channelBindings/nats" }, "pulsar" : { + "bindingVersion" : "0.1.0", "namespace" : "staging", "persistence" : "persistent", "compaction" : 1000, @@ -3914,8 +3965,7 @@ "size" : 1000 }, "ttl" : 360, - "deduplication" : false, - "bindingVersion" : "0.1.0" + "deduplication" : false }, "redis" : { "$ref" : "#/components/channelBindings/redis" @@ -3933,6 +3983,7 @@ "$ref" : "#/components/channelBindings/stomp" }, "ws" : { + "bindingVersion" : "0.1.0", "method" : "GET", "query" : { "type" : "object", @@ -3951,8 +4002,7 @@ "description" : "Authentication token" } } - }, - "bindingVersion" : "0.1.0" + } } }, "tags" : [ { @@ -4011,6 +4061,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -4020,8 +4071,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -4033,7 +4083,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -4046,8 +4096,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -4056,7 +4105,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -4070,16 +4119,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -4091,28 +4140,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -4151,6 +4193,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -4160,8 +4203,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -4173,7 +4215,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -4186,8 +4228,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -4196,7 +4237,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -4210,16 +4251,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -4231,28 +4272,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -4290,6 +4324,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -4299,8 +4334,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -4312,7 +4346,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -4325,8 +4359,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -4335,7 +4368,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -4349,16 +4382,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -4370,28 +4403,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -4460,6 +4486,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -4469,8 +4496,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -4482,7 +4508,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -4495,8 +4521,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -4505,7 +4530,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -4519,16 +4544,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -4540,28 +4565,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -4600,6 +4618,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -4609,8 +4628,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -4622,7 +4640,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -4635,8 +4653,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -4645,7 +4662,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -4659,16 +4676,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -4680,28 +4697,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -4739,6 +4749,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -4748,8 +4759,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -4761,7 +4771,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -4774,8 +4784,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -4784,7 +4793,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -4798,16 +4807,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -4819,28 +4828,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -4950,14 +4952,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -4966,17 +4969,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -4986,27 +4989,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -5083,14 +5086,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -5099,17 +5103,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -5119,27 +5123,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -5216,14 +5220,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -5232,17 +5237,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -5252,27 +5257,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -5363,14 +5368,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -5379,17 +5385,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -5399,27 +5405,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -5535,14 +5541,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -5551,17 +5558,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -5571,27 +5578,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -5668,14 +5675,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -5684,17 +5692,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -5704,27 +5712,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -5801,14 +5809,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -5817,17 +5826,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -5837,27 +5846,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -5948,14 +5957,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -5964,17 +5974,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -5984,27 +5994,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -6099,14 +6109,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -6115,17 +6126,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -6135,27 +6146,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -6232,14 +6243,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -6248,17 +6260,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -6268,27 +6280,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -6365,14 +6377,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -6381,17 +6394,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -6401,27 +6414,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -6512,14 +6525,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -6528,17 +6542,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -6548,27 +6562,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -6793,6 +6807,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -6802,8 +6817,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -6815,7 +6829,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -6828,8 +6842,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -6838,7 +6851,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -6852,16 +6865,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -6873,28 +6886,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -6933,6 +6939,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -6942,8 +6949,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -6955,7 +6961,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -6968,8 +6974,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -6978,7 +6983,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -6992,16 +6997,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -7013,28 +7018,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -7077,14 +7075,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -7093,17 +7092,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -7113,27 +7112,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -7224,14 +7223,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -7240,17 +7240,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -7260,27 +7260,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -7359,14 +7359,15 @@ "description" : "A longer description", "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -7375,17 +7376,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -7395,27 +7396,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" @@ -7488,26 +7489,40 @@ "amqp" : { "$ref" : "#/components/serverBindings/amqp" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, - "http" : { }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { + "bindingVersion" : "0.2.0" + }, + "http" : { + "bindingVersion" : "0.3.0" + }, "ibmmq" : { + "bindingVersion" : "0.1.0", "groupId" : "PRODCLSTR1", "ccdtQueueManagerName" : "*", "cipherSpec" : "ANY_TLS12_OR_HIGHER", "multiEndpointServer" : false, - "heartBeatInterval" : 300, - "bindingVersion" : "0.1.0" + "heartBeatInterval" : 300 + }, + "jms" : { + "bindingVersion" : "0.0.1", + "jmsConnectionFactory" : "" }, - "jms" : { }, "kafka" : { + "bindingVersion" : "0.5.0", "schemaRegistryUrl" : "https://my-schema-registry.com", - "schemaRegistryVendor" : "confluent", - "bindingVersion" : "0.4.0" + "schemaRegistryVendor" : "confluent" + }, + "mercure" : { + "bindingVersion" : "0.1.0" }, - "mercure" : { }, "mqtt" : { + "bindingVersion" : "0.1.0", "clientId" : "guest", "cleanSession" : true, "lastWill" : { @@ -7516,30 +7531,43 @@ "message" : "Guest gone offline.", "retain" : false }, - "keepAlive" : 60, - "bindingVersion" : "0.1.0" + "keepAlive" : 60 }, "mqtt5" : { "sessionExpiryInterval" : 60, "bindingVersion" : "0.2.0" }, - "nats" : { }, + "nats" : { + "bindingVersion" : "0.1.0" + }, "pulsar" : { - "tenant" : "contoso", + "bindingVersion" : "0.1.0", + "tenant" : "contoso" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { "bindingVersion" : "0.1.0" }, - "redis" : { }, - "sns" : { }, "solace" : { - "msgVpn" : "solace.private.net", - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.4.0", + "msgVpn" : "ProdVPN", + "clientName" : "transactions-broker" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "sqs" : { + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" + }, + "ws" : { + "bindingVersion" : "0.1.0" + } }, "channelBindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "is" : "routingKey", "exchange" : { "name" : "myExchange", @@ -7554,18 +7582,18 @@ "exclusive" : true, "autoDelete" : false, "vhost" : "/" - }, - "bindingVersion" : "0.2.0" + } }, "amqp1" : { "$ref" : "#/components/channelBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "destination" : "user-signup-exchg", - "destinationType" : "exchange", - "bindingVersion" : "0.0.1" + "destinationType" : "exchange" }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "topic" : "projects/your-project/topics/topic-proto-schema", "messageRetentionDuration" : "86400s", "messageStoragePolicy" : { @@ -7574,13 +7602,13 @@ "schemaSettings" : { "encoding" : "binary", "name" : "projects/your-project/schemas/message-proto" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { "$ref" : "#/components/channelBindings/http" }, "ibmmq" : { + "bindingVersion" : "0.1.0", "destinationType" : "topic", "queue" : { "objectName" : "message", @@ -7593,14 +7621,13 @@ "durablePermitted" : true, "lastMsgRetained" : true }, - "maxMsgLength" : 1024, - "bindingVersion" : "0.1.0" + "maxMsgLength" : 1024 }, "jms" : { "$ref" : "#/components/channelBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "topic" : "my-specific-topic-name", "partitions" : 20, "replicas" : 3, @@ -7625,6 +7652,7 @@ "$ref" : "#/components/channelBindings/nats" }, "pulsar" : { + "bindingVersion" : "0.1.0", "namespace" : "staging", "persistence" : "persistent", "compaction" : 1000, @@ -7634,8 +7662,7 @@ "size" : 1000 }, "ttl" : 360, - "deduplication" : false, - "bindingVersion" : "0.1.0" + "deduplication" : false }, "redis" : { "$ref" : "#/components/channelBindings/redis" @@ -7653,6 +7680,7 @@ "$ref" : "#/components/channelBindings/stomp" }, "ws" : { + "bindingVersion" : "0.1.0", "method" : "GET", "query" : { "type" : "object", @@ -7671,12 +7699,12 @@ "description" : "Authentication token" } } - }, - "bindingVersion" : "0.1.0" + } } }, "operationBindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -7686,8 +7714,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -7699,7 +7726,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -7712,8 +7739,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -7722,7 +7748,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -7736,16 +7762,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -7757,28 +7783,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -7792,14 +7811,15 @@ }, "messageBindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0" + "messageType" : "user.signup" }, "amqp1" : { "$ref" : "#/components/messageBindings/amqp1" }, "anypointmq" : { + "bindingVersion" : "0.0.1", "headers" : { "type" : "object", "properties" : { @@ -7808,17 +7828,17 @@ "description" : "Correlation ID set by application" } } - }, - "bindingVersion" : "0.0.1" + } }, "googlepubsub" : { + "bindingVersion" : "0.1.0", "schema" : { "name" : "projects/your-project/schemas/message-avro", "type" : "avro" - }, - "bindingVersion" : "0.1.0" + } }, "http" : { + "bindingVersion" : "0.3.0", "headers" : { "type" : "object", "properties" : { @@ -7828,27 +7848,27 @@ } } }, - "bindingVersion" : "0.1.0" + "statusCode" : 200 }, "ibmmq" : { + "bindingVersion" : "0.1.0", "type" : "jms", "headers" : "Content-Type: application/json", "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0" + "expiry" : 0 }, "jms" : { "$ref" : "#/components/messageBindings/jms" }, "kafka" : { + "bindingVersion" : "0.5.0", "key" : { "type" : "string", "enum" : [ "myKey" ] }, "schemaIdLocation" : "payload", "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0" + "schemaLookupStrategy" : "TopicIdStrategy" }, "mercure" : { "$ref" : "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/components/components - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/components/components - wrongly extended.json index dcab9a3a..1181d8e3 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/components/components - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/components/components - wrongly extended.json @@ -288,7 +288,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -437,7 +437,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -575,7 +575,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -726,7 +726,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -891,7 +891,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1040,7 +1040,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1178,7 +1178,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1329,7 +1329,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1472,7 +1472,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1621,7 +1621,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1759,7 +1759,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1910,7 +1910,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -2055,7 +2055,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" @@ -2282,7 +2282,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -2431,7 +2431,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -2569,7 +2569,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -2720,7 +2720,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -2885,7 +2885,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -3034,7 +3034,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -3172,7 +3172,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -3323,7 +3323,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -3466,7 +3466,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -3615,7 +3615,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -3753,7 +3753,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -3904,7 +3904,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -4049,7 +4049,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" @@ -4243,7 +4243,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -4407,7 +4407,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -4570,7 +4570,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -4771,7 +4771,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -4935,7 +4935,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -5098,7 +5098,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -5360,7 +5360,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -5509,7 +5509,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -5647,7 +5647,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -5798,7 +5798,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -5963,7 +5963,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -6112,7 +6112,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -6250,7 +6250,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -6401,7 +6401,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -6544,7 +6544,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -6693,7 +6693,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -6831,7 +6831,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -6982,7 +6982,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -7268,7 +7268,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -7431,7 +7431,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -7598,7 +7598,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -7749,7 +7749,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -7887,7 +7887,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -7966,7 +7966,7 @@ "kafka": { "schemaRegistryUrl": "https://my-schema-registry.com", "schemaRegistryVendor": "confluent", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -8087,7 +8087,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" @@ -8219,7 +8219,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -8348,7 +8348,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/components/components.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/components/components.json index acb016d5..6bd1720b 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/components/components.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/components/components.json @@ -96,7 +96,7 @@ "kafka" : { "schemaRegistryUrl" : "https://my-schema-registry.com", "schemaRegistryVendor" : "confluent", - "bindingVersion" : "0.4.0" + "bindingVersion" : "0.5.0" }, "mercure" : { }, "mqtt" : { @@ -123,8 +123,9 @@ "redis" : { }, "sns" : { }, "solace" : { - "msgVpn" : "solace.private.net", - "bindingVersion" : "0.3.0" + "clientName": "transactions-broker", + "msgVpn": "ProdVPN", + "bindingVersion": "0.4.0" }, "sqs" : { }, "stomp" : { }, @@ -266,7 +267,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -288,7 +290,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -415,7 +417,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -437,7 +440,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -553,7 +556,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -575,7 +579,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -704,7 +708,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -726,7 +731,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -869,7 +874,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -891,7 +897,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1018,7 +1024,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1040,7 +1047,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1156,7 +1163,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1178,7 +1186,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1307,7 +1315,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1329,7 +1338,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1450,7 +1459,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1472,7 +1482,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1599,7 +1609,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1621,7 +1632,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1737,7 +1748,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1759,7 +1771,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -1888,7 +1900,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -1910,7 +1923,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -2055,7 +2068,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" @@ -2260,7 +2273,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -2282,7 +2296,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -2409,7 +2423,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -2431,7 +2446,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -2547,7 +2562,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -2569,7 +2585,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -2698,7 +2714,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -2720,7 +2737,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -2863,7 +2880,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -2885,7 +2903,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -3012,7 +3030,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -3034,7 +3053,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -3150,7 +3169,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -3172,7 +3192,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -3301,7 +3321,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -3323,7 +3344,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -3444,7 +3465,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -3466,7 +3488,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -3593,7 +3615,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -3615,7 +3638,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -3731,7 +3754,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -3753,7 +3777,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -3882,7 +3906,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -3904,7 +3929,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -4049,7 +4074,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" @@ -4206,7 +4231,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -4222,7 +4246,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -4243,7 +4267,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -4274,31 +4298,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -4370,7 +4384,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -4386,7 +4399,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -4407,7 +4420,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -4438,31 +4451,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -4533,7 +4536,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -4549,7 +4551,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -4570,7 +4572,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -4601,31 +4603,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -4734,7 +4726,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -4750,7 +4741,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -4771,7 +4762,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -4802,31 +4793,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -4898,7 +4879,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -4914,7 +4894,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -4935,7 +4915,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -4966,31 +4946,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -5061,7 +5031,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -5077,7 +5046,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -5098,7 +5067,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -5129,31 +5098,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -5324,7 +5283,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -5346,7 +5306,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -5473,7 +5433,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -5495,7 +5456,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -5611,7 +5572,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -5633,7 +5595,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -5762,7 +5724,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -5784,7 +5747,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -5927,7 +5890,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -5949,7 +5913,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -6076,7 +6040,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -6098,7 +6063,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -6214,7 +6179,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -6236,7 +6202,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -6365,7 +6331,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -6387,7 +6354,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -6508,7 +6475,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -6530,7 +6498,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -6657,7 +6625,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -6679,7 +6648,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -6795,7 +6764,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -6817,7 +6787,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -6946,7 +6916,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -6968,7 +6939,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -7217,7 +7188,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -7233,7 +7203,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -7254,7 +7224,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -7285,31 +7255,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -7380,7 +7340,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -7396,7 +7355,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -7417,7 +7376,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -7448,31 +7407,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -7562,7 +7511,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -7584,7 +7534,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -7713,7 +7663,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -7735,7 +7686,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -7851,7 +7802,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -7873,7 +7825,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" @@ -7952,7 +7904,7 @@ "kafka": { "schemaRegistryUrl": "https://my-schema-registry.com", "schemaRegistryVendor": "confluent", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { @@ -7979,8 +7931,9 @@ "redis": {}, "sns": {}, "solace": { - "msgVpn": "solace.private.net", - "bindingVersion": "0.3.0" + "clientName": "transactions-broker", + "msgVpn": "ProdVPN", + "bindingVersion": "0.4.0" }, "sqs": {}, "stomp": {}, @@ -8073,7 +8026,7 @@ "delete.retention.ms": 86400000, "max.message.bytes": 1048588 }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/channelBindings/mercure" @@ -8168,7 +8121,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -8184,7 +8136,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -8205,7 +8157,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -8236,31 +8188,21 @@ { "destinationType": "queue", "queue": { - "name": "CreatedHREvents", + "name": "sampleQueue", "topicSubscriptions": [ - "person/*/created" + "samples/*" ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" + "accessType": "nonexclusive" } }, { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "destinationType": "topic", + "topicSubscriptions": [ + "samples/*" + ] } ], - "bindingVersion": "0.3.0" + "bindingVersion": "0.4.0" }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -8312,7 +8254,8 @@ } } }, - "bindingVersion": "0.1.0" + "statusCode" : 200, + "bindingVersion": "0.3.0" }, "ibmmq": { "type": "jms", @@ -8334,7 +8277,7 @@ "schemaIdLocation": "payload", "schemaIdPayloadEncoding": "apicurio-new", "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/messageBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operation - extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operation - extended.json index 76102126..0c46de6e 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operation - extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operation - extended.json @@ -29,6 +29,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -38,8 +39,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -51,7 +51,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -64,8 +64,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -74,7 +73,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -88,16 +87,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -109,28 +108,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -169,6 +161,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -178,8 +171,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -191,7 +183,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -204,8 +196,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -214,7 +205,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -228,16 +219,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -249,28 +240,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -308,6 +292,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -317,8 +302,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -330,7 +314,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -343,8 +327,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -353,7 +336,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -367,16 +350,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -388,28 +371,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operation - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operation - wrongly extended.json index f084a322..16e0ae0d 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operation - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operation - wrongly extended.json @@ -59,7 +59,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -75,7 +74,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -96,7 +95,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -123,35 +122,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -223,7 +208,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -239,7 +223,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -260,7 +244,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -287,35 +271,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -386,7 +356,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -402,7 +371,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -423,7 +392,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -450,35 +419,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operation with reference - extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operation with reference - extended.json index 6526f625..18e66024 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operation with reference - extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operation with reference - extended.json @@ -28,6 +28,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -37,8 +38,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -50,7 +50,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -63,8 +63,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -73,7 +72,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -87,16 +86,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -108,28 +107,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -168,6 +160,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -177,8 +170,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -190,7 +182,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -203,8 +195,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -213,7 +204,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -227,16 +218,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -248,28 +239,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" @@ -307,6 +291,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -316,8 +301,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -329,7 +313,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -342,8 +326,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -352,7 +335,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -366,16 +349,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -387,28 +370,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operation with reference - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operation with reference - wrongly extended.json index b7e9d0fb..3977d207 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operation with reference - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operation with reference - wrongly extended.json @@ -58,7 +58,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -74,7 +73,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -95,7 +94,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -122,35 +121,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -222,7 +207,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -238,7 +222,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -259,7 +243,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -385,7 +369,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -401,7 +384,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -422,7 +405,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operation with reference.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operation with reference.json index 52cc7196..f8090f32 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operation with reference.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operation with reference.json @@ -58,7 +58,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -74,7 +73,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -95,7 +94,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -122,35 +121,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -222,7 +207,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -238,7 +222,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -259,7 +243,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -286,35 +270,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -385,7 +355,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -401,7 +370,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -422,7 +391,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -449,35 +418,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operation.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operation.json index 1eb50625..525766ba 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operation.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operation.json @@ -59,7 +59,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -75,7 +74,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -96,7 +95,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -123,35 +122,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -223,7 +208,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -239,7 +223,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -260,7 +244,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -287,35 +271,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" @@ -386,7 +356,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -402,7 +371,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -423,7 +392,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -450,35 +419,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operationTrait - extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operationTrait - extended.json index b12fa47a..31fc0894 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operationTrait - extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operationTrait - extended.json @@ -25,6 +25,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -34,8 +35,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -47,7 +47,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -60,8 +60,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -70,7 +69,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -84,16 +83,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -105,28 +104,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operationTrait - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operationTrait - wrongly extended.json index c9e7b2f4..1712ed09 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operationTrait - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operationTrait - wrongly extended.json @@ -57,7 +57,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -73,7 +72,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -94,7 +93,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -121,35 +120,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operationTrait with reference - extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operationTrait with reference - extended.json index 4cb84973..ac0b9156 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operationTrait with reference - extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operationTrait with reference - extended.json @@ -24,6 +24,7 @@ }, "bindings" : { "amqp" : { + "bindingVersion" : "0.2.0", "expiration" : 100000, "userId" : "guest", "cc" : [ "user.logs" ], @@ -33,8 +34,7 @@ "bcc" : [ "external.audit" ], "replyTo" : "user.signedup", "timestamp" : true, - "ack" : false, - "bindingVersion" : "0.2.0" + "ack" : false }, "amqp1" : { "$ref" : "#/components/operationBindings/amqp1" @@ -46,7 +46,7 @@ "$ref" : "#/components/operationBindings/googlepubsub" }, "http" : { - "type" : "request", + "bindingVersion" : "0.3.0", "method" : "GET", "query" : { "type" : "object", @@ -59,8 +59,7 @@ } }, "additionalProperties" : false - }, - "bindingVersion" : "0.1.0" + } }, "ibmmq" : { "$ref" : "#/components/operationBindings/ibmmq" @@ -69,7 +68,7 @@ "$ref" : "#/components/operationBindings/jms" }, "kafka" : { - "bindingVersion" : "0.4.0", + "bindingVersion" : "0.5.0", "groupId" : { "type" : "string", "enum" : [ "myGroupId" ] @@ -83,16 +82,16 @@ "$ref" : "#/components/operationBindings/mercure" }, "mqtt" : { + "bindingVersion" : "0.1.0", "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0" + "retain" : true }, "mqtt5" : { "$ref" : "#/components/operationBindings/mqtt5" }, "nats" : { - "queue" : "messages", - "bindingVersion" : "0.1.0" + "bindingVersion" : "0.1.0", + "queue" : "messages" }, "pulsar" : { "$ref" : "#/components/operationBindings/pulsar" @@ -104,28 +103,21 @@ "$ref" : "#/components/operationBindings/sns" }, "solace" : { + "dmqEligible" : false, + "bindingVersion" : "0.4.0", "destinations" : [ { "destinationType" : "queue", "deliveryMode" : "persistent", "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } }, { - "destinationType" : "queue", + "destinationType" : "topic", "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0" + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs" : { "$ref" : "#/components/operationBindings/sqs" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operationTrait with reference - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operationTrait with reference - wrongly extended.json index 36426512..7dfc2277 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operationTrait with reference - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operationTrait with reference - wrongly extended.json @@ -56,7 +56,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -72,7 +71,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -93,7 +92,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -120,35 +119,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operationTrait with reference.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operationTrait with reference.json index b5ba2703..94eab5c0 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operationTrait with reference.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operationTrait with reference.json @@ -56,7 +56,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -72,7 +71,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -93,7 +92,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -120,35 +119,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operationTrait.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operationTrait.json index 1e8b5ed2..6ccf697e 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operationTrait.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/operation/operationTrait.json @@ -57,7 +57,6 @@ "$ref": "#/components/operationBindings/googlepubsub" }, "http": { - "type": "request", "method": "GET", "query": { "type": "object", @@ -73,7 +72,7 @@ }, "additionalProperties": false }, - "bindingVersion": "0.1.0" + "bindingVersion": "0.3.0" }, "ibmmq": { "$ref": "#/components/operationBindings/ibmmq" @@ -94,7 +93,7 @@ "myClientId" ] }, - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": { "$ref": "#/components/operationBindings/mercure" @@ -121,35 +120,21 @@ "$ref": "#/components/operationBindings/sns" }, "solace": { - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } + "dmqEligible" : false, + "bindingVersion" : "0.4.0", + "destinations" : [ { + "destinationType" : "queue", + "deliveryMode" : "persistent", + "queue" : { + "name" : "sampleQueue", + "topicSubscriptions" : [ "samples/*" ], + "accessType" : "nonexclusive" } - ], - "bindingVersion": "0.3.0" + }, { + "destinationType" : "topic", + "deliveryMode" : "persistent", + "topicSubscriptions" : [ "samples/*" ] + } ] }, "sqs": { "$ref": "#/components/operationBindings/sqs" diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/server/server - extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/server/server - extended.json index 8345f9cf..10593fa7 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/server/server - extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/server/server - extended.json @@ -41,26 +41,40 @@ "amqp" : { "$ref" : "#/components/serverBindings/amqp" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, - "http" : { }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { + "bindingVersion" : "0.2.0" + }, + "http" : { + "bindingVersion" : "0.3.0" + }, "ibmmq" : { + "bindingVersion" : "0.1.0", "groupId" : "PRODCLSTR1", "ccdtQueueManagerName" : "*", "cipherSpec" : "ANY_TLS12_OR_HIGHER", "multiEndpointServer" : false, - "heartBeatInterval" : 300, - "bindingVersion" : "0.1.0" + "heartBeatInterval" : 300 + }, + "jms" : { + "bindingVersion" : "0.0.1", + "jmsConnectionFactory" : "" }, - "jms" : { }, "kafka" : { + "bindingVersion" : "0.5.0", "schemaRegistryUrl" : "https://my-schema-registry.com", - "schemaRegistryVendor" : "confluent", - "bindingVersion" : "0.4.0" + "schemaRegistryVendor" : "confluent" + }, + "mercure" : { + "bindingVersion" : "0.1.0" }, - "mercure" : { }, "mqtt" : { + "bindingVersion" : "0.1.0", "clientId" : "guest", "cleanSession" : true, "lastWill" : { @@ -69,27 +83,39 @@ "message" : "Guest gone offline.", "retain" : false }, - "keepAlive" : 60, - "bindingVersion" : "0.1.0" + "keepAlive" : 60 }, "mqtt5" : { "sessionExpiryInterval" : 60, "bindingVersion" : "0.2.0" }, - "nats" : { }, + "nats" : { + "bindingVersion" : "0.1.0" + }, "pulsar" : { - "tenant" : "contoso", + "bindingVersion" : "0.1.0", + "tenant" : "contoso" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { "bindingVersion" : "0.1.0" }, - "redis" : { }, - "sns" : { }, "solace" : { - "msgVpn" : "solace.private.net", - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.4.0", + "msgVpn" : "ProdVPN", + "clientName" : "transactions-broker" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "sqs" : { + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" + }, + "ws" : { + "bindingVersion" : "0.1.0" + } }, "x-number" : 0, "x-string" : "", diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/server/server - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/server/server - wrongly extended.json index 7abed521..28e439a5 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/server/server - wrongly extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/server/server - wrongly extended.json @@ -66,7 +66,7 @@ "kafka": { "schemaRegistryUrl": "https://my-schema-registry.com", "schemaRegistryVendor": "confluent", - "bindingVersion": "0.4.0" + "bindingVersion": "0.5.0" }, "mercure": {}, "mqtt": { diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/server/server with reference - extended.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/server/server with reference - extended.json index 544037d4..1eac37d6 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/server/server with reference - extended.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/server/server with reference - extended.json @@ -44,26 +44,40 @@ "amqp" : { "$ref" : "#/components/serverBindings/amqp" }, - "amqp1" : { }, - "anypointmq" : { }, - "googlepubsub" : { }, - "http" : { }, + "amqp1" : { + "bindingVersion" : "0.1.0" + }, + "anypointmq" : { + "bindingVersion" : "0.0.1" + }, + "googlepubsub" : { + "bindingVersion" : "0.2.0" + }, + "http" : { + "bindingVersion" : "0.3.0" + }, "ibmmq" : { + "bindingVersion" : "0.1.0", "groupId" : "PRODCLSTR1", "ccdtQueueManagerName" : "*", "cipherSpec" : "ANY_TLS12_OR_HIGHER", "multiEndpointServer" : false, - "heartBeatInterval" : 300, - "bindingVersion" : "0.1.0" + "heartBeatInterval" : 300 + }, + "jms" : { + "bindingVersion" : "0.0.1", + "jmsConnectionFactory" : "" }, - "jms" : { }, "kafka" : { + "bindingVersion" : "0.5.0", "schemaRegistryUrl" : "https://my-schema-registry.com", - "schemaRegistryVendor" : "confluent", - "bindingVersion" : "0.4.0" + "schemaRegistryVendor" : "confluent" + }, + "mercure" : { + "bindingVersion" : "0.1.0" }, - "mercure" : { }, "mqtt" : { + "bindingVersion" : "0.1.0", "clientId" : "guest", "cleanSession" : true, "lastWill" : { @@ -72,27 +86,39 @@ "message" : "Guest gone offline.", "retain" : false }, - "keepAlive" : 60, - "bindingVersion" : "0.1.0" + "keepAlive" : 60 }, "mqtt5" : { "sessionExpiryInterval" : 60, "bindingVersion" : "0.2.0" }, - "nats" : { }, + "nats" : { + "bindingVersion" : "0.1.0" + }, "pulsar" : { - "tenant" : "contoso", + "bindingVersion" : "0.1.0", + "tenant" : "contoso" + }, + "redis" : { + "bindingVersion" : "0.1.0" + }, + "sns" : { "bindingVersion" : "0.1.0" }, - "redis" : { }, - "sns" : { }, "solace" : { - "msgVpn" : "solace.private.net", - "bindingVersion" : "0.3.0" + "bindingVersion" : "0.4.0", + "msgVpn" : "ProdVPN", + "clientName" : "transactions-broker" }, - "sqs" : { }, - "stomp" : { }, - "ws" : { } + "sqs" : { + "bindingVersion" : "0.2.0" + }, + "stomp" : { + "bindingVersion" : "0.1.0" + }, + "ws" : { + "bindingVersion" : "0.1.0" + } }, "x-number" : 0, "x-string" : "", diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/server/server with reference.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/server/server with reference.json index 3dffe38d..2dd20af6 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/server/server with reference.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/server/server with reference.json @@ -65,7 +65,7 @@ "kafka" : { "schemaRegistryUrl" : "https://my-schema-registry.com", "schemaRegistryVendor" : "confluent", - "bindingVersion" : "0.4.0" + "bindingVersion" : "0.5.0" }, "mercure" : { }, "mqtt" : { @@ -92,8 +92,9 @@ "redis" : { }, "sns" : { }, "solace" : { - "msgVpn" : "solace.private.net", - "bindingVersion" : "0.3.0" + "clientName": "transactions-broker", + "msgVpn": "ProdVPN", + "bindingVersion": "0.4.0" }, "sqs" : { }, "stomp" : { }, diff --git a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/server/server.json b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/server/server.json index 387253d0..062e666f 100644 --- a/asyncapi-core/src/test/resources/json/v3/3.0.0/model/server/server.json +++ b/asyncapi-core/src/test/resources/json/v3/3.0.0/model/server/server.json @@ -62,7 +62,7 @@ "kafka" : { "schemaRegistryUrl" : "https://my-schema-registry.com", "schemaRegistryVendor" : "confluent", - "bindingVersion" : "0.4.0" + "bindingVersion" : "0.5.0" }, "mercure" : { }, "mqtt" : { @@ -89,8 +89,9 @@ "redis" : { }, "sns" : { }, "solace" : { - "msgVpn" : "solace.private.net", - "bindingVersion" : "0.3.0" + "clientName": "transactions-broker", + "msgVpn": "ProdVPN", + "bindingVersion": "0.4.0" }, "sqs" : { }, "stomp" : { }, diff --git a/asyncapi-core/src/test/resources/json/v3/binding/channel/amqp/amqpChannelBinding - extended.json b/asyncapi-core/src/test/resources/json/v3/binding/channel/amqp/amqpChannelBinding - extended.json deleted file mode 100644 index 61ef0ad3..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/channel/amqp/amqpChannelBinding - extended.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "is" : "routingKey", - "exchange" : { - "name" : "myExchange", - "type" : "topic", - "durable" : true, - "autoDelete" : false, - "vhost" : "/" - }, - "queue" : { - "name" : "my-queue-name", - "durable" : true, - "exclusive" : true, - "autoDelete" : false, - "vhost" : "/" - }, - "bindingVersion" : "0.2.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/channel/amqp/amqpChannelBinding - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/binding/channel/amqp/amqpChannelBinding - wrongly extended.json deleted file mode 100644 index a6433eb4..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/channel/amqp/amqpChannelBinding - wrongly extended.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "is": "routingKey", - "queue": { - "name": "my-queue-name", - "durable": true, - "exclusive": true, - "autoDelete": false, - "vhost": "/" - }, - "exchange": { - "name": "myExchange", - "type": "topic", - "durable": true, - "autoDelete": false, - "vhost": "/" - }, - "bindingVersion": "0.2.0", - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - }, - "ext-number": 1 -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/channel/amqp/amqpChannelBinding.json b/asyncapi-core/src/test/resources/json/v3/binding/channel/amqp/amqpChannelBinding.json deleted file mode 100644 index e91cacb2..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/channel/amqp/amqpChannelBinding.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "is": "routingKey", - "queue": { - "name": "my-queue-name", - "durable": true, - "exclusive": true, - "autoDelete": false, - "vhost": "/" - }, - "exchange": { - "name": "myExchange", - "type": "topic", - "durable": true, - "autoDelete": false, - "vhost": "/" - }, - "bindingVersion": "0.2.0" -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/channel/anypoint/anypointMQChannelBinding - extended.json b/asyncapi-core/src/test/resources/json/v3/binding/channel/anypoint/anypointMQChannelBinding - extended.json deleted file mode 100644 index 4a27096c..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/channel/anypoint/anypointMQChannelBinding - extended.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "destination" : "user-signup-exchg", - "destinationType" : "exchange", - "bindingVersion" : "0.0.1", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/channel/anypoint/anypointMQChannelBinding - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/binding/channel/anypoint/anypointMQChannelBinding - wrongly extended.json deleted file mode 100644 index 2b92a333..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/channel/anypoint/anypointMQChannelBinding - wrongly extended.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "destination": "user-signup-exchg", - "destinationType": "exchange", - "bindingVersion": "0.0.1", - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - }, - "ext-number": 1 -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/channel/anypoint/anypointMQChannelBinding.json b/asyncapi-core/src/test/resources/json/v3/binding/channel/anypoint/anypointMQChannelBinding.json deleted file mode 100644 index c5d7598b..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/channel/anypoint/anypointMQChannelBinding.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "destination": "user-signup-exchg", - "destinationType": "exchange", - "bindingVersion": "0.0.1" -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/channel/googlepubsub/googlePubSubChannelBinding - extended.json b/asyncapi-core/src/test/resources/json/v3/binding/channel/googlepubsub/googlePubSubChannelBinding - extended.json deleted file mode 100644 index 2d00b527..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/channel/googlepubsub/googlePubSubChannelBinding - extended.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "topic" : "projects/your-project/topics/topic-proto-schema", - "messageRetentionDuration" : "86400s", - "messageStoragePolicy" : { - "allowedPersistenceRegions" : [ "us-central1", "us-central2", "us-east1", "us-east4", "us-east5", "us-east7", "us-south1", "us-west1", "us-west2", "us-west3", "us-west4" ] - }, - "schemaSettings" : { - "encoding" : "binary", - "name" : "projects/your-project/schemas/message-proto" - }, - "bindingVersion" : "0.1.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/channel/googlepubsub/googlePubSubChannelBinding - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/binding/channel/googlepubsub/googlePubSubChannelBinding - wrongly extended.json deleted file mode 100644 index 374dbd31..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/channel/googlepubsub/googlePubSubChannelBinding - wrongly extended.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "topic": "projects/your-project/topics/topic-proto-schema", - "messageRetentionDuration": "86400s", - "messageStoragePolicy": { - "allowedPersistenceRegions": [ - "us-central1", - "us-central2", - "us-east1", - "us-east4", - "us-east5", - "us-east7", - "us-south1", - "us-west1", - "us-west2", - "us-west3", - "us-west4" - ] - }, - "schemaSettings": { - "encoding": "binary", - "name": "projects/your-project/schemas/message-proto" - }, - "bindingVersion": "0.1.0", - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - }, - "ext-number": 1 -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/channel/googlepubsub/googlePubSubChannelBinding.json b/asyncapi-core/src/test/resources/json/v3/binding/channel/googlepubsub/googlePubSubChannelBinding.json deleted file mode 100644 index fb9b3d3e..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/channel/googlepubsub/googlePubSubChannelBinding.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "topic": "projects/your-project/topics/topic-proto-schema", - "messageRetentionDuration": "86400s", - "messageStoragePolicy": { - "allowedPersistenceRegions": [ - "us-central1", - "us-central2", - "us-east1", - "us-east4", - "us-east5", - "us-east7", - "us-south1", - "us-west1", - "us-west2", - "us-west3", - "us-west4" - ] - }, - "schemaSettings": { - "encoding": "binary", - "name": "projects/your-project/schemas/message-proto" - }, - "bindingVersion": "0.1.0" -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/channel/ibmmq/ibmMQChannelBinding - extended.json b/asyncapi-core/src/test/resources/json/v3/binding/channel/ibmmq/ibmMQChannelBinding - extended.json deleted file mode 100644 index a0f4e987..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/channel/ibmmq/ibmMQChannelBinding - extended.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "destinationType" : "topic", - "queue" : { - "objectName" : "message", - "isPartitioned" : false, - "exclusive" : true - }, - "topic" : { - "string" : "messages", - "objectName" : "message", - "durablePermitted" : true, - "lastMsgRetained" : true - }, - "maxMsgLength" : 1024, - "bindingVersion" : "0.1.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/channel/ibmmq/ibmMQChannelBinding - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/binding/channel/ibmmq/ibmMQChannelBinding - wrongly extended.json deleted file mode 100644 index deff6b3f..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/channel/ibmmq/ibmMQChannelBinding - wrongly extended.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "destinationType": "topic", - "queue": { - "objectName": "message", - "isPartitioned": false, - "exclusive": true - }, - "topic": { - "string": "messages", - "objectName": "message", - "durablePermitted": true, - "lastMsgRetained": true - }, - "maxMsgLength": 1024, - "bindingVersion": "0.1.0", - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - }, - "ext-number": 1 -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/channel/ibmmq/ibmMQChannelBinding.json b/asyncapi-core/src/test/resources/json/v3/binding/channel/ibmmq/ibmMQChannelBinding.json deleted file mode 100644 index 7ebdae40..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/channel/ibmmq/ibmMQChannelBinding.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "destinationType": "topic", - "queue": { - "objectName": "message", - "isPartitioned": false, - "exclusive": true - }, - "topic": { - "string": "messages", - "objectName": "message", - "durablePermitted": true, - "lastMsgRetained": true - }, - "maxMsgLength": 1024, - "bindingVersion": "0.1.0" -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/channel/kafka/kafkaChannelBinding - extended.json b/asyncapi-core/src/test/resources/json/v3/binding/channel/kafka/kafkaChannelBinding - extended.json deleted file mode 100644 index 1b79a719..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/channel/kafka/kafkaChannelBinding - extended.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "bindingVersion" : "0.4.0", - "topic" : "my-specific-topic-name", - "partitions" : 20, - "replicas" : 3, - "topicConfiguration" : { - "cleanup.policy" : [ "delete", "compact" ], - "retention.ms" : 604800000, - "retention.bytes" : 1000000000, - "delete.retention.ms" : 86400000, - "max.message.bytes" : 1048588 - }, - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/channel/kafka/kafkaChannelBinding - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/binding/channel/kafka/kafkaChannelBinding - wrongly extended.json deleted file mode 100644 index 8373d9c4..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/channel/kafka/kafkaChannelBinding - wrongly extended.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "topic": "my-specific-topic-name", - "partitions": 20, - "replicas": 3, - "topicConfiguration": { - "cleanup.policy": [ - "delete", - "compact" - ], - "retention.ms": 604800000, - "retention.bytes": 1000000000, - "delete.retention.ms": 86400000, - "max.message.bytes": 1048588 - }, - "bindingVersion": "0.4.0", - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - }, - "ext-number": 1 -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/channel/kafka/kafkaChannelBinding.json b/asyncapi-core/src/test/resources/json/v3/binding/channel/kafka/kafkaChannelBinding.json deleted file mode 100644 index c937ae56..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/channel/kafka/kafkaChannelBinding.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "topic": "my-specific-topic-name", - "partitions": 20, - "replicas": 3, - "topicConfiguration": { - "cleanup.policy": [ - "delete", - "compact" - ], - "retention.ms": 604800000, - "retention.bytes": 1000000000, - "delete.retention.ms": 86400000, - "max.message.bytes": 1048588 - }, - "bindingVersion": "0.4.0" -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/channel/pulsar/pulsarChannelBinding - extended.json b/asyncapi-core/src/test/resources/json/v3/binding/channel/pulsar/pulsarChannelBinding - extended.json deleted file mode 100644 index 17b32f84..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/channel/pulsar/pulsarChannelBinding - extended.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "namespace" : "staging", - "persistence" : "persistent", - "compaction" : 1000, - "geo-replication" : [ "us-east1", "us-west1" ], - "retention" : { - "time" : 7, - "size" : 1000 - }, - "ttl" : 360, - "deduplication" : false, - "bindingVersion" : "0.1.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/channel/pulsar/pulsarChannelBinding - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/binding/channel/pulsar/pulsarChannelBinding - wrongly extended.json deleted file mode 100644 index eb0e8d65..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/channel/pulsar/pulsarChannelBinding - wrongly extended.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "namespace": "staging", - "persistence": "persistent", - "compaction": 1000, - "geo-replication": [ - "us-east1", - "us-west1" - ], - "retention": { - "time": 7, - "size": 1000 - }, - "ttl": 360, - "deduplication": false, - "bindingVersion": "0.1.0", - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - }, - "ext-number": 1 -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/channel/pulsar/pulsarChannelBinding.json b/asyncapi-core/src/test/resources/json/v3/binding/channel/pulsar/pulsarChannelBinding.json deleted file mode 100644 index 21af1c35..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/channel/pulsar/pulsarChannelBinding.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "namespace": "staging", - "persistence": "persistent", - "compaction": 1000, - "geo-replication": [ - "us-east1", - "us-west1" - ], - "retention": { - "time": 7, - "size": 1000 - }, - "ttl": 360, - "deduplication": false, - "bindingVersion": "0.1.0" -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/channel/ws/webSocketsChannelBinding - extended.json b/asyncapi-core/src/test/resources/json/v3/binding/channel/ws/webSocketsChannelBinding - extended.json deleted file mode 100644 index cc6e6930..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/channel/ws/webSocketsChannelBinding - extended.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "method" : "GET", - "query" : { - "type" : "object", - "properties" : { - "ref" : { - "type" : "string", - "description" : "Referral." - } - } - }, - "headers" : { - "type" : "object", - "properties" : { - "Authentication" : { - "type" : "string", - "description" : "Authentication token" - } - } - }, - "bindingVersion" : "0.1.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/channel/ws/webSocketsChannelBinding - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/binding/channel/ws/webSocketsChannelBinding - wrongly extended.json deleted file mode 100644 index 535cd4bc..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/channel/ws/webSocketsChannelBinding - wrongly extended.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "method": "GET", - "query": { - "type": "object", - "properties": { - "ref": { - "type": "string", - "description": "Referral." - } - } - }, - "headers": { - "type": "object", - "properties": { - "Authentication": { - "type": "string", - "description": "Authentication token" - } - } - }, - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - }, - "ext-number": 1 -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/channel/ws/webSocketsChannelBinding.json b/asyncapi-core/src/test/resources/json/v3/binding/channel/ws/webSocketsChannelBinding.json deleted file mode 100644 index f30d9581..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/channel/ws/webSocketsChannelBinding.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "method": "GET", - "query": { - "type": "object", - "properties": { - "ref": { - "type": "string", - "description": "Referral." - } - } - }, - "headers": { - "type": "object", - "properties": { - "Authentication": { - "type": "string", - "description": "Authentication token" - } - } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/message/amqp/amqpMessageBinding - extended.json b/asyncapi-core/src/test/resources/json/v3/binding/message/amqp/amqpMessageBinding - extended.json deleted file mode 100644 index 98d5ef64..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/message/amqp/amqpMessageBinding - extended.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "contentEncoding" : "gzip", - "messageType" : "user.signup", - "bindingVersion" : "0.2.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/message/amqp/amqpMessageBinding - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/binding/message/amqp/amqpMessageBinding - wrongly extended.json deleted file mode 100644 index b3d1d1f1..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/message/amqp/amqpMessageBinding - wrongly extended.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "contentEncoding": "gzip", - "messageType": "user.signup", - "bindingVersion": "0.2.0", - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - }, - "ext-number": 1 -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/message/amqp/amqpMessageBinding.json b/asyncapi-core/src/test/resources/json/v3/binding/message/amqp/amqpMessageBinding.json deleted file mode 100644 index 3a56f03e..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/message/amqp/amqpMessageBinding.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "contentEncoding": "gzip", - "messageType": "user.signup", - "bindingVersion": "0.2.0" -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/message/anypointmq/anypointMQMessageBinding - extended.json b/asyncapi-core/src/test/resources/json/v3/binding/message/anypointmq/anypointMQMessageBinding - extended.json deleted file mode 100644 index e137e19d..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/message/anypointmq/anypointMQMessageBinding - extended.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "headers" : { - "type" : "object", - "properties" : { - "correlationId" : { - "type" : "string", - "description" : "Correlation ID set by application" - } - } - }, - "bindingVersion" : "0.0.1", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/message/anypointmq/anypointMQMessageBinding - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/binding/message/anypointmq/anypointMQMessageBinding - wrongly extended.json deleted file mode 100644 index bbc0329e..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/message/anypointmq/anypointMQMessageBinding - wrongly extended.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "headers": { - "type": "object", - "properties": { - "correlationId": { - "description": "Correlation ID set by application", - "type": "string" - } - } - }, - "bindingVersion": "0.0.1", - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - }, - "ext-number": 1 -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/message/anypointmq/anypointMQMessageBinding.json b/asyncapi-core/src/test/resources/json/v3/binding/message/anypointmq/anypointMQMessageBinding.json deleted file mode 100644 index 04509bbf..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/message/anypointmq/anypointMQMessageBinding.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "headers": { - "type": "object", - "properties": { - "correlationId": { - "description": "Correlation ID set by application", - "type": "string" - } - } - }, - "bindingVersion": "0.0.1" -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/message/googlepubsub/googlePubSubMessageBinding - extended.json b/asyncapi-core/src/test/resources/json/v3/binding/message/googlepubsub/googlePubSubMessageBinding - extended.json deleted file mode 100644 index e0d383d4..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/message/googlepubsub/googlePubSubMessageBinding - extended.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "schema" : { - "name" : "projects/your-project/schemas/message-avro", - "type" : "avro" - }, - "bindingVersion" : "0.1.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/message/googlepubsub/googlePubSubMessageBinding - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/binding/message/googlepubsub/googlePubSubMessageBinding - wrongly extended.json deleted file mode 100644 index 2219970c..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/message/googlepubsub/googlePubSubMessageBinding - wrongly extended.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "schema": { - "name": "projects/your-project/schemas/message-avro", - "type": "avro" - }, - "bindingVersion": "0.1.0", - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - }, - "ext-number": 1 -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/message/googlepubsub/googlePubSubMessageBinding.json b/asyncapi-core/src/test/resources/json/v3/binding/message/googlepubsub/googlePubSubMessageBinding.json deleted file mode 100644 index 511854ad..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/message/googlepubsub/googlePubSubMessageBinding.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "schema": { - "name": "projects/your-project/schemas/message-avro", - "type": "avro" - }, - "bindingVersion": "0.1.0" -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/message/http/httpMessageBinding - extended.json b/asyncapi-core/src/test/resources/json/v3/binding/message/http/httpMessageBinding - extended.json deleted file mode 100644 index 436e5391..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/message/http/httpMessageBinding - extended.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "headers" : { - "type" : "object", - "properties" : { - "Content-Type" : { - "type" : "string", - "enum" : [ "application/json" ] - } - } - }, - "bindingVersion" : "0.1.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/message/http/httpMessageBinding - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/binding/message/http/httpMessageBinding - wrongly extended.json deleted file mode 100644 index b4b71d4e..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/message/http/httpMessageBinding - wrongly extended.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "headers": { - "type": "object", - "properties": { - "Content-Type": { - "type": "string", - "enum": [ - "application/json" - ] - } - } - }, - "bindingVersion": "0.1.0", - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - }, - "ext-number": 1 -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/message/http/httpMessageBinding.json b/asyncapi-core/src/test/resources/json/v3/binding/message/http/httpMessageBinding.json deleted file mode 100644 index 5f7f5672..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/message/http/httpMessageBinding.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "headers": { - "type": "object", - "properties": { - "Content-Type": { - "type": "string", - "enum": [ - "application/json" - ] - } - } - }, - "bindingVersion": "0.1.0" -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/message/ibmmq/ibmMQMessageBinding - extended.json b/asyncapi-core/src/test/resources/json/v3/binding/message/ibmmq/ibmMQMessageBinding - extended.json deleted file mode 100644 index bf14dfb0..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/message/ibmmq/ibmMQMessageBinding - extended.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type" : "jms", - "headers" : "Content-Type: application/json", - "description" : "JMS stream message", - "expiry" : 0, - "bindingVersion" : "0.1.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/message/ibmmq/ibmMQMessageBinding - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/binding/message/ibmmq/ibmMQMessageBinding - wrongly extended.json deleted file mode 100644 index 175d30fb..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/message/ibmmq/ibmMQMessageBinding - wrongly extended.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "jms", - "description": "JMS stream message", - "headers": "Content-Type: application/json", - "expiry": 0, - "bindingVersion": "0.1.0", - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - }, - "ext-number": 1 -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/message/ibmmq/ibmMQMessageBinding.json b/asyncapi-core/src/test/resources/json/v3/binding/message/ibmmq/ibmMQMessageBinding.json deleted file mode 100644 index 49697805..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/message/ibmmq/ibmMQMessageBinding.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "type": "jms", - "description": "JMS stream message", - "headers": "Content-Type: application/json", - "expiry": 0, - "bindingVersion": "0.1.0" -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/message/kafka/kafkaMessageBinding - extended.json b/asyncapi-core/src/test/resources/json/v3/binding/message/kafka/kafkaMessageBinding - extended.json deleted file mode 100644 index 380a3d0c..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/message/kafka/kafkaMessageBinding - extended.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "key" : { - "type" : "string", - "enum" : [ "myKey" ] - }, - "schemaIdLocation" : "payload", - "schemaIdPayloadEncoding" : "apicurio-new", - "schemaLookupStrategy" : "TopicIdStrategy", - "bindingVersion" : "0.4.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/message/kafka/kafkaMessageBinding - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/binding/message/kafka/kafkaMessageBinding - wrongly extended.json deleted file mode 100644 index 37105e30..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/message/kafka/kafkaMessageBinding - wrongly extended.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "key": { - "type": "string", - "enum": [ - "myKey" - ] - }, - "schemaIdLocation": "payload", - "schemaIdPayloadEncoding": "apicurio-new", - "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0", - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - }, - "ext-number": 1 -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/message/kafka/kafkaMessageBinding.json b/asyncapi-core/src/test/resources/json/v3/binding/message/kafka/kafkaMessageBinding.json deleted file mode 100644 index 42340266..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/message/kafka/kafkaMessageBinding.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "key": { - "type": "string", - "enum": [ - "myKey" - ] - }, - "schemaIdLocation": "payload", - "schemaIdPayloadEncoding": "apicurio-new", - "schemaLookupStrategy": "TopicIdStrategy", - "bindingVersion": "0.4.0" -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/operation/amqp/amqpOperationBinding - extended.json b/asyncapi-core/src/test/resources/json/v3/binding/operation/amqp/amqpOperationBinding - extended.json deleted file mode 100644 index a19a9822..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/operation/amqp/amqpOperationBinding - extended.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "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", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/operation/amqp/amqpOperationBinding - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/binding/operation/amqp/amqpOperationBinding - wrongly extended.json deleted file mode 100644 index 10ba23cd..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/operation/amqp/amqpOperationBinding - wrongly extended.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "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", - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - }, - "ext-number": 1 -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/operation/amqp/amqpOperationBinding.json b/asyncapi-core/src/test/resources/json/v3/binding/operation/amqp/amqpOperationBinding.json deleted file mode 100644 index 3bfeef70..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/operation/amqp/amqpOperationBinding.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "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" -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/operation/http/httpOperationBinding - extended.json b/asyncapi-core/src/test/resources/json/v3/binding/operation/http/httpOperationBinding - extended.json deleted file mode 100644 index 4b10d04b..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/operation/http/httpOperationBinding - extended.json +++ /dev/null @@ -1,22 +0,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", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/operation/http/httpOperationBinding - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/binding/operation/http/httpOperationBinding - wrongly extended.json deleted file mode 100644 index 278fb5ae..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/operation/http/httpOperationBinding - wrongly extended.json +++ /dev/null @@ -1,25 +0,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", - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - }, - "ext-number": 1 -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/operation/http/httpOperationBinding.json b/asyncapi-core/src/test/resources/json/v3/binding/operation/http/httpOperationBinding.json deleted file mode 100644 index d832076d..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/operation/http/httpOperationBinding.json +++ /dev/null @@ -1,19 +0,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" -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/operation/kafka/kafkaOperationBinding - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/binding/operation/kafka/kafkaOperationBinding - wrongly extended.json deleted file mode 100644 index a36503dd..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/operation/kafka/kafkaOperationBinding - wrongly extended.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "groupId": { - "type": "string", - "enum": [ - "myGroupId" - ] - }, - "clientId": { - "type": "string", - "enum": [ - "myClientId" - ] - }, - "bindingVersion": "0.4.0", - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - }, - "ext-number": 1 -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/operation/kafka/kafkaOperationBinding.json b/asyncapi-core/src/test/resources/json/v3/binding/operation/kafka/kafkaOperationBinding.json deleted file mode 100644 index 542d1fe2..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/operation/kafka/kafkaOperationBinding.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "groupId": { - "type": "string", - "enum": [ - "myGroupId" - ] - }, - "clientId": { - "type": "string", - "enum": [ - "myClientId" - ] - }, - "bindingVersion": "0.4.0" -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/operation/mqtt/mqttOperationBinding - extended.json b/asyncapi-core/src/test/resources/json/v3/binding/operation/mqtt/mqttOperationBinding - extended.json deleted file mode 100644 index 987a9860..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/operation/mqtt/mqttOperationBinding - extended.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "qos" : 2, - "retain" : true, - "bindingVersion" : "0.1.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/operation/mqtt/mqttOperationBinding - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/binding/operation/mqtt/mqttOperationBinding - wrongly extended.json deleted file mode 100644 index 6a0014f5..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/operation/mqtt/mqttOperationBinding - wrongly extended.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "qos": 2, - "retain": true, - "bindingVersion": "0.1.0", - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - }, - "ext-number": 1 -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/operation/mqtt/mqttOperationBinding.json b/asyncapi-core/src/test/resources/json/v3/binding/operation/mqtt/mqttOperationBinding.json deleted file mode 100644 index 7500db5c..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/operation/mqtt/mqttOperationBinding.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "qos": 2, - "retain": true, - "bindingVersion": "0.1.0" -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/operation/nats/natsOperationBinding - extended.json b/asyncapi-core/src/test/resources/json/v3/binding/operation/nats/natsOperationBinding - extended.json deleted file mode 100644 index 2a77c3b3..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/operation/nats/natsOperationBinding - extended.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "queue" : "messages", - "bindingVersion" : "0.1.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/operation/nats/natsOperationBinding - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/binding/operation/nats/natsOperationBinding - wrongly extended.json deleted file mode 100644 index 1c6e0e8e..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/operation/nats/natsOperationBinding - wrongly extended.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "queue": "messages", - "bindingVersion": "0.1.0", - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - }, - "ext-number": 1 -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/operation/nats/natsOperationBinding.json b/asyncapi-core/src/test/resources/json/v3/binding/operation/nats/natsOperationBinding.json deleted file mode 100644 index 53d874bb..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/operation/nats/natsOperationBinding.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "queue": "messages", - "bindingVersion": "0.1.0" -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/operation/solace/solaceOperationBinding - extended.json b/asyncapi-core/src/test/resources/json/v3/binding/operation/solace/solaceOperationBinding - extended.json deleted file mode 100644 index 97da1987..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/operation/solace/solaceOperationBinding - extended.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "destinations" : [ { - "destinationType" : "queue", - "deliveryMode" : "persistent", - "queue" : { - "name" : "CreatedHREvents", - "topicSubscriptions" : [ "person/*/created" ], - "accessType" : "exclusive", - "maxMsgSpoolSize" : "1,500", - "maxTtl" : "60" - } - }, { - "destinationType" : "queue", - "deliveryMode" : "persistent", - "queue" : { - "name" : "UpdatedHREvents", - "topicSubscriptions" : [ "person/*/updated" ] - }, - "topic" : { - "topicSubscriptions" : [ "person/*/updated" ] - } - } ], - "bindingVersion" : "0.3.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/operation/solace/solaceOperationBinding - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/binding/operation/solace/solaceOperationBinding - wrongly extended.json deleted file mode 100644 index ef371f24..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/operation/solace/solaceOperationBinding - wrongly extended.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } - } - ], - "bindingVersion": "0.3.0", - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - }, - "ext-number": 1 -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/operation/solace/solaceOperationBinding.json b/asyncapi-core/src/test/resources/json/v3/binding/operation/solace/solaceOperationBinding.json deleted file mode 100644 index e5b10158..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/operation/solace/solaceOperationBinding.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "destinations": [ - { - "destinationType": "queue", - "queue": { - "name": "CreatedHREvents", - "topicSubscriptions": [ - "person/*/created" - ], - "accessType": "exclusive", - "maxMsgSpoolSize": "1,500", - "maxTtl": "60" - } - }, - { - "destinationType": "queue", - "queue": { - "name": "UpdatedHREvents", - "topicSubscriptions": [ - "person/*/updated" - ] - }, - "topic": { - "topicSubscriptions": [ - "person/*/updated" - ] - } - } - ], - "bindingVersion": "0.3.0" -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/server/ibmmq/ibmmqServerBinding - extended.json b/asyncapi-core/src/test/resources/json/v3/binding/server/ibmmq/ibmmqServerBinding - extended.json deleted file mode 100644 index 53447913..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/server/ibmmq/ibmmqServerBinding - extended.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "groupId" : "PRODCLSTR1", - "ccdtQueueManagerName" : "*", - "cipherSpec" : "ANY_TLS12_OR_HIGHER", - "multiEndpointServer" : false, - "heartBeatInterval" : 300, - "bindingVersion" : "0.1.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/server/ibmmq/ibmmqServerBinding - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/binding/server/ibmmq/ibmmqServerBinding - wrongly extended.json deleted file mode 100644 index 81ed7a44..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/server/ibmmq/ibmmqServerBinding - wrongly extended.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "groupId": "PRODCLSTR1", - "ccdtQueueManagerName": "*", - "multiEndpointServer": false, - "heartBeatInterval": 300, - "cipherSpec": "ANY_TLS12_OR_HIGHER", - "bindingVersion": "0.1.0", - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - }, - "ext-number": 1 -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/server/ibmmq/ibmmqServerBinding.json b/asyncapi-core/src/test/resources/json/v3/binding/server/ibmmq/ibmmqServerBinding.json deleted file mode 100644 index cde4b02d..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/server/ibmmq/ibmmqServerBinding.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "groupId": "PRODCLSTR1", - "ccdtQueueManagerName": "*", - "multiEndpointServer": false, - "heartBeatInterval": 300, - "cipherSpec": "ANY_TLS12_OR_HIGHER", - "bindingVersion": "0.1.0" -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/server/kafka/kafkaServerBinding - extended.json b/asyncapi-core/src/test/resources/json/v3/binding/server/kafka/kafkaServerBinding - extended.json deleted file mode 100644 index a0349c5c..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/server/kafka/kafkaServerBinding - extended.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "schemaRegistryUrl" : "https://my-schema-registry.com", - "schemaRegistryVendor" : "confluent", - "bindingVersion" : "0.4.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/server/kafka/kafkaServerBinding - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/binding/server/kafka/kafkaServerBinding - wrongly extended.json deleted file mode 100644 index 00eee56a..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/server/kafka/kafkaServerBinding - wrongly extended.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "schemaRegistryUrl": "https://my-schema-registry.com", - "schemaRegistryVendor": "confluent", - "bindingVersion": "0.4.0", - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - }, - "ext-number": 1 -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/server/kafka/kafkaServerBinding.json b/asyncapi-core/src/test/resources/json/v3/binding/server/kafka/kafkaServerBinding.json deleted file mode 100644 index cc2f24e8..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/server/kafka/kafkaServerBinding.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "schemaRegistryUrl": "https://my-schema-registry.com", - "schemaRegistryVendor": "confluent", - "bindingVersion": "0.4.0" -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/server/mqtt/mqttServerBinding - extended.json b/asyncapi-core/src/test/resources/json/v3/binding/server/mqtt/mqttServerBinding - extended.json deleted file mode 100644 index 304ed881..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/server/mqtt/mqttServerBinding - extended.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "clientId" : "guest", - "cleanSession" : true, - "lastWill" : { - "topic" : "/last-wills", - "qos" : 2, - "message" : "Guest gone offline.", - "retain" : false - }, - "keepAlive" : 60, - "bindingVersion" : "0.1.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/server/mqtt/mqttServerBinding - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/binding/server/mqtt/mqttServerBinding - wrongly extended.json deleted file mode 100644 index e3c8e972..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/server/mqtt/mqttServerBinding - wrongly extended.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "clientId": "guest", - "cleanSession": true, - "lastWill": { - "topic": "/last-wills", - "qos": 2, - "message": "Guest gone offline.", - "retain": false - }, - "keepAlive": 60, - "bindingVersion": "0.1.0", - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - }, - "ext-number": 1 -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/server/mqtt/mqttServerBinding.json b/asyncapi-core/src/test/resources/json/v3/binding/server/mqtt/mqttServerBinding.json deleted file mode 100644 index e5073c57..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/server/mqtt/mqttServerBinding.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "clientId": "guest", - "cleanSession": true, - "lastWill": { - "topic": "/last-wills", - "qos": 2, - "message": "Guest gone offline.", - "retain": false - }, - "keepAlive": 60, - "bindingVersion": "0.1.0" -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/server/mqtt5/mqtt5ServerBinding - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/binding/server/mqtt5/mqtt5ServerBinding - wrongly extended.json deleted file mode 100644 index ce682d11..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/server/mqtt5/mqtt5ServerBinding - wrongly extended.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "sessionExpiryInterval": 60, - "bindingVersion": "0.2.0", - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - }, - "ext-number": 1 -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/server/mqtt5/mqtt5ServerBinding.json b/asyncapi-core/src/test/resources/json/v3/binding/server/mqtt5/mqtt5ServerBinding.json deleted file mode 100644 index 1c422293..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/server/mqtt5/mqtt5ServerBinding.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "sessionExpiryInterval": 60, - "bindingVersion": "0.2.0" -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/server/pulsar/pulsarServerBinding - extended.json b/asyncapi-core/src/test/resources/json/v3/binding/server/pulsar/pulsarServerBinding - extended.json deleted file mode 100644 index de267c67..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/server/pulsar/pulsarServerBinding - extended.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "tenant" : "contoso", - "bindingVersion" : "0.1.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/server/pulsar/pulsarServerBinding - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/binding/server/pulsar/pulsarServerBinding - wrongly extended.json deleted file mode 100644 index 380c5cb2..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/server/pulsar/pulsarServerBinding - wrongly extended.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "tenant": "contoso", - "bindingVersion": "0.1.0", - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - }, - "ext-number": 1 -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/server/pulsar/pulsarServerBinding.json b/asyncapi-core/src/test/resources/json/v3/binding/server/pulsar/pulsarServerBinding.json deleted file mode 100644 index bc86f5c2..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/server/pulsar/pulsarServerBinding.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "tenant": "contoso", - "bindingVersion": "0.1.0" -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/server/solace/solaceServerBinding - extended.json b/asyncapi-core/src/test/resources/json/v3/binding/server/solace/solaceServerBinding - extended.json deleted file mode 100644 index 4e9101f6..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/server/solace/solaceServerBinding - extended.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "msgVpn" : "solace.private.net", - "bindingVersion" : "0.3.0", - "x-number" : 0, - "x-string" : "", - "x-object" : { - "property" : { } - } -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/server/solace/solaceServerBinding - wrongly extended.json b/asyncapi-core/src/test/resources/json/v3/binding/server/solace/solaceServerBinding - wrongly extended.json deleted file mode 100644 index f6e4672f..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/server/solace/solaceServerBinding - wrongly extended.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "msgVpn": "solace.private.net", - "bindingVersion": "0.3.0", - "x-number": 0, - "x-string": "", - "x-object": { - "property": {} - }, - "ext-number": 1 -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/binding/server/solace/solaceServerBinding.json b/asyncapi-core/src/test/resources/json/v3/binding/server/solace/solaceServerBinding.json deleted file mode 100644 index 1e86ad5a..00000000 --- a/asyncapi-core/src/test/resources/json/v3/binding/server/solace/solaceServerBinding.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "msgVpn": "solace.private.net", - "bindingVersion": "0.3.0" -} \ No newline at end of file diff --git a/asyncapi-core/src/test/resources/json/v3/schema/avro/ApplicationEvent.avsc b/asyncapi-core/src/test/resources/schemas/avro/ApplicationEvent.avsc similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/avro/ApplicationEvent.avsc rename to asyncapi-core/src/test/resources/schemas/avro/ApplicationEvent.avsc diff --git a/asyncapi-core/src/test/resources/json/v3/schema/avro/DocumentInfo.avsc b/asyncapi-core/src/test/resources/schemas/avro/DocumentInfo.avsc similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/avro/DocumentInfo.avsc rename to asyncapi-core/src/test/resources/schemas/avro/DocumentInfo.avsc diff --git a/asyncapi-core/src/test/resources/json/v3/schema/avro/MyResponse.avsc b/asyncapi-core/src/test/resources/schemas/avro/MyResponse.avsc similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/avro/MyResponse.avsc rename to asyncapi-core/src/test/resources/schemas/avro/MyResponse.avsc diff --git a/asyncapi-core/src/test/resources/json/v3/schema/avro/SchemaBuilder.avsc b/asyncapi-core/src/test/resources/schemas/avro/SchemaBuilder.avsc similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/avro/SchemaBuilder.avsc rename to asyncapi-core/src/test/resources/schemas/avro/SchemaBuilder.avsc diff --git a/asyncapi-core/src/test/resources/json/v3/schema/avro/TestRecordWithLogicalTypes.avsc b/asyncapi-core/src/test/resources/schemas/avro/TestRecordWithLogicalTypes.avsc similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/avro/TestRecordWithLogicalTypes.avsc rename to asyncapi-core/src/test/resources/schemas/avro/TestRecordWithLogicalTypes.avsc diff --git a/asyncapi-core/src/test/resources/json/v3/schema/avro/TestRecordWithMapsAndArrays.avsc b/asyncapi-core/src/test/resources/schemas/avro/TestRecordWithMapsAndArrays.avsc similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/avro/TestRecordWithMapsAndArrays.avsc rename to asyncapi-core/src/test/resources/schemas/avro/TestRecordWithMapsAndArrays.avsc diff --git a/asyncapi-core/src/test/resources/json/v3/schema/avro/TestUnionRecord.avsc b/asyncapi-core/src/test/resources/schemas/avro/TestUnionRecord.avsc similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/avro/TestUnionRecord.avsc rename to asyncapi-core/src/test/resources/schemas/avro/TestUnionRecord.avsc diff --git a/asyncapi-core/src/test/resources/json/v3/schema/avro/foo.Bar.avsc b/asyncapi-core/src/test/resources/schemas/avro/foo.Bar.avsc similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/avro/foo.Bar.avsc rename to asyncapi-core/src/test/resources/schemas/avro/foo.Bar.avsc diff --git a/asyncapi-core/src/test/resources/json/v3/schema/avro/full_record_v1.avsc b/asyncapi-core/src/test/resources/schemas/avro/full_record_v1.avsc similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/avro/full_record_v1.avsc rename to asyncapi-core/src/test/resources/schemas/avro/full_record_v1.avsc diff --git a/asyncapi-core/src/test/resources/json/v3/schema/avro/full_record_v2.avsc b/asyncapi-core/src/test/resources/schemas/avro/full_record_v2.avsc similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/avro/full_record_v2.avsc rename to asyncapi-core/src/test/resources/schemas/avro/full_record_v2.avsc diff --git a/asyncapi-core/src/test/resources/json/v3/schema/avro/logical-uuid.avsc b/asyncapi-core/src/test/resources/schemas/avro/logical-uuid.avsc similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/avro/logical-uuid.avsc rename to asyncapi-core/src/test/resources/schemas/avro/logical-uuid.avsc diff --git a/asyncapi-core/src/test/resources/json/v3/schema/avro/logical_types_with_multiple_fields.avsc b/asyncapi-core/src/test/resources/schemas/avro/logical_types_with_multiple_fields.avsc similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/avro/logical_types_with_multiple_fields.avsc rename to asyncapi-core/src/test/resources/schemas/avro/logical_types_with_multiple_fields.avsc diff --git a/asyncapi-core/src/test/resources/json/v3/schema/avro/regression_error_field_in_record.avsc b/asyncapi-core/src/test/resources/schemas/avro/regression_error_field_in_record.avsc similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/avro/regression_error_field_in_record.avsc rename to asyncapi-core/src/test/resources/schemas/avro/regression_error_field_in_record.avsc diff --git a/asyncapi-core/src/test/resources/json/v3/schema/avro/schema-location-read.json b/asyncapi-core/src/test/resources/schemas/avro/schema-location-read.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/avro/schema-location-read.json rename to asyncapi-core/src/test/resources/schemas/avro/schema-location-read.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/avro/schema-location-write.json b/asyncapi-core/src/test/resources/schemas/avro/schema-location-write.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/avro/schema-location-write.json rename to asyncapi-core/src/test/resources/schemas/avro/schema-location-write.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/avro/schema-location.json b/asyncapi-core/src/test/resources/schemas/avro/schema-location.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/avro/schema-location.json rename to asyncapi-core/src/test/resources/schemas/avro/schema-location.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/avro/simple_record.avsc b/asyncapi-core/src/test/resources/schemas/avro/simple_record.avsc similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/avro/simple_record.avsc rename to asyncapi-core/src/test/resources/schemas/avro/simple_record.avsc diff --git a/asyncapi-core/src/test/resources/json/v3/schema/avro/union_and_fixed_fields.avsc b/asyncapi-core/src/test/resources/schemas/avro/union_and_fixed_fields.avsc similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/avro/union_and_fixed_fields.avsc rename to asyncapi-core/src/test/resources/schemas/avro/union_and_fixed_fields.avsc diff --git a/asyncapi-core/src/test/resources/json/v3/schema/json/arrays.schema.json b/asyncapi-core/src/test/resources/schemas/json/arrays.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/json/arrays.schema.json rename to asyncapi-core/src/test/resources/schemas/json/arrays.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/json/complex-object.schema.json b/asyncapi-core/src/test/resources/schemas/json/complex-object.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/json/complex-object.schema.json rename to asyncapi-core/src/test/resources/schemas/json/complex-object.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/json/conditional-validation-if-else.schema.json b/asyncapi-core/src/test/resources/schemas/json/conditional-validation-if-else.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/json/conditional-validation-if-else.schema.json rename to asyncapi-core/src/test/resources/schemas/json/conditional-validation-if-else.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/json/draft-07-core-schema-meta-schema.json b/asyncapi-core/src/test/resources/schemas/json/draft-07-core-schema-meta-schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/json/draft-07-core-schema-meta-schema.json rename to asyncapi-core/src/test/resources/schemas/json/draft-07-core-schema-meta-schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/json/enumerated-values.schema.json b/asyncapi-core/src/test/resources/schemas/json/enumerated-values.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/json/enumerated-values.schema.json rename to asyncapi-core/src/test/resources/schemas/json/enumerated-values.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/json/person.schema.json b/asyncapi-core/src/test/resources/schemas/json/person.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/json/person.schema.json rename to asyncapi-core/src/test/resources/schemas/json/person.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/json/properties/array.json b/asyncapi-core/src/test/resources/schemas/json/properties/array.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/json/properties/array.json rename to asyncapi-core/src/test/resources/schemas/json/properties/array.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/json/properties/bigdecimal-maximum.json b/asyncapi-core/src/test/resources/schemas/json/properties/bigdecimal-maximum.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/json/properties/bigdecimal-maximum.json rename to asyncapi-core/src/test/resources/schemas/json/properties/bigdecimal-maximum.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/json/properties/bigdecimal-minimum.json b/asyncapi-core/src/test/resources/schemas/json/properties/bigdecimal-minimum.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/json/properties/bigdecimal-minimum.json rename to asyncapi-core/src/test/resources/schemas/json/properties/bigdecimal-minimum.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/json/properties/bigdecimal.json b/asyncapi-core/src/test/resources/schemas/json/properties/bigdecimal.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/json/properties/bigdecimal.json rename to asyncapi-core/src/test/resources/schemas/json/properties/bigdecimal.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/json/properties/biginteger-maximum.json b/asyncapi-core/src/test/resources/schemas/json/properties/biginteger-maximum.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/json/properties/biginteger-maximum.json rename to asyncapi-core/src/test/resources/schemas/json/properties/biginteger-maximum.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/json/properties/biginteger-minimum.json b/asyncapi-core/src/test/resources/schemas/json/properties/biginteger-minimum.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/json/properties/biginteger-minimum.json rename to asyncapi-core/src/test/resources/schemas/json/properties/biginteger-minimum.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/json/properties/biginteger.json b/asyncapi-core/src/test/resources/schemas/json/properties/biginteger.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/json/properties/biginteger.json rename to asyncapi-core/src/test/resources/schemas/json/properties/biginteger.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/json/properties/boolean-false.json b/asyncapi-core/src/test/resources/schemas/json/properties/boolean-false.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/json/properties/boolean-false.json rename to asyncapi-core/src/test/resources/schemas/json/properties/boolean-false.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/json/properties/boolean-true.json b/asyncapi-core/src/test/resources/schemas/json/properties/boolean-true.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/json/properties/boolean-true.json rename to asyncapi-core/src/test/resources/schemas/json/properties/boolean-true.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/json/properties/double-maximum.json b/asyncapi-core/src/test/resources/schemas/json/properties/double-maximum.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/json/properties/double-maximum.json rename to asyncapi-core/src/test/resources/schemas/json/properties/double-maximum.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/json/properties/double-minimum.json b/asyncapi-core/src/test/resources/schemas/json/properties/double-minimum.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/json/properties/double-minimum.json rename to asyncapi-core/src/test/resources/schemas/json/properties/double-minimum.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/json/properties/double.json b/asyncapi-core/src/test/resources/schemas/json/properties/double.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/json/properties/double.json rename to asyncapi-core/src/test/resources/schemas/json/properties/double.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/json/properties/float-maximum.json b/asyncapi-core/src/test/resources/schemas/json/properties/float-maximum.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/json/properties/float-maximum.json rename to asyncapi-core/src/test/resources/schemas/json/properties/float-maximum.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/json/properties/float-minimum.json b/asyncapi-core/src/test/resources/schemas/json/properties/float-minimum.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/json/properties/float-minimum.json rename to asyncapi-core/src/test/resources/schemas/json/properties/float-minimum.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/json/properties/float.json b/asyncapi-core/src/test/resources/schemas/json/properties/float.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/json/properties/float.json rename to asyncapi-core/src/test/resources/schemas/json/properties/float.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/json/properties/int-maximum.json b/asyncapi-core/src/test/resources/schemas/json/properties/int-maximum.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/json/properties/int-maximum.json rename to asyncapi-core/src/test/resources/schemas/json/properties/int-maximum.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/json/properties/int-minimum.json b/asyncapi-core/src/test/resources/schemas/json/properties/int-minimum.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/json/properties/int-minimum.json rename to asyncapi-core/src/test/resources/schemas/json/properties/int-minimum.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/json/properties/int.json b/asyncapi-core/src/test/resources/schemas/json/properties/int.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/json/properties/int.json rename to asyncapi-core/src/test/resources/schemas/json/properties/int.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/json/properties/null.json b/asyncapi-core/src/test/resources/schemas/json/properties/null.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/json/properties/null.json rename to asyncapi-core/src/test/resources/schemas/json/properties/null.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/json/properties/object.json b/asyncapi-core/src/test/resources/schemas/json/properties/object.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/json/properties/object.json rename to asyncapi-core/src/test/resources/schemas/json/properties/object.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/json/regex-pattern.schema.json b/asyncapi-core/src/test/resources/schemas/json/regex-pattern.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/json/regex-pattern.schema.json rename to asyncapi-core/src/test/resources/schemas/json/regex-pattern.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/arrays.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/arrays.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/arrays.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/arrays.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/complex-object.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/complex-object.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/complex-object.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/complex-object.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/enumerated-values.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/enumerated-values.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/enumerated-values.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/enumerated-values.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/person.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/person.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/person.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/person.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/regex-pattern.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/regex-pattern.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/regex-pattern.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+json/regex-pattern.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/person.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/person.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/person.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/person.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/arrays.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/arrays.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/arrays.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/arrays.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/arrays.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/arrays.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/arrays.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/arrays.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/complex-object.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/complex-object.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/complex-object.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/complex-object.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/complex-object.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/complex-object.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/complex-object.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/complex-object.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/enumerated-values.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/enumerated-values.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/enumerated-values.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/enumerated-values.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/enumerated-values.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/enumerated-values.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/enumerated-values.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/enumerated-values.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/person.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/person.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/person.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/person.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/person.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/person.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/person.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/person.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/regex-pattern.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/regex-pattern.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/regex-pattern.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/regex-pattern.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/regex-pattern.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/regex-pattern.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/regex-pattern.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.0.0/vnd.aai.asyncapi/regex-pattern.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/arrays.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/arrays.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/arrays.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/arrays.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/complex-object.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/complex-object.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/complex-object.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/complex-object.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/enumerated-values.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/enumerated-values.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/enumerated-values.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/enumerated-values.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/person.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/person.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/person.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/person.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/regex-pattern.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/regex-pattern.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/regex-pattern.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+json/regex-pattern.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/person.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/person.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/person.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/person.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/arrays.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/arrays.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/arrays.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/arrays.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/arrays.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/arrays.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/arrays.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/arrays.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/complex-object.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/complex-object.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/complex-object.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/complex-object.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/complex-object.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/complex-object.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/complex-object.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/complex-object.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/enumerated-values.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/enumerated-values.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/enumerated-values.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/enumerated-values.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/enumerated-values.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/enumerated-values.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/enumerated-values.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/enumerated-values.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/person.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/person.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/person.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/person.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/person.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/person.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/person.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/person.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/regex-pattern.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/regex-pattern.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/regex-pattern.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/regex-pattern.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/regex-pattern.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/regex-pattern.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/regex-pattern.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.1.0/vnd.aai.asyncapi/regex-pattern.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/arrays.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/arrays.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/arrays.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/arrays.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/complex-object.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/complex-object.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/complex-object.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/complex-object.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/enumerated-values.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/enumerated-values.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/enumerated-values.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/enumerated-values.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/person.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/person.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/person.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/person.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/regex-pattern.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/regex-pattern.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/regex-pattern.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+json/regex-pattern.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/person.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/person.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/person.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/person.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/arrays.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/arrays.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/arrays.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/arrays.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/arrays.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/arrays.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/arrays.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/arrays.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/complex-object.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/complex-object.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/complex-object.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/complex-object.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/complex-object.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/complex-object.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/complex-object.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/complex-object.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/enumerated-values.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/enumerated-values.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/enumerated-values.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/enumerated-values.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/enumerated-values.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/enumerated-values.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/enumerated-values.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/enumerated-values.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/person.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/person.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/person.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/person.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/person.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/person.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/person.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/person.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/regex-pattern.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/regex-pattern.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/regex-pattern.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/regex-pattern.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/regex-pattern.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/regex-pattern.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/regex-pattern.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.2.0/vnd.aai.asyncapi/regex-pattern.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/arrays.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/arrays.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/arrays.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/arrays.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/complex-object.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/complex-object.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/complex-object.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/complex-object.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/enumerated-values.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/enumerated-values.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/enumerated-values.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/enumerated-values.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/person.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/person.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/person.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/person.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/regex-pattern.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/regex-pattern.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/regex-pattern.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+json/regex-pattern.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/person.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/person.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/person.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/person.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/arrays.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/arrays.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/arrays.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/arrays.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/arrays.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/arrays.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/arrays.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/arrays.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/complex-object.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/complex-object.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/complex-object.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/complex-object.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/complex-object.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/complex-object.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/complex-object.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/complex-object.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/enumerated-values.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/enumerated-values.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/enumerated-values.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/enumerated-values.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/enumerated-values.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/enumerated-values.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/enumerated-values.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/enumerated-values.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/person.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/person.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/person.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/person.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/person.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/person.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/person.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/person.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/regex-pattern.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/regex-pattern.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/regex-pattern.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/regex-pattern.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/regex-pattern.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/regex-pattern.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/regex-pattern.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.3.0/vnd.aai.asyncapi/regex-pattern.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/arrays.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/arrays.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/arrays.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/arrays.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/complex-object.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/complex-object.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/complex-object.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/complex-object.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/enumerated-values.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/enumerated-values.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/enumerated-values.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/enumerated-values.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/person.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/person.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/person.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/person.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/regex-pattern.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/regex-pattern.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/regex-pattern.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+json/regex-pattern.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/person.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/person.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/person.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/person.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/arrays.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/arrays.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/arrays.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/arrays.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/arrays.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/arrays.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/arrays.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/arrays.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/complex-object.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/complex-object.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/complex-object.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/complex-object.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/complex-object.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/complex-object.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/complex-object.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/complex-object.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/enumerated-values.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/enumerated-values.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/enumerated-values.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/enumerated-values.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/enumerated-values.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/enumerated-values.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/enumerated-values.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/enumerated-values.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/person.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/person.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/person.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/person.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/person.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/person.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/person.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/person.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/regex-pattern.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/regex-pattern.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/regex-pattern.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/regex-pattern.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/regex-pattern.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/regex-pattern.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/regex-pattern.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.4.0/vnd.aai.asyncapi/regex-pattern.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/arrays.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/arrays.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/arrays.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/arrays.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/complex-object.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/complex-object.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/complex-object.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/complex-object.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/enumerated-values.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/enumerated-values.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/enumerated-values.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/enumerated-values.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/person.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/person.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/person.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/person.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/regex-pattern.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/regex-pattern.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/regex-pattern.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+json/regex-pattern.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/person.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/person.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/person.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/person.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/arrays.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/arrays.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/arrays.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/arrays.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/arrays.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/arrays.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/arrays.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/arrays.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/complex-object.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/complex-object.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/complex-object.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/complex-object.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/complex-object.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/complex-object.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/complex-object.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/complex-object.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/enumerated-values.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/enumerated-values.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/enumerated-values.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/enumerated-values.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/enumerated-values.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/enumerated-values.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/enumerated-values.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/enumerated-values.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/person.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/person.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/person.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/person.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/person.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/person.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/person.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/person.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/regex-pattern.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/regex-pattern.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/regex-pattern.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/regex-pattern.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/regex-pattern.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/regex-pattern.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/regex-pattern.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.5.0/vnd.aai.asyncapi/regex-pattern.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/arrays.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/arrays.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/arrays.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/arrays.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/complex-object.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/complex-object.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/complex-object.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/complex-object.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/enumerated-values.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/enumerated-values.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/enumerated-values.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/enumerated-values.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/person.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/person.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/person.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/person.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/regex-pattern.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/regex-pattern.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/regex-pattern.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+json/regex-pattern.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/person.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/person.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/person.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/person.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/arrays.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/arrays.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/arrays.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/arrays.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/arrays.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/arrays.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/arrays.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/arrays.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/complex-object.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/complex-object.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/complex-object.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/complex-object.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/complex-object.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/complex-object.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/complex-object.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/complex-object.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/enumerated-values.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/enumerated-values.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/enumerated-values.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/enumerated-values.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/enumerated-values.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/enumerated-values.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/enumerated-values.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/enumerated-values.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/person.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/person.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/person.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/person.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/person.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/person.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/person.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/person.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/regex-pattern.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/regex-pattern.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/regex-pattern.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/regex-pattern.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/regex-pattern.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/regex-pattern.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/regex-pattern.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/2.6.0/vnd.aai.asyncapi/regex-pattern.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/arrays.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/arrays.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/arrays.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/arrays.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/complex-object.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/complex-object.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/complex-object.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/complex-object.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/conditional-validation-if-else.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/draft-07-core-schema-meta-schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/enumerated-values.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/enumerated-values.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/enumerated-values.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/enumerated-values.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/person.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/person.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/person.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/person.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/regex-pattern.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/regex-pattern.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/regex-pattern.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+json/regex-pattern.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/arrays.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/complex-object.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/conditional-validation-if-else.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/draft-07-core-schema-meta-schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/enumerated-values.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/person.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/person.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/person.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/person.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi+yaml/regex-pattern.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/arrays.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/arrays.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/arrays.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/arrays.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/arrays.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/arrays.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/arrays.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/arrays.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/complex-object.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/complex-object.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/complex-object.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/complex-object.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/complex-object.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/complex-object.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/complex-object.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/complex-object.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/conditional-validation-if-else.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/draft-07-core-schema-meta-schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/enumerated-values.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/enumerated-values.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/enumerated-values.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/enumerated-values.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/enumerated-values.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/enumerated-values.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/enumerated-values.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/enumerated-values.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/person.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/person.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/person.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/person.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/person.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/person.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/person.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/person.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/regex-pattern.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/regex-pattern.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/regex-pattern.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/regex-pattern.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/regex-pattern.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/regex-pattern.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/regex-pattern.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/asyncapi/3.0.0/vnd.aai.asyncapi/regex-pattern.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/ApplicationEvent.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/ApplicationEvent.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/ApplicationEvent.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/ApplicationEvent.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/DocumentInfo.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/DocumentInfo.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/DocumentInfo.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/DocumentInfo.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/MyResponse.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/MyResponse.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/MyResponse.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/MyResponse.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/SchemaBuilder.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/SchemaBuilder.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/SchemaBuilder.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/SchemaBuilder.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/TestRecordWithLogicalTypes.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/TestRecordWithLogicalTypes.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/TestRecordWithLogicalTypes.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/TestRecordWithLogicalTypes.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/TestUnionRecord.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/TestUnionRecord.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/TestUnionRecord.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/TestUnionRecord.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/foo.Bar.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/foo.Bar.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/foo.Bar.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/foo.Bar.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/full_record_v1.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/full_record_v1.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/full_record_v1.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/full_record_v1.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/full_record_v2.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/full_record_v2.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/full_record_v2.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/full_record_v2.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/logical-uuid.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/logical-uuid.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/logical-uuid.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/logical-uuid.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/logical_types_with_multiple_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/logical_types_with_multiple_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/logical_types_with_multiple_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/logical_types_with_multiple_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/regression_error_field_in_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/regression_error_field_in_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/regression_error_field_in_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/regression_error_field_in_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/schema-location-read.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/schema-location-read.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/schema-location-read.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/schema-location-read.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/schema-location-write.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/schema-location-write.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/schema-location-write.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/schema-location-write.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/schema-location.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/schema-location.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/schema-location.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/schema-location.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/simple_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/simple_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/simple_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/simple_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/union_and_fixed_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/union_and_fixed_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+json/union_and_fixed_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+json/union_and_fixed_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/ApplicationEvent.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/ApplicationEvent.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/ApplicationEvent.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/ApplicationEvent.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/DocumentInfo.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/DocumentInfo.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/DocumentInfo.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/DocumentInfo.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/MyResponse.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/MyResponse.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/MyResponse.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/MyResponse.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/SchemaBuilder.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/SchemaBuilder.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/SchemaBuilder.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/SchemaBuilder.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/TestUnionRecord.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/TestUnionRecord.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/TestUnionRecord.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/TestUnionRecord.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/foo.Bar.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/foo.Bar.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/foo.Bar.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/foo.Bar.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/full_record_v1.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/full_record_v1.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/full_record_v1.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/full_record_v1.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/full_record_v2.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/full_record_v2.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/full_record_v2.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/full_record_v2.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/logical-uuid.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/logical-uuid.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/logical-uuid.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/logical-uuid.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/regression_error_field_in_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/regression_error_field_in_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/regression_error_field_in_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/regression_error_field_in_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/schema-location-read.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/schema-location-read.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/schema-location-read.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/schema-location-read.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/schema-location-write.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/schema-location-write.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/schema-location-write.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/schema-location-write.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/schema-location.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/schema-location.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/schema-location.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/schema-location.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/simple_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/simple_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/simple_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/simple_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/union_and_fixed_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/union_and_fixed_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro+yaml/union_and_fixed_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro+yaml/union_and_fixed_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/ApplicationEvent.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/ApplicationEvent.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/ApplicationEvent.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/ApplicationEvent.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/ApplicationEvent.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/ApplicationEvent.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/ApplicationEvent.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/ApplicationEvent.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/DocumentInfo.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/DocumentInfo.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/DocumentInfo.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/DocumentInfo.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/DocumentInfo.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/DocumentInfo.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/DocumentInfo.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/DocumentInfo.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/MyResponse.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/MyResponse.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/MyResponse.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/MyResponse.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/MyResponse.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/MyResponse.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/MyResponse.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/MyResponse.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/SchemaBuilder.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/SchemaBuilder.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/SchemaBuilder.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/SchemaBuilder.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/SchemaBuilder.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/SchemaBuilder.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/SchemaBuilder.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/SchemaBuilder.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/TestRecordWithLogicalTypes.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/TestRecordWithLogicalTypes.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/TestRecordWithLogicalTypes.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/TestRecordWithLogicalTypes.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/TestRecordWithLogicalTypes.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/TestRecordWithLogicalTypes.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/TestRecordWithLogicalTypes.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/TestRecordWithLogicalTypes.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/TestRecordWithMapsAndArrays.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/TestRecordWithMapsAndArrays.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/TestRecordWithMapsAndArrays.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/TestRecordWithMapsAndArrays.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/TestUnionRecord.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/TestUnionRecord.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/TestUnionRecord.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/TestUnionRecord.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/TestUnionRecord.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/TestUnionRecord.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/TestUnionRecord.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/TestUnionRecord.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/foo.Bar.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/foo.Bar.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/foo.Bar.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/foo.Bar.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/foo.Bar.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/foo.Bar.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/foo.Bar.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/foo.Bar.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/full_record_v1.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/full_record_v1.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/full_record_v1.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/full_record_v1.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/full_record_v1.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/full_record_v1.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/full_record_v1.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/full_record_v1.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/full_record_v2.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/full_record_v2.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/full_record_v2.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/full_record_v2.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/full_record_v2.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/full_record_v2.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/full_record_v2.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/full_record_v2.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/logical-uuid.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/logical-uuid.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/logical-uuid.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/logical-uuid.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/logical-uuid.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/logical-uuid.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/logical-uuid.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/logical-uuid.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/logical_types_with_multiple_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/logical_types_with_multiple_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/logical_types_with_multiple_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/logical_types_with_multiple_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/logical_types_with_multiple_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/logical_types_with_multiple_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/logical_types_with_multiple_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/logical_types_with_multiple_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/regression_error_field_in_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/regression_error_field_in_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/regression_error_field_in_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/regression_error_field_in_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/regression_error_field_in_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/regression_error_field_in_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/regression_error_field_in_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/regression_error_field_in_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/schema-location-read.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/schema-location-read.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/schema-location-read.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/schema-location-read.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/schema-location-read.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/schema-location-read.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/schema-location-read.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/schema-location-read.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/schema-location-write.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/schema-location-write.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/schema-location-write.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/schema-location-write.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/schema-location-write.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/schema-location-write.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/schema-location-write.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/schema-location-write.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/schema-location.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/schema-location.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/schema-location.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/schema-location.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/schema-location.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/schema-location.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/schema-location.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/schema-location.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/simple_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/simple_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/simple_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/simple_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/simple_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/simple_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/simple_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/simple_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/union_and_fixed_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/union_and_fixed_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/union_and_fixed_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/union_and_fixed_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/union_and_fixed_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/union_and_fixed_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.0/vnd.apache.avro/union_and_fixed_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.0/vnd.apache.avro/union_and_fixed_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/ApplicationEvent.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/ApplicationEvent.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/ApplicationEvent.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/ApplicationEvent.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/DocumentInfo.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/DocumentInfo.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/DocumentInfo.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/DocumentInfo.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/MyResponse.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/MyResponse.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/MyResponse.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/MyResponse.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/SchemaBuilder.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/SchemaBuilder.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/SchemaBuilder.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/SchemaBuilder.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/TestRecordWithLogicalTypes.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/TestRecordWithLogicalTypes.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/TestRecordWithLogicalTypes.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/TestRecordWithLogicalTypes.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/TestUnionRecord.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/TestUnionRecord.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/TestUnionRecord.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/TestUnionRecord.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/foo.Bar.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/foo.Bar.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/foo.Bar.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/foo.Bar.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/full_record_v1.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/full_record_v1.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/full_record_v1.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/full_record_v1.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/full_record_v2.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/full_record_v2.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/full_record_v2.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/full_record_v2.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/logical-uuid.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/logical-uuid.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/logical-uuid.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/logical-uuid.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/logical_types_with_multiple_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/logical_types_with_multiple_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/logical_types_with_multiple_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/logical_types_with_multiple_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/regression_error_field_in_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/regression_error_field_in_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/regression_error_field_in_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/regression_error_field_in_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/schema-location-read.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/schema-location-read.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/schema-location-read.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/schema-location-read.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/schema-location-write.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/schema-location-write.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/schema-location-write.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/schema-location-write.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/schema-location.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/schema-location.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/schema-location.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/schema-location.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/simple_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/simple_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/simple_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/simple_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/union_and_fixed_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/union_and_fixed_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+json/union_and_fixed_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+json/union_and_fixed_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/ApplicationEvent.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/ApplicationEvent.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/ApplicationEvent.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/ApplicationEvent.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/DocumentInfo.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/DocumentInfo.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/DocumentInfo.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/DocumentInfo.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/MyResponse.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/MyResponse.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/MyResponse.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/MyResponse.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/SchemaBuilder.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/SchemaBuilder.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/SchemaBuilder.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/SchemaBuilder.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/TestUnionRecord.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/TestUnionRecord.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/TestUnionRecord.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/TestUnionRecord.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/foo.Bar.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/foo.Bar.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/foo.Bar.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/foo.Bar.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/full_record_v1.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/full_record_v1.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/full_record_v1.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/full_record_v1.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/full_record_v2.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/full_record_v2.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/full_record_v2.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/full_record_v2.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/logical-uuid.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/logical-uuid.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/logical-uuid.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/logical-uuid.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/regression_error_field_in_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/regression_error_field_in_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/regression_error_field_in_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/regression_error_field_in_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/schema-location-read.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/schema-location-read.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/schema-location-read.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/schema-location-read.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/schema-location-write.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/schema-location-write.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/schema-location-write.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/schema-location-write.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/schema-location.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/schema-location.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/schema-location.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/schema-location.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/simple_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/simple_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/simple_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/simple_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/union_and_fixed_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/union_and_fixed_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro+yaml/union_and_fixed_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro+yaml/union_and_fixed_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/ApplicationEvent.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/ApplicationEvent.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/ApplicationEvent.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/ApplicationEvent.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/ApplicationEvent.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/ApplicationEvent.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/ApplicationEvent.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/ApplicationEvent.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/DocumentInfo.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/DocumentInfo.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/DocumentInfo.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/DocumentInfo.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/DocumentInfo.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/DocumentInfo.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/DocumentInfo.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/DocumentInfo.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/MyResponse.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/MyResponse.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/MyResponse.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/MyResponse.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/MyResponse.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/MyResponse.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/MyResponse.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/MyResponse.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/SchemaBuilder.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/SchemaBuilder.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/SchemaBuilder.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/SchemaBuilder.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/SchemaBuilder.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/SchemaBuilder.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/SchemaBuilder.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/SchemaBuilder.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/TestRecordWithLogicalTypes.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/TestRecordWithLogicalTypes.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/TestRecordWithLogicalTypes.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/TestRecordWithLogicalTypes.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/TestRecordWithLogicalTypes.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/TestRecordWithLogicalTypes.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/TestRecordWithLogicalTypes.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/TestRecordWithLogicalTypes.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/TestRecordWithMapsAndArrays.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/TestRecordWithMapsAndArrays.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/TestRecordWithMapsAndArrays.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/TestRecordWithMapsAndArrays.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/TestUnionRecord.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/TestUnionRecord.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/TestUnionRecord.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/TestUnionRecord.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/TestUnionRecord.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/TestUnionRecord.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/TestUnionRecord.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/TestUnionRecord.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/foo.Bar.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/foo.Bar.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/foo.Bar.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/foo.Bar.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/foo.Bar.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/foo.Bar.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/foo.Bar.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/foo.Bar.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/full_record_v1.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/full_record_v1.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/full_record_v1.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/full_record_v1.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/full_record_v1.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/full_record_v1.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/full_record_v1.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/full_record_v1.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/full_record_v2.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/full_record_v2.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/full_record_v2.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/full_record_v2.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/full_record_v2.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/full_record_v2.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/full_record_v2.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/full_record_v2.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/logical-uuid.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/logical-uuid.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/logical-uuid.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/logical-uuid.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/logical-uuid.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/logical-uuid.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/logical-uuid.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/logical-uuid.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/logical_types_with_multiple_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/logical_types_with_multiple_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/logical_types_with_multiple_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/logical_types_with_multiple_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/logical_types_with_multiple_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/logical_types_with_multiple_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/logical_types_with_multiple_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/logical_types_with_multiple_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/regression_error_field_in_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/regression_error_field_in_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/regression_error_field_in_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/regression_error_field_in_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/regression_error_field_in_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/regression_error_field_in_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/regression_error_field_in_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/regression_error_field_in_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/schema-location-read.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/schema-location-read.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/schema-location-read.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/schema-location-read.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/schema-location-read.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/schema-location-read.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/schema-location-read.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/schema-location-read.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/schema-location-write.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/schema-location-write.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/schema-location-write.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/schema-location-write.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/schema-location-write.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/schema-location-write.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/schema-location-write.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/schema-location-write.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/schema-location.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/schema-location.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/schema-location.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/schema-location.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/schema-location.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/schema-location.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/schema-location.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/schema-location.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/simple_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/simple_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/simple_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/simple_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/simple_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/simple_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/simple_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/simple_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/union_and_fixed_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/union_and_fixed_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/union_and_fixed_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/union_and_fixed_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/union_and_fixed_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/union_and_fixed_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.1/vnd.apache.avro/union_and_fixed_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.1/vnd.apache.avro/union_and_fixed_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/ApplicationEvent.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/ApplicationEvent.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/ApplicationEvent.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/ApplicationEvent.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/DocumentInfo.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/DocumentInfo.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/DocumentInfo.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/DocumentInfo.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/MyResponse.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/MyResponse.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/MyResponse.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/MyResponse.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/SchemaBuilder.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/SchemaBuilder.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/SchemaBuilder.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/SchemaBuilder.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/TestRecordWithLogicalTypes.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/TestRecordWithLogicalTypes.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/TestRecordWithLogicalTypes.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/TestRecordWithLogicalTypes.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/TestUnionRecord.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/TestUnionRecord.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/TestUnionRecord.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/TestUnionRecord.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/foo.Bar.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/foo.Bar.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/foo.Bar.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/foo.Bar.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/full_record_v1.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/full_record_v1.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/full_record_v1.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/full_record_v1.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/full_record_v2.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/full_record_v2.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/full_record_v2.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/full_record_v2.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/logical-uuid.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/logical-uuid.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/logical-uuid.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/logical-uuid.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/logical_types_with_multiple_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/logical_types_with_multiple_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/logical_types_with_multiple_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/logical_types_with_multiple_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/regression_error_field_in_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/regression_error_field_in_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/regression_error_field_in_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/regression_error_field_in_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/schema-location-read.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/schema-location-read.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/schema-location-read.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/schema-location-read.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/schema-location-write.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/schema-location-write.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/schema-location-write.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/schema-location-write.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/schema-location.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/schema-location.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/schema-location.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/schema-location.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/simple_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/simple_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/simple_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/simple_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/union_and_fixed_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/union_and_fixed_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+json/union_and_fixed_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+json/union_and_fixed_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/ApplicationEvent.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/ApplicationEvent.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/ApplicationEvent.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/ApplicationEvent.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/DocumentInfo.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/DocumentInfo.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/DocumentInfo.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/DocumentInfo.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/MyResponse.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/MyResponse.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/MyResponse.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/MyResponse.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/SchemaBuilder.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/SchemaBuilder.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/SchemaBuilder.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/SchemaBuilder.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/TestUnionRecord.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/TestUnionRecord.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/TestUnionRecord.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/TestUnionRecord.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/foo.Bar.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/foo.Bar.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/foo.Bar.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/foo.Bar.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/full_record_v1.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/full_record_v1.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/full_record_v1.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/full_record_v1.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/full_record_v2.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/full_record_v2.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/full_record_v2.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/full_record_v2.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/logical-uuid.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/logical-uuid.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/logical-uuid.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/logical-uuid.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/regression_error_field_in_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/regression_error_field_in_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/regression_error_field_in_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/regression_error_field_in_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/schema-location-read.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/schema-location-read.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/schema-location-read.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/schema-location-read.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/schema-location-write.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/schema-location-write.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/schema-location-write.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/schema-location-write.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/schema-location.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/schema-location.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/schema-location.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/schema-location.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/simple_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/simple_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/simple_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/simple_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/union_and_fixed_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/union_and_fixed_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro+yaml/union_and_fixed_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro+yaml/union_and_fixed_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/ApplicationEvent.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/ApplicationEvent.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/ApplicationEvent.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/ApplicationEvent.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/ApplicationEvent.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/ApplicationEvent.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/ApplicationEvent.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/ApplicationEvent.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/DocumentInfo.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/DocumentInfo.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/DocumentInfo.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/DocumentInfo.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/DocumentInfo.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/DocumentInfo.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/DocumentInfo.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/DocumentInfo.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/MyResponse.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/MyResponse.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/MyResponse.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/MyResponse.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/MyResponse.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/MyResponse.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/MyResponse.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/MyResponse.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/SchemaBuilder.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/SchemaBuilder.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/SchemaBuilder.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/SchemaBuilder.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/SchemaBuilder.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/SchemaBuilder.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/SchemaBuilder.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/SchemaBuilder.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/TestRecordWithLogicalTypes.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/TestRecordWithLogicalTypes.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/TestRecordWithLogicalTypes.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/TestRecordWithLogicalTypes.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/TestRecordWithLogicalTypes.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/TestRecordWithLogicalTypes.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/TestRecordWithLogicalTypes.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/TestRecordWithLogicalTypes.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/TestRecordWithMapsAndArrays.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/TestRecordWithMapsAndArrays.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/TestRecordWithMapsAndArrays.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/TestRecordWithMapsAndArrays.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/TestUnionRecord.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/TestUnionRecord.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/TestUnionRecord.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/TestUnionRecord.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/TestUnionRecord.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/TestUnionRecord.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/TestUnionRecord.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/TestUnionRecord.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/foo.Bar.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/foo.Bar.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/foo.Bar.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/foo.Bar.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/foo.Bar.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/foo.Bar.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/foo.Bar.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/foo.Bar.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/full_record_v1.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/full_record_v1.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/full_record_v1.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/full_record_v1.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/full_record_v1.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/full_record_v1.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/full_record_v1.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/full_record_v1.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/full_record_v2.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/full_record_v2.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/full_record_v2.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/full_record_v2.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/full_record_v2.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/full_record_v2.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/full_record_v2.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/full_record_v2.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/logical-uuid.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/logical-uuid.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/logical-uuid.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/logical-uuid.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/logical-uuid.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/logical-uuid.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/logical-uuid.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/logical-uuid.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/logical_types_with_multiple_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/logical_types_with_multiple_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/logical_types_with_multiple_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/logical_types_with_multiple_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/logical_types_with_multiple_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/logical_types_with_multiple_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/logical_types_with_multiple_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/logical_types_with_multiple_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/regression_error_field_in_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/regression_error_field_in_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/regression_error_field_in_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/regression_error_field_in_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/regression_error_field_in_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/regression_error_field_in_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/regression_error_field_in_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/regression_error_field_in_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/schema-location-read.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/schema-location-read.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/schema-location-read.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/schema-location-read.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/schema-location-read.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/schema-location-read.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/schema-location-read.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/schema-location-read.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/schema-location-write.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/schema-location-write.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/schema-location-write.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/schema-location-write.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/schema-location-write.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/schema-location-write.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/schema-location-write.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/schema-location-write.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/schema-location.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/schema-location.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/schema-location.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/schema-location.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/schema-location.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/schema-location.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/schema-location.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/schema-location.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/simple_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/simple_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/simple_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/simple_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/simple_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/simple_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/simple_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/simple_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/union_and_fixed_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/union_and_fixed_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/union_and_fixed_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/union_and_fixed_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/union_and_fixed_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/union_and_fixed_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.10.2/vnd.apache.avro/union_and_fixed_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.10.2/vnd.apache.avro/union_and_fixed_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/ApplicationEvent.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/ApplicationEvent.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/ApplicationEvent.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/ApplicationEvent.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/DocumentInfo.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/DocumentInfo.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/DocumentInfo.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/DocumentInfo.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/MyResponse.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/MyResponse.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/MyResponse.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/MyResponse.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/SchemaBuilder.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/SchemaBuilder.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/SchemaBuilder.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/SchemaBuilder.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/TestRecordWithLogicalTypes.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/TestRecordWithLogicalTypes.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/TestRecordWithLogicalTypes.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/TestRecordWithLogicalTypes.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/TestUnionRecord.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/TestUnionRecord.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/TestUnionRecord.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/TestUnionRecord.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/foo.Bar.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/foo.Bar.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/foo.Bar.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/foo.Bar.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/full_record_v1.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/full_record_v1.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/full_record_v1.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/full_record_v1.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/full_record_v2.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/full_record_v2.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/full_record_v2.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/full_record_v2.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/logical-uuid.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/logical-uuid.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/logical-uuid.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/logical-uuid.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/logical_types_with_multiple_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/logical_types_with_multiple_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/logical_types_with_multiple_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/logical_types_with_multiple_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/regression_error_field_in_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/regression_error_field_in_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/regression_error_field_in_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/regression_error_field_in_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/schema-location-read.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/schema-location-read.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/schema-location-read.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/schema-location-read.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/schema-location-write.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/schema-location-write.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/schema-location-write.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/schema-location-write.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/schema-location.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/schema-location.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/schema-location.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/schema-location.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/simple_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/simple_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/simple_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/simple_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/union_and_fixed_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/union_and_fixed_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+json/union_and_fixed_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+json/union_and_fixed_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/ApplicationEvent.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/ApplicationEvent.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/ApplicationEvent.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/ApplicationEvent.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/DocumentInfo.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/DocumentInfo.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/DocumentInfo.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/DocumentInfo.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/MyResponse.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/MyResponse.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/MyResponse.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/MyResponse.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/SchemaBuilder.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/SchemaBuilder.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/SchemaBuilder.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/SchemaBuilder.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/TestUnionRecord.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/TestUnionRecord.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/TestUnionRecord.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/TestUnionRecord.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/foo.Bar.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/foo.Bar.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/foo.Bar.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/foo.Bar.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/full_record_v1.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/full_record_v1.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/full_record_v1.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/full_record_v1.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/full_record_v2.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/full_record_v2.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/full_record_v2.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/full_record_v2.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/logical-uuid.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/logical-uuid.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/logical-uuid.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/logical-uuid.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/regression_error_field_in_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/regression_error_field_in_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/regression_error_field_in_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/regression_error_field_in_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/schema-location-read.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/schema-location-read.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/schema-location-read.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/schema-location-read.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/schema-location-write.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/schema-location-write.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/schema-location-write.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/schema-location-write.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/schema-location.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/schema-location.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/schema-location.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/schema-location.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/simple_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/simple_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/simple_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/simple_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/union_and_fixed_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/union_and_fixed_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro+yaml/union_and_fixed_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro+yaml/union_and_fixed_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/ApplicationEvent.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/ApplicationEvent.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/ApplicationEvent.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/ApplicationEvent.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/ApplicationEvent.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/ApplicationEvent.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/ApplicationEvent.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/ApplicationEvent.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/DocumentInfo.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/DocumentInfo.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/DocumentInfo.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/DocumentInfo.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/DocumentInfo.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/DocumentInfo.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/DocumentInfo.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/DocumentInfo.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/MyResponse.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/MyResponse.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/MyResponse.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/MyResponse.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/MyResponse.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/MyResponse.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/MyResponse.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/MyResponse.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/SchemaBuilder.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/SchemaBuilder.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/SchemaBuilder.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/SchemaBuilder.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/SchemaBuilder.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/SchemaBuilder.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/SchemaBuilder.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/SchemaBuilder.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/TestRecordWithLogicalTypes.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/TestRecordWithLogicalTypes.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/TestRecordWithLogicalTypes.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/TestRecordWithLogicalTypes.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/TestRecordWithLogicalTypes.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/TestRecordWithLogicalTypes.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/TestRecordWithLogicalTypes.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/TestRecordWithLogicalTypes.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/TestRecordWithMapsAndArrays.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/TestRecordWithMapsAndArrays.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/TestRecordWithMapsAndArrays.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/TestRecordWithMapsAndArrays.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/TestUnionRecord.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/TestUnionRecord.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/TestUnionRecord.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/TestUnionRecord.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/TestUnionRecord.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/TestUnionRecord.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/TestUnionRecord.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/TestUnionRecord.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/foo.Bar.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/foo.Bar.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/foo.Bar.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/foo.Bar.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/foo.Bar.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/foo.Bar.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/foo.Bar.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/foo.Bar.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/full_record_v1.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/full_record_v1.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/full_record_v1.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/full_record_v1.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/full_record_v1.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/full_record_v1.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/full_record_v1.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/full_record_v1.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/full_record_v2.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/full_record_v2.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/full_record_v2.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/full_record_v2.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/full_record_v2.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/full_record_v2.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/full_record_v2.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/full_record_v2.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/logical-uuid.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/logical-uuid.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/logical-uuid.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/logical-uuid.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/logical-uuid.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/logical-uuid.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/logical-uuid.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/logical-uuid.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/logical_types_with_multiple_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/logical_types_with_multiple_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/logical_types_with_multiple_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/logical_types_with_multiple_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/logical_types_with_multiple_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/logical_types_with_multiple_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/logical_types_with_multiple_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/logical_types_with_multiple_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/regression_error_field_in_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/regression_error_field_in_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/regression_error_field_in_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/regression_error_field_in_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/regression_error_field_in_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/regression_error_field_in_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/regression_error_field_in_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/regression_error_field_in_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/schema-location-read.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/schema-location-read.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/schema-location-read.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/schema-location-read.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/schema-location-read.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/schema-location-read.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/schema-location-read.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/schema-location-read.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/schema-location-write.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/schema-location-write.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/schema-location-write.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/schema-location-write.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/schema-location-write.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/schema-location-write.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/schema-location-write.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/schema-location-write.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/schema-location.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/schema-location.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/schema-location.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/schema-location.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/schema-location.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/schema-location.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/schema-location.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/schema-location.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/simple_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/simple_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/simple_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/simple_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/simple_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/simple_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/simple_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/simple_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/union_and_fixed_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/union_and_fixed_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/union_and_fixed_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/union_and_fixed_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/union_and_fixed_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/union_and_fixed_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.0/vnd.apache.avro/union_and_fixed_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.0/vnd.apache.avro/union_and_fixed_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/ApplicationEvent.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/ApplicationEvent.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/ApplicationEvent.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/ApplicationEvent.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/DocumentInfo.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/DocumentInfo.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/DocumentInfo.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/DocumentInfo.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/MyResponse.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/MyResponse.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/MyResponse.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/MyResponse.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/SchemaBuilder.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/SchemaBuilder.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/SchemaBuilder.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/SchemaBuilder.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/TestRecordWithLogicalTypes.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/TestRecordWithLogicalTypes.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/TestRecordWithLogicalTypes.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/TestRecordWithLogicalTypes.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/TestUnionRecord.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/TestUnionRecord.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/TestUnionRecord.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/TestUnionRecord.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/foo.Bar.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/foo.Bar.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/foo.Bar.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/foo.Bar.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/full_record_v1.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/full_record_v1.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/full_record_v1.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/full_record_v1.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/full_record_v2.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/full_record_v2.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/full_record_v2.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/full_record_v2.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/logical-uuid.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/logical-uuid.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/logical-uuid.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/logical-uuid.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/logical_types_with_multiple_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/logical_types_with_multiple_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/logical_types_with_multiple_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/logical_types_with_multiple_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/regression_error_field_in_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/regression_error_field_in_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/regression_error_field_in_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/regression_error_field_in_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/schema-location-read.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/schema-location-read.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/schema-location-read.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/schema-location-read.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/schema-location-write.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/schema-location-write.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/schema-location-write.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/schema-location-write.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/schema-location.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/schema-location.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/schema-location.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/schema-location.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/simple_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/simple_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/simple_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/simple_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/union_and_fixed_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/union_and_fixed_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+json/union_and_fixed_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+json/union_and_fixed_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/ApplicationEvent.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/ApplicationEvent.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/ApplicationEvent.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/ApplicationEvent.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/DocumentInfo.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/DocumentInfo.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/DocumentInfo.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/DocumentInfo.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/MyResponse.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/MyResponse.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/MyResponse.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/MyResponse.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/SchemaBuilder.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/SchemaBuilder.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/SchemaBuilder.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/SchemaBuilder.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/TestUnionRecord.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/TestUnionRecord.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/TestUnionRecord.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/TestUnionRecord.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/foo.Bar.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/foo.Bar.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/foo.Bar.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/foo.Bar.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/full_record_v1.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/full_record_v1.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/full_record_v1.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/full_record_v1.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/full_record_v2.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/full_record_v2.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/full_record_v2.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/full_record_v2.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/logical-uuid.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/logical-uuid.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/logical-uuid.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/logical-uuid.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/regression_error_field_in_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/regression_error_field_in_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/regression_error_field_in_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/regression_error_field_in_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/schema-location-read.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/schema-location-read.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/schema-location-read.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/schema-location-read.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/schema-location-write.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/schema-location-write.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/schema-location-write.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/schema-location-write.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/schema-location.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/schema-location.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/schema-location.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/schema-location.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/simple_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/simple_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/simple_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/simple_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/union_and_fixed_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/union_and_fixed_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro+yaml/union_and_fixed_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro+yaml/union_and_fixed_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/ApplicationEvent.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/ApplicationEvent.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/ApplicationEvent.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/ApplicationEvent.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/ApplicationEvent.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/ApplicationEvent.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/ApplicationEvent.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/ApplicationEvent.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/DocumentInfo.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/DocumentInfo.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/DocumentInfo.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/DocumentInfo.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/DocumentInfo.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/DocumentInfo.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/DocumentInfo.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/DocumentInfo.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/MyResponse.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/MyResponse.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/MyResponse.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/MyResponse.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/MyResponse.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/MyResponse.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/MyResponse.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/MyResponse.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/SchemaBuilder.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/SchemaBuilder.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/SchemaBuilder.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/SchemaBuilder.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/SchemaBuilder.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/SchemaBuilder.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/SchemaBuilder.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/SchemaBuilder.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/TestRecordWithLogicalTypes.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/TestRecordWithLogicalTypes.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/TestRecordWithLogicalTypes.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/TestRecordWithLogicalTypes.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/TestRecordWithLogicalTypes.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/TestRecordWithLogicalTypes.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/TestRecordWithLogicalTypes.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/TestRecordWithLogicalTypes.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/TestRecordWithMapsAndArrays.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/TestRecordWithMapsAndArrays.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/TestRecordWithMapsAndArrays.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/TestRecordWithMapsAndArrays.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/TestUnionRecord.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/TestUnionRecord.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/TestUnionRecord.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/TestUnionRecord.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/TestUnionRecord.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/TestUnionRecord.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/TestUnionRecord.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/TestUnionRecord.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/foo.Bar.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/foo.Bar.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/foo.Bar.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/foo.Bar.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/foo.Bar.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/foo.Bar.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/foo.Bar.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/foo.Bar.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/full_record_v1.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/full_record_v1.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/full_record_v1.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/full_record_v1.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/full_record_v1.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/full_record_v1.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/full_record_v1.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/full_record_v1.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/full_record_v2.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/full_record_v2.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/full_record_v2.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/full_record_v2.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/full_record_v2.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/full_record_v2.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/full_record_v2.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/full_record_v2.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/logical-uuid.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/logical-uuid.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/logical-uuid.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/logical-uuid.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/logical-uuid.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/logical-uuid.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/logical-uuid.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/logical-uuid.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/logical_types_with_multiple_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/logical_types_with_multiple_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/logical_types_with_multiple_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/logical_types_with_multiple_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/logical_types_with_multiple_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/logical_types_with_multiple_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/logical_types_with_multiple_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/logical_types_with_multiple_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/regression_error_field_in_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/regression_error_field_in_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/regression_error_field_in_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/regression_error_field_in_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/regression_error_field_in_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/regression_error_field_in_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/regression_error_field_in_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/regression_error_field_in_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/schema-location-read.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/schema-location-read.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/schema-location-read.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/schema-location-read.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/schema-location-read.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/schema-location-read.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/schema-location-read.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/schema-location-read.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/schema-location-write.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/schema-location-write.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/schema-location-write.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/schema-location-write.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/schema-location-write.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/schema-location-write.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/schema-location-write.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/schema-location-write.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/schema-location.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/schema-location.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/schema-location.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/schema-location.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/schema-location.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/schema-location.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/schema-location.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/schema-location.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/simple_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/simple_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/simple_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/simple_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/simple_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/simple_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/simple_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/simple_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/union_and_fixed_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/union_and_fixed_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/union_and_fixed_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/union_and_fixed_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/union_and_fixed_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/union_and_fixed_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.11.1/vnd.apache.avro/union_and_fixed_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.11.1/vnd.apache.avro/union_and_fixed_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/ApplicationEvent.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/ApplicationEvent.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/ApplicationEvent.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/ApplicationEvent.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/DocumentInfo.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/DocumentInfo.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/DocumentInfo.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/DocumentInfo.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/MyResponse.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/MyResponse.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/MyResponse.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/MyResponse.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/SchemaBuilder.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/SchemaBuilder.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/SchemaBuilder.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/SchemaBuilder.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/TestRecordWithLogicalTypes.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/TestRecordWithLogicalTypes.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/TestRecordWithLogicalTypes.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/TestRecordWithLogicalTypes.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/TestUnionRecord.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/TestUnionRecord.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/TestUnionRecord.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/TestUnionRecord.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/foo.Bar.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/foo.Bar.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/foo.Bar.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/foo.Bar.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/full_record_v1.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/full_record_v1.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/full_record_v1.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/full_record_v1.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/full_record_v2.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/full_record_v2.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/full_record_v2.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/full_record_v2.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/logical-uuid.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/logical-uuid.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/logical-uuid.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/logical-uuid.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/logical_types_with_multiple_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/logical_types_with_multiple_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/logical_types_with_multiple_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/logical_types_with_multiple_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/regression_error_field_in_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/regression_error_field_in_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/regression_error_field_in_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/regression_error_field_in_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/schema-location-read.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/schema-location-read.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/schema-location-read.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/schema-location-read.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/schema-location-write.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/schema-location-write.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/schema-location-write.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/schema-location-write.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/schema-location.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/schema-location.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/schema-location.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/schema-location.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/simple_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/simple_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/simple_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/simple_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/union_and_fixed_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/union_and_fixed_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+json/union_and_fixed_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+json/union_and_fixed_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/ApplicationEvent.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/ApplicationEvent.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/ApplicationEvent.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/ApplicationEvent.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/DocumentInfo.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/DocumentInfo.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/DocumentInfo.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/DocumentInfo.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/MyResponse.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/MyResponse.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/MyResponse.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/MyResponse.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/SchemaBuilder.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/SchemaBuilder.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/SchemaBuilder.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/SchemaBuilder.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/TestUnionRecord.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/TestUnionRecord.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/TestUnionRecord.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/TestUnionRecord.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/foo.Bar.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/foo.Bar.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/foo.Bar.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/foo.Bar.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/full_record_v1.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/full_record_v1.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/full_record_v1.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/full_record_v1.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/full_record_v2.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/full_record_v2.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/full_record_v2.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/full_record_v2.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/logical-uuid.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/logical-uuid.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/logical-uuid.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/logical-uuid.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/regression_error_field_in_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/regression_error_field_in_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/regression_error_field_in_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/regression_error_field_in_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/schema-location-read.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/schema-location-read.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/schema-location-read.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/schema-location-read.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/schema-location-write.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/schema-location-write.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/schema-location-write.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/schema-location-write.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/schema-location.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/schema-location.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/schema-location.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/schema-location.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/simple_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/simple_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/simple_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/simple_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/union_and_fixed_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/union_and_fixed_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro+yaml/union_and_fixed_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro+yaml/union_and_fixed_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/ApplicationEvent.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/ApplicationEvent.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/ApplicationEvent.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/ApplicationEvent.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/ApplicationEvent.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/ApplicationEvent.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/ApplicationEvent.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/ApplicationEvent.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/DocumentInfo.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/DocumentInfo.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/DocumentInfo.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/DocumentInfo.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/DocumentInfo.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/DocumentInfo.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/DocumentInfo.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/DocumentInfo.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/MyResponse.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/MyResponse.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/MyResponse.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/MyResponse.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/MyResponse.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/MyResponse.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/MyResponse.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/MyResponse.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/SchemaBuilder.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/SchemaBuilder.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/SchemaBuilder.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/SchemaBuilder.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/SchemaBuilder.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/SchemaBuilder.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/SchemaBuilder.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/SchemaBuilder.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/TestRecordWithLogicalTypes.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/TestRecordWithLogicalTypes.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/TestRecordWithLogicalTypes.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/TestRecordWithLogicalTypes.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/TestRecordWithLogicalTypes.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/TestRecordWithLogicalTypes.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/TestRecordWithLogicalTypes.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/TestRecordWithLogicalTypes.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/TestRecordWithMapsAndArrays.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/TestRecordWithMapsAndArrays.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/TestRecordWithMapsAndArrays.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/TestRecordWithMapsAndArrays.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/TestUnionRecord.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/TestUnionRecord.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/TestUnionRecord.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/TestUnionRecord.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/TestUnionRecord.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/TestUnionRecord.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/TestUnionRecord.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/TestUnionRecord.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/foo.Bar.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/foo.Bar.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/foo.Bar.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/foo.Bar.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/foo.Bar.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/foo.Bar.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/foo.Bar.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/foo.Bar.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/full_record_v1.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/full_record_v1.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/full_record_v1.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/full_record_v1.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/full_record_v1.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/full_record_v1.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/full_record_v1.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/full_record_v1.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/full_record_v2.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/full_record_v2.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/full_record_v2.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/full_record_v2.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/full_record_v2.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/full_record_v2.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/full_record_v2.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/full_record_v2.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/logical-uuid.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/logical-uuid.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/logical-uuid.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/logical-uuid.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/logical-uuid.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/logical-uuid.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/logical-uuid.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/logical-uuid.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/logical_types_with_multiple_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/logical_types_with_multiple_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/logical_types_with_multiple_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/logical_types_with_multiple_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/logical_types_with_multiple_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/logical_types_with_multiple_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/logical_types_with_multiple_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/logical_types_with_multiple_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/regression_error_field_in_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/regression_error_field_in_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/regression_error_field_in_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/regression_error_field_in_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/regression_error_field_in_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/regression_error_field_in_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/regression_error_field_in_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/regression_error_field_in_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/schema-location-read.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/schema-location-read.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/schema-location-read.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/schema-location-read.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/schema-location-read.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/schema-location-read.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/schema-location-read.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/schema-location-read.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/schema-location-write.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/schema-location-write.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/schema-location-write.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/schema-location-write.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/schema-location-write.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/schema-location-write.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/schema-location-write.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/schema-location-write.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/schema-location.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/schema-location.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/schema-location.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/schema-location.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/schema-location.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/schema-location.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/schema-location.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/schema-location.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/simple_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/simple_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/simple_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/simple_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/simple_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/simple_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/simple_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/simple_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/union_and_fixed_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/union_and_fixed_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/union_and_fixed_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/union_and_fixed_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/union_and_fixed_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/union_and_fixed_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.0/vnd.apache.avro/union_and_fixed_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.0/vnd.apache.avro/union_and_fixed_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/ApplicationEvent.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/ApplicationEvent.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/ApplicationEvent.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/ApplicationEvent.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/DocumentInfo.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/DocumentInfo.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/DocumentInfo.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/DocumentInfo.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/MyResponse.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/MyResponse.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/MyResponse.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/MyResponse.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/SchemaBuilder.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/SchemaBuilder.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/SchemaBuilder.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/SchemaBuilder.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/TestRecordWithLogicalTypes.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/TestRecordWithLogicalTypes.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/TestRecordWithLogicalTypes.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/TestRecordWithLogicalTypes.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/TestUnionRecord.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/TestUnionRecord.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/TestUnionRecord.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/TestUnionRecord.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/foo.Bar.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/foo.Bar.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/foo.Bar.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/foo.Bar.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/full_record_v1.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/full_record_v1.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/full_record_v1.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/full_record_v1.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/full_record_v2.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/full_record_v2.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/full_record_v2.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/full_record_v2.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/logical-uuid.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/logical-uuid.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/logical-uuid.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/logical-uuid.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/logical_types_with_multiple_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/logical_types_with_multiple_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/logical_types_with_multiple_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/logical_types_with_multiple_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/regression_error_field_in_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/regression_error_field_in_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/regression_error_field_in_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/regression_error_field_in_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/schema-location-read.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/schema-location-read.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/schema-location-read.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/schema-location-read.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/schema-location-write.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/schema-location-write.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/schema-location-write.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/schema-location-write.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/schema-location.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/schema-location.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/schema-location.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/schema-location.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/simple_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/simple_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/simple_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/simple_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/union_and_fixed_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/union_and_fixed_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+json/union_and_fixed_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+json/union_and_fixed_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/ApplicationEvent.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/ApplicationEvent.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/ApplicationEvent.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/ApplicationEvent.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/DocumentInfo.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/DocumentInfo.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/DocumentInfo.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/DocumentInfo.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/MyResponse.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/MyResponse.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/MyResponse.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/MyResponse.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/SchemaBuilder.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/SchemaBuilder.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/SchemaBuilder.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/SchemaBuilder.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/TestUnionRecord.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/TestUnionRecord.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/TestUnionRecord.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/TestUnionRecord.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/foo.Bar.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/foo.Bar.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/foo.Bar.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/foo.Bar.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/full_record_v1.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/full_record_v1.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/full_record_v1.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/full_record_v1.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/full_record_v2.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/full_record_v2.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/full_record_v2.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/full_record_v2.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/logical-uuid.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/logical-uuid.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/logical-uuid.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/logical-uuid.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/regression_error_field_in_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/regression_error_field_in_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/regression_error_field_in_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/regression_error_field_in_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/schema-location-read.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/schema-location-read.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/schema-location-read.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/schema-location-read.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/schema-location-write.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/schema-location-write.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/schema-location-write.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/schema-location-write.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/schema-location.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/schema-location.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/schema-location.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/schema-location.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/simple_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/simple_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/simple_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/simple_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/union_and_fixed_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/union_and_fixed_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro+yaml/union_and_fixed_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro+yaml/union_and_fixed_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/ApplicationEvent.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/ApplicationEvent.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/ApplicationEvent.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/ApplicationEvent.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/ApplicationEvent.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/ApplicationEvent.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/ApplicationEvent.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/ApplicationEvent.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/DocumentInfo.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/DocumentInfo.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/DocumentInfo.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/DocumentInfo.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/DocumentInfo.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/DocumentInfo.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/DocumentInfo.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/DocumentInfo.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/MyResponse.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/MyResponse.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/MyResponse.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/MyResponse.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/MyResponse.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/MyResponse.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/MyResponse.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/MyResponse.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/SchemaBuilder.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/SchemaBuilder.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/SchemaBuilder.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/SchemaBuilder.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/SchemaBuilder.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/SchemaBuilder.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/SchemaBuilder.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/SchemaBuilder.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/TestRecordWithLogicalTypes.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/TestRecordWithLogicalTypes.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/TestRecordWithLogicalTypes.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/TestRecordWithLogicalTypes.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/TestRecordWithLogicalTypes.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/TestRecordWithLogicalTypes.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/TestRecordWithLogicalTypes.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/TestRecordWithLogicalTypes.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/TestRecordWithMapsAndArrays.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/TestRecordWithMapsAndArrays.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/TestRecordWithMapsAndArrays.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/TestRecordWithMapsAndArrays.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/TestUnionRecord.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/TestUnionRecord.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/TestUnionRecord.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/TestUnionRecord.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/TestUnionRecord.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/TestUnionRecord.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/TestUnionRecord.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/TestUnionRecord.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/foo.Bar.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/foo.Bar.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/foo.Bar.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/foo.Bar.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/foo.Bar.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/foo.Bar.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/foo.Bar.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/foo.Bar.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/full_record_v1.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/full_record_v1.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/full_record_v1.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/full_record_v1.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/full_record_v1.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/full_record_v1.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/full_record_v1.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/full_record_v1.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/full_record_v2.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/full_record_v2.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/full_record_v2.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/full_record_v2.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/full_record_v2.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/full_record_v2.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/full_record_v2.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/full_record_v2.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/logical-uuid.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/logical-uuid.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/logical-uuid.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/logical-uuid.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/logical-uuid.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/logical-uuid.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/logical-uuid.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/logical-uuid.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/logical_types_with_multiple_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/logical_types_with_multiple_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/logical_types_with_multiple_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/logical_types_with_multiple_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/logical_types_with_multiple_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/logical_types_with_multiple_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/logical_types_with_multiple_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/logical_types_with_multiple_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/regression_error_field_in_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/regression_error_field_in_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/regression_error_field_in_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/regression_error_field_in_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/regression_error_field_in_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/regression_error_field_in_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/regression_error_field_in_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/regression_error_field_in_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/schema-location-read.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/schema-location-read.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/schema-location-read.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/schema-location-read.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/schema-location-read.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/schema-location-read.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/schema-location-read.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/schema-location-read.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/schema-location-write.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/schema-location-write.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/schema-location-write.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/schema-location-write.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/schema-location-write.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/schema-location-write.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/schema-location-write.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/schema-location-write.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/schema-location.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/schema-location.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/schema-location.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/schema-location.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/schema-location.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/schema-location.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/schema-location.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/schema-location.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/simple_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/simple_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/simple_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/simple_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/simple_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/simple_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/simple_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/simple_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/union_and_fixed_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/union_and_fixed_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/union_and_fixed_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/union_and_fixed_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/union_and_fixed_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/union_and_fixed_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.1/vnd.apache.avro/union_and_fixed_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.1/vnd.apache.avro/union_and_fixed_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/ApplicationEvent.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/ApplicationEvent.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/ApplicationEvent.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/ApplicationEvent.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/DocumentInfo.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/DocumentInfo.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/DocumentInfo.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/DocumentInfo.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/MyResponse.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/MyResponse.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/MyResponse.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/MyResponse.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/SchemaBuilder.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/SchemaBuilder.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/SchemaBuilder.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/SchemaBuilder.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/TestRecordWithLogicalTypes.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/TestRecordWithLogicalTypes.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/TestRecordWithLogicalTypes.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/TestRecordWithLogicalTypes.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/TestRecordWithMapsAndArrays.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/TestUnionRecord.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/TestUnionRecord.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/TestUnionRecord.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/TestUnionRecord.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/foo.Bar.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/foo.Bar.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/foo.Bar.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/foo.Bar.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/full_record_v1.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/full_record_v1.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/full_record_v1.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/full_record_v1.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/full_record_v2.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/full_record_v2.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/full_record_v2.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/full_record_v2.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/logical-uuid.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/logical-uuid.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/logical-uuid.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/logical-uuid.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/logical_types_with_multiple_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/logical_types_with_multiple_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/logical_types_with_multiple_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/logical_types_with_multiple_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/regression_error_field_in_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/regression_error_field_in_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/regression_error_field_in_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/regression_error_field_in_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/schema-location-read.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/schema-location-read.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/schema-location-read.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/schema-location-read.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/schema-location-write.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/schema-location-write.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/schema-location-write.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/schema-location-write.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/schema-location.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/schema-location.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/schema-location.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/schema-location.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/simple_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/simple_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/simple_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/simple_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/union_and_fixed_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/union_and_fixed_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+json/union_and_fixed_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+json/union_and_fixed_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/ApplicationEvent.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/ApplicationEvent.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/ApplicationEvent.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/ApplicationEvent.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/DocumentInfo.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/DocumentInfo.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/DocumentInfo.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/DocumentInfo.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/MyResponse.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/MyResponse.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/MyResponse.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/MyResponse.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/SchemaBuilder.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/SchemaBuilder.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/SchemaBuilder.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/SchemaBuilder.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/TestRecordWithLogicalTypes.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/TestRecordWithMapsAndArrays.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/TestUnionRecord.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/TestUnionRecord.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/TestUnionRecord.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/TestUnionRecord.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/foo.Bar.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/foo.Bar.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/foo.Bar.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/foo.Bar.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/full_record_v1.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/full_record_v1.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/full_record_v1.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/full_record_v1.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/full_record_v2.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/full_record_v2.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/full_record_v2.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/full_record_v2.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/logical-uuid.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/logical-uuid.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/logical-uuid.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/logical-uuid.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/logical_types_with_multiple_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/regression_error_field_in_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/regression_error_field_in_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/regression_error_field_in_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/regression_error_field_in_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/schema-location-read.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/schema-location-read.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/schema-location-read.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/schema-location-read.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/schema-location-write.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/schema-location-write.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/schema-location-write.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/schema-location-write.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/schema-location.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/schema-location.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/schema-location.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/schema-location.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/simple_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/simple_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/simple_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/simple_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/union_and_fixed_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/union_and_fixed_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro+yaml/union_and_fixed_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro+yaml/union_and_fixed_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/ApplicationEvent.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/ApplicationEvent.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/ApplicationEvent.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/ApplicationEvent.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/ApplicationEvent.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/ApplicationEvent.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/ApplicationEvent.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/ApplicationEvent.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/DocumentInfo.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/DocumentInfo.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/DocumentInfo.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/DocumentInfo.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/DocumentInfo.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/DocumentInfo.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/DocumentInfo.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/DocumentInfo.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/MyResponse.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/MyResponse.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/MyResponse.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/MyResponse.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/MyResponse.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/MyResponse.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/MyResponse.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/MyResponse.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/SchemaBuilder.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/SchemaBuilder.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/SchemaBuilder.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/SchemaBuilder.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/SchemaBuilder.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/SchemaBuilder.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/SchemaBuilder.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/SchemaBuilder.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/TestRecordWithLogicalTypes.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/TestRecordWithLogicalTypes.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/TestRecordWithLogicalTypes.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/TestRecordWithLogicalTypes.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/TestRecordWithLogicalTypes.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/TestRecordWithLogicalTypes.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/TestRecordWithLogicalTypes.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/TestRecordWithLogicalTypes.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/TestRecordWithMapsAndArrays.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/TestRecordWithMapsAndArrays.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/TestRecordWithMapsAndArrays.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/TestRecordWithMapsAndArrays.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/TestRecordWithMapsAndArrays.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/TestUnionRecord.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/TestUnionRecord.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/TestUnionRecord.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/TestUnionRecord.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/TestUnionRecord.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/TestUnionRecord.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/TestUnionRecord.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/TestUnionRecord.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/foo.Bar.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/foo.Bar.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/foo.Bar.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/foo.Bar.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/foo.Bar.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/foo.Bar.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/foo.Bar.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/foo.Bar.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/full_record_v1.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/full_record_v1.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/full_record_v1.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/full_record_v1.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/full_record_v1.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/full_record_v1.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/full_record_v1.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/full_record_v1.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/full_record_v2.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/full_record_v2.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/full_record_v2.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/full_record_v2.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/full_record_v2.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/full_record_v2.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/full_record_v2.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/full_record_v2.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/logical-uuid.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/logical-uuid.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/logical-uuid.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/logical-uuid.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/logical-uuid.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/logical-uuid.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/logical-uuid.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/logical-uuid.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/logical_types_with_multiple_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/logical_types_with_multiple_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/logical_types_with_multiple_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/logical_types_with_multiple_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/logical_types_with_multiple_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/logical_types_with_multiple_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/logical_types_with_multiple_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/logical_types_with_multiple_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/regression_error_field_in_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/regression_error_field_in_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/regression_error_field_in_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/regression_error_field_in_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/regression_error_field_in_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/regression_error_field_in_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/regression_error_field_in_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/regression_error_field_in_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/schema-location-read.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/schema-location-read.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/schema-location-read.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/schema-location-read.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/schema-location-read.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/schema-location-read.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/schema-location-read.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/schema-location-read.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/schema-location-write.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/schema-location-write.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/schema-location-write.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/schema-location-write.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/schema-location-write.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/schema-location-write.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/schema-location-write.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/schema-location-write.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/schema-location.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/schema-location.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/schema-location.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/schema-location.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/schema-location.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/schema-location.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/schema-location.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/schema-location.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/simple_record.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/simple_record.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/simple_record.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/simple_record.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/simple_record.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/simple_record.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/simple_record.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/simple_record.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/union_and_fixed_fields.json b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/union_and_fixed_fields.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/union_and_fixed_fields.json rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/union_and_fixed_fields.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/union_and_fixed_fields.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/union_and_fixed_fields.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/avro/1.9.2/vnd.apache.avro/union_and_fixed_fields.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/avro/1.9.2/vnd.apache.avro/union_and_fixed_fields.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/json/schema+json/arrays.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/json/schema+json/arrays.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/json/schema+json/arrays.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/json/schema+json/arrays.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/json/schema+json/complex-object.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/json/schema+json/complex-object.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/json/schema+json/complex-object.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/json/schema+json/complex-object.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/json/schema+json/conditional-validation-if-else.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/json/schema+json/conditional-validation-if-else.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/json/schema+json/conditional-validation-if-else.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/json/schema+json/conditional-validation-if-else.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/json/schema+json/draft-07-core-schema-meta-schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/json/schema+json/draft-07-core-schema-meta-schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/json/schema+json/draft-07-core-schema-meta-schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/json/schema+json/draft-07-core-schema-meta-schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/json/schema+json/enumerated-values.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/json/schema+json/enumerated-values.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/json/schema+json/enumerated-values.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/json/schema+json/enumerated-values.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/json/schema+json/person.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/json/schema+json/person.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/json/schema+json/person.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/json/schema+json/person.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/json/schema+json/regex-pattern.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/json/schema+json/regex-pattern.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/json/schema+json/regex-pattern.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/json/schema+json/regex-pattern.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/json/schema+yaml/arrays.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/json/schema+yaml/arrays.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/json/schema+yaml/arrays.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/json/schema+yaml/arrays.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/json/schema+yaml/complex-object.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/json/schema+yaml/complex-object.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/json/schema+yaml/complex-object.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/json/schema+yaml/complex-object.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/json/schema+yaml/conditional-validation-if-else.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/json/schema+yaml/conditional-validation-if-else.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/json/schema+yaml/conditional-validation-if-else.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/json/schema+yaml/conditional-validation-if-else.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/json/schema+yaml/draft-07-core-schema-meta-schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/json/schema+yaml/draft-07-core-schema-meta-schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/json/schema+yaml/draft-07-core-schema-meta-schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/json/schema+yaml/draft-07-core-schema-meta-schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/json/schema+yaml/enumerated-values.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/json/schema+yaml/enumerated-values.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/json/schema+yaml/enumerated-values.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/json/schema+yaml/enumerated-values.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/json/schema+yaml/person.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/json/schema+yaml/person.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/json/schema+yaml/person.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/json/schema+yaml/person.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/json/schema+yaml/regex-pattern.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/json/schema+yaml/regex-pattern.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/json/schema+yaml/regex-pattern.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/json/schema+yaml/regex-pattern.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.0/vnd.oai.openapi+json/schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.0/vnd.oai.openapi+json/schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.0/vnd.oai.openapi+json/schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.0/vnd.oai.openapi+json/schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.0/vnd.oai.openapi+yaml/schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.0/vnd.oai.openapi+yaml/schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.0/vnd.oai.openapi+yaml/schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.0/vnd.oai.openapi+yaml/schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.0/vnd.oai.openapi/schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.0/vnd.oai.openapi/schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.0/vnd.oai.openapi/schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.0/vnd.oai.openapi/schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.0/vnd.oai.openapi/schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.0/vnd.oai.openapi/schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.0/vnd.oai.openapi/schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.0/vnd.oai.openapi/schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.1/vnd.oai.openapi+json/schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.1/vnd.oai.openapi+json/schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.1/vnd.oai.openapi+json/schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.1/vnd.oai.openapi+json/schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.1/vnd.oai.openapi+yaml/schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.1/vnd.oai.openapi+yaml/schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.1/vnd.oai.openapi+yaml/schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.1/vnd.oai.openapi+yaml/schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.1/vnd.oai.openapi/schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.1/vnd.oai.openapi/schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.1/vnd.oai.openapi/schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.1/vnd.oai.openapi/schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.1/vnd.oai.openapi/schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.1/vnd.oai.openapi/schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.1/vnd.oai.openapi/schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.1/vnd.oai.openapi/schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.2/vnd.oai.openapi+json/schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.2/vnd.oai.openapi+json/schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.2/vnd.oai.openapi+json/schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.2/vnd.oai.openapi+json/schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.2/vnd.oai.openapi+yaml/schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.2/vnd.oai.openapi+yaml/schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.2/vnd.oai.openapi+yaml/schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.2/vnd.oai.openapi+yaml/schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.2/vnd.oai.openapi/schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.2/vnd.oai.openapi/schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.2/vnd.oai.openapi/schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.2/vnd.oai.openapi/schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.2/vnd.oai.openapi/schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.2/vnd.oai.openapi/schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.2/vnd.oai.openapi/schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.2/vnd.oai.openapi/schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.3/vnd.oai.openapi+json/schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.3/vnd.oai.openapi+json/schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.3/vnd.oai.openapi+json/schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.3/vnd.oai.openapi+json/schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.3/vnd.oai.openapi+yaml/schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.3/vnd.oai.openapi+yaml/schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.3/vnd.oai.openapi+yaml/schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.3/vnd.oai.openapi+yaml/schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.3/vnd.oai.openapi/schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.3/vnd.oai.openapi/schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.3/vnd.oai.openapi/schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.3/vnd.oai.openapi/schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.3/vnd.oai.openapi/schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.3/vnd.oai.openapi/schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/openapi/3.0.3/vnd.oai.openapi/schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/openapi/3.0.3/vnd.oai.openapi/schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is empty/arrays.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is empty/arrays.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is empty/arrays.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is empty/arrays.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is empty/arrays.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is empty/arrays.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is empty/arrays.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is empty/arrays.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is empty/complex-object.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is empty/complex-object.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is empty/complex-object.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is empty/complex-object.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is empty/complex-object.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is empty/complex-object.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is empty/complex-object.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is empty/complex-object.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is empty/conditional-validation-if-else.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is empty/conditional-validation-if-else.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is empty/conditional-validation-if-else.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is empty/conditional-validation-if-else.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is empty/conditional-validation-if-else.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is empty/conditional-validation-if-else.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is empty/conditional-validation-if-else.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is empty/conditional-validation-if-else.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is empty/draft-07-core-schema-meta-schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is empty/draft-07-core-schema-meta-schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is empty/draft-07-core-schema-meta-schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is empty/draft-07-core-schema-meta-schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is empty/draft-07-core-schema-meta-schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is empty/draft-07-core-schema-meta-schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is empty/draft-07-core-schema-meta-schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is empty/draft-07-core-schema-meta-schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is empty/enumerated-values.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is empty/enumerated-values.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is empty/enumerated-values.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is empty/enumerated-values.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is empty/enumerated-values.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is empty/enumerated-values.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is empty/enumerated-values.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is empty/enumerated-values.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is empty/person.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is empty/person.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is empty/person.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is empty/person.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is empty/person.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is empty/person.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is empty/person.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is empty/person.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is empty/regex-pattern.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is empty/regex-pattern.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is empty/regex-pattern.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is empty/regex-pattern.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is empty/regex-pattern.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is empty/regex-pattern.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is empty/regex-pattern.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is empty/regex-pattern.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is null/arrays.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is null/arrays.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is null/arrays.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is null/arrays.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is null/arrays.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is null/arrays.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is null/arrays.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is null/arrays.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is null/complex-object.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is null/complex-object.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is null/complex-object.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is null/complex-object.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is null/complex-object.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is null/complex-object.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is null/complex-object.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is null/complex-object.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is null/conditional-validation-if-else.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is null/conditional-validation-if-else.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is null/conditional-validation-if-else.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is null/conditional-validation-if-else.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is null/conditional-validation-if-else.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is null/conditional-validation-if-else.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is null/conditional-validation-if-else.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is null/conditional-validation-if-else.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is null/draft-07-core-schema-meta-schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is null/draft-07-core-schema-meta-schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is null/draft-07-core-schema-meta-schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is null/draft-07-core-schema-meta-schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is null/draft-07-core-schema-meta-schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is null/draft-07-core-schema-meta-schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is null/draft-07-core-schema-meta-schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is null/draft-07-core-schema-meta-schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is null/enumerated-values.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is null/enumerated-values.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is null/enumerated-values.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is null/enumerated-values.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is null/enumerated-values.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is null/enumerated-values.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is null/enumerated-values.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is null/enumerated-values.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is null/person.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is null/person.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is null/person.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is null/person.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is null/person.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is null/person.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is null/person.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is null/person.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is null/regex-pattern.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is null/regex-pattern.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is null/regex-pattern.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is null/regex-pattern.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is null/regex-pattern.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is null/regex-pattern.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/schemaFormat is null/regex-pattern.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/schemaFormat is null/regex-pattern.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/without schemaFormat/arrays.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/without schemaFormat/arrays.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/without schemaFormat/arrays.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/without schemaFormat/arrays.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/without schemaFormat/arrays.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/without schemaFormat/arrays.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/without schemaFormat/arrays.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/without schemaFormat/arrays.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/without schemaFormat/complex-object.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/without schemaFormat/complex-object.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/without schemaFormat/complex-object.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/without schemaFormat/complex-object.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/without schemaFormat/complex-object.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/without schemaFormat/complex-object.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/without schemaFormat/complex-object.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/without schemaFormat/complex-object.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/without schemaFormat/conditional-validation-if-else.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/without schemaFormat/conditional-validation-if-else.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/without schemaFormat/conditional-validation-if-else.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/without schemaFormat/conditional-validation-if-else.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/without schemaFormat/conditional-validation-if-else.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/without schemaFormat/conditional-validation-if-else.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/without schemaFormat/conditional-validation-if-else.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/without schemaFormat/conditional-validation-if-else.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/without schemaFormat/draft-07-core-schema-meta-schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/without schemaFormat/draft-07-core-schema-meta-schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/without schemaFormat/draft-07-core-schema-meta-schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/without schemaFormat/draft-07-core-schema-meta-schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/without schemaFormat/draft-07-core-schema-meta-schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/without schemaFormat/draft-07-core-schema-meta-schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/without schemaFormat/draft-07-core-schema-meta-schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/without schemaFormat/draft-07-core-schema-meta-schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/without schemaFormat/enumerated-values.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/without schemaFormat/enumerated-values.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/without schemaFormat/enumerated-values.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/without schemaFormat/enumerated-values.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/without schemaFormat/enumerated-values.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/without schemaFormat/enumerated-values.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/without schemaFormat/enumerated-values.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/without schemaFormat/enumerated-values.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/without schemaFormat/person.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/without schemaFormat/person.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/without schemaFormat/person.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/without schemaFormat/person.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/without schemaFormat/person.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/without schemaFormat/person.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/without schemaFormat/person.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/without schemaFormat/person.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/without schemaFormat/regex-pattern.schema.json b/asyncapi-core/src/test/resources/schemas/multiformat/without schemaFormat/regex-pattern.schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/without schemaFormat/regex-pattern.schema.json rename to asyncapi-core/src/test/resources/schemas/multiformat/without schemaFormat/regex-pattern.schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/multiformat/without schemaFormat/regex-pattern.schema.yaml b/asyncapi-core/src/test/resources/schemas/multiformat/without schemaFormat/regex-pattern.schema.yaml similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/multiformat/without schemaFormat/regex-pattern.schema.yaml rename to asyncapi-core/src/test/resources/schemas/multiformat/without schemaFormat/regex-pattern.schema.yaml diff --git a/asyncapi-core/src/test/resources/json/v3/schema/openapi/discriminator-propertyname.json b/asyncapi-core/src/test/resources/schemas/openapi/discriminator-propertyname.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/openapi/discriminator-propertyname.json rename to asyncapi-core/src/test/resources/schemas/openapi/discriminator-propertyname.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/openapi/discriminator.json b/asyncapi-core/src/test/resources/schemas/openapi/discriminator.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/openapi/discriminator.json rename to asyncapi-core/src/test/resources/schemas/openapi/discriminator.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/openapi/externaldocumentation-url.json b/asyncapi-core/src/test/resources/schemas/openapi/externaldocumentation-url.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/openapi/externaldocumentation-url.json rename to asyncapi-core/src/test/resources/schemas/openapi/externaldocumentation-url.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/openapi/externaldocumentation.json b/asyncapi-core/src/test/resources/schemas/openapi/externaldocumentation.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/openapi/externaldocumentation.json rename to asyncapi-core/src/test/resources/schemas/openapi/externaldocumentation.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/openapi/properties/array.json b/asyncapi-core/src/test/resources/schemas/openapi/properties/array.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/openapi/properties/array.json rename to asyncapi-core/src/test/resources/schemas/openapi/properties/array.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/openapi/properties/null.json b/asyncapi-core/src/test/resources/schemas/openapi/properties/null.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/openapi/properties/null.json rename to asyncapi-core/src/test/resources/schemas/openapi/properties/null.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/openapi/schema.json b/asyncapi-core/src/test/resources/schemas/openapi/schema.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/openapi/schema.json rename to asyncapi-core/src/test/resources/schemas/openapi/schema.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/openapi/xml-attribute.json b/asyncapi-core/src/test/resources/schemas/openapi/xml-attribute.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/openapi/xml-attribute.json rename to asyncapi-core/src/test/resources/schemas/openapi/xml-attribute.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/openapi/xml-name-replacement.json b/asyncapi-core/src/test/resources/schemas/openapi/xml-name-replacement.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/openapi/xml-name-replacement.json rename to asyncapi-core/src/test/resources/schemas/openapi/xml-name-replacement.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/openapi/xml-prefix-and-namespace.json b/asyncapi-core/src/test/resources/schemas/openapi/xml-prefix-and-namespace.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/openapi/xml-prefix-and-namespace.json rename to asyncapi-core/src/test/resources/schemas/openapi/xml-prefix-and-namespace.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/openapi/xml-wrapped.json b/asyncapi-core/src/test/resources/schemas/openapi/xml-wrapped.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/openapi/xml-wrapped.json rename to asyncapi-core/src/test/resources/schemas/openapi/xml-wrapped.json diff --git a/asyncapi-core/src/test/resources/json/v3/schema/openapi/xml.json b/asyncapi-core/src/test/resources/schemas/openapi/xml.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/schema/openapi/xml.json rename to asyncapi-core/src/test/resources/schemas/openapi/xml.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/X509 - extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/X509 - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/X509 - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/X509 - extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/X509 - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/X509 - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/X509 - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/X509 - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/X509.json b/asyncapi-core/src/test/resources/schemas/security/v2/X509.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/X509.json rename to asyncapi-core/src/test/resources/schemas/security/v2/X509.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/apiKey - extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/apiKey - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/apiKey - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/apiKey - extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/apiKey - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/apiKey - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/apiKey - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/apiKey - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/apiKey.json b/asyncapi-core/src/test/resources/schemas/security/v2/apiKey.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/apiKey.json rename to asyncapi-core/src/test/resources/schemas/security/v2/apiKey.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/asymmetricEncryption - extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/asymmetricEncryption - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/asymmetricEncryption - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/asymmetricEncryption - extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/asymmetricEncryption - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/asymmetricEncryption - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/asymmetricEncryption - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/asymmetricEncryption - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/asymmetricEncryption.json b/asyncapi-core/src/test/resources/schemas/security/v2/asymmetricEncryption.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/asymmetricEncryption.json rename to asyncapi-core/src/test/resources/schemas/security/v2/asymmetricEncryption.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/gssapi - extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/gssapi - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/gssapi - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/gssapi - extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/gssapi - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/gssapi - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/gssapi - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/gssapi - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/gssapi.json b/asyncapi-core/src/test/resources/schemas/security/v2/gssapi.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/gssapi.json rename to asyncapi-core/src/test/resources/schemas/security/v2/gssapi.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/http/httpApiKey - extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/http/httpApiKey - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/http/httpApiKey - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/http/httpApiKey - extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/http/httpApiKey - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/http/httpApiKey - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/http/httpApiKey - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/http/httpApiKey - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/http/httpApiKey.json b/asyncapi-core/src/test/resources/schemas/security/v2/http/httpApiKey.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/http/httpApiKey.json rename to asyncapi-core/src/test/resources/schemas/security/v2/http/httpApiKey.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/http/httpBasic - extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/http/httpBasic - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/http/httpBasic - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/http/httpBasic - extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/http/httpBasic - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/http/httpBasic - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/http/httpBasic - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/http/httpBasic - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/http/httpBasic.json b/asyncapi-core/src/test/resources/schemas/security/v2/http/httpBasic.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/http/httpBasic.json rename to asyncapi-core/src/test/resources/schemas/security/v2/http/httpBasic.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/http/httpBearer - extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/http/httpBearer - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/http/httpBearer - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/http/httpBearer - extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/http/httpBearer - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/http/httpBearer - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/http/httpBearer - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/http/httpBearer - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/http/httpBearer.json b/asyncapi-core/src/test/resources/schemas/security/v2/http/httpBearer.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/http/httpBearer.json rename to asyncapi-core/src/test/resources/schemas/security/v2/http/httpBearer.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/flow/authorizationCodeOAuthFlow - extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/oauth2/flow/authorizationCodeOAuthFlow - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/flow/authorizationCodeOAuthFlow - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/oauth2/flow/authorizationCodeOAuthFlow - extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/flow/authorizationCodeOAuthFlow - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/oauth2/flow/authorizationCodeOAuthFlow - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/flow/authorizationCodeOAuthFlow - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/oauth2/flow/authorizationCodeOAuthFlow - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/flow/authorizationCodeOAuthFlow.json b/asyncapi-core/src/test/resources/schemas/security/v2/oauth2/flow/authorizationCodeOAuthFlow.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/flow/authorizationCodeOAuthFlow.json rename to asyncapi-core/src/test/resources/schemas/security/v2/oauth2/flow/authorizationCodeOAuthFlow.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/flow/clientCredentialsOAuthFlow - extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/oauth2/flow/clientCredentialsOAuthFlow - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/flow/clientCredentialsOAuthFlow - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/oauth2/flow/clientCredentialsOAuthFlow - extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/flow/clientCredentialsOAuthFlow - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/oauth2/flow/clientCredentialsOAuthFlow - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/flow/clientCredentialsOAuthFlow - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/oauth2/flow/clientCredentialsOAuthFlow - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/flow/clientCredentialsOAuthFlow.json b/asyncapi-core/src/test/resources/schemas/security/v2/oauth2/flow/clientCredentialsOAuthFlow.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/flow/clientCredentialsOAuthFlow.json rename to asyncapi-core/src/test/resources/schemas/security/v2/oauth2/flow/clientCredentialsOAuthFlow.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/flow/implicitOAuthFlow - extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/oauth2/flow/implicitOAuthFlow - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/flow/implicitOAuthFlow - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/oauth2/flow/implicitOAuthFlow - extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/flow/implicitOAuthFlow - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/oauth2/flow/implicitOAuthFlow - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/flow/implicitOAuthFlow - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/oauth2/flow/implicitOAuthFlow - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/flow/implicitOAuthFlow.json b/asyncapi-core/src/test/resources/schemas/security/v2/oauth2/flow/implicitOAuthFlow.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/flow/implicitOAuthFlow.json rename to asyncapi-core/src/test/resources/schemas/security/v2/oauth2/flow/implicitOAuthFlow.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/flow/oauthFlow - extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/oauth2/flow/oauthFlow - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/flow/oauthFlow - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/oauth2/flow/oauthFlow - extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/flow/oauthFlow - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/oauth2/flow/oauthFlow - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/flow/oauthFlow - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/oauth2/flow/oauthFlow - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/flow/oauthFlow.json b/asyncapi-core/src/test/resources/schemas/security/v2/oauth2/flow/oauthFlow.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/flow/oauthFlow.json rename to asyncapi-core/src/test/resources/schemas/security/v2/oauth2/flow/oauthFlow.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/flow/passwordOAuthFlow - extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/oauth2/flow/passwordOAuthFlow - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/flow/passwordOAuthFlow - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/oauth2/flow/passwordOAuthFlow - extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/flow/passwordOAuthFlow - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/oauth2/flow/passwordOAuthFlow - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/flow/passwordOAuthFlow - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/oauth2/flow/passwordOAuthFlow - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/flow/passwordOAuthFlow.json b/asyncapi-core/src/test/resources/schemas/security/v2/oauth2/flow/passwordOAuthFlow.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/flow/passwordOAuthFlow.json rename to asyncapi-core/src/test/resources/schemas/security/v2/oauth2/flow/passwordOAuthFlow.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/oauth2 - extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/oauth2/oauth2 - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/oauth2 - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/oauth2/oauth2 - extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/oauth2 - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/oauth2/oauth2 - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/oauth2 - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/oauth2/oauth2 - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/oauth2.json b/asyncapi-core/src/test/resources/schemas/security/v2/oauth2/oauth2.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/oauth2.json rename to asyncapi-core/src/test/resources/schemas/security/v2/oauth2/oauth2.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/oauthFlows - extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/oauth2/oauthFlows - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/oauthFlows - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/oauth2/oauthFlows - extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/oauthFlows - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/oauth2/oauthFlows - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/oauthFlows - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/oauth2/oauthFlows - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/oauthFlows.json b/asyncapi-core/src/test/resources/schemas/security/v2/oauth2/oauthFlows.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/oauth2/oauthFlows.json rename to asyncapi-core/src/test/resources/schemas/security/v2/oauth2/oauthFlows.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/openIdConnect - extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/openIdConnect - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/openIdConnect - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/openIdConnect - extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/openIdConnect - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/openIdConnect - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/openIdConnect - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/openIdConnect - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/openIdConnect.json b/asyncapi-core/src/test/resources/schemas/security/v2/openIdConnect.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/openIdConnect.json rename to asyncapi-core/src/test/resources/schemas/security/v2/openIdConnect.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/plain - extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/plain - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/plain - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/plain - extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/plain - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/plain - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/plain - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/plain - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/plain.json b/asyncapi-core/src/test/resources/schemas/security/v2/plain.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/plain.json rename to asyncapi-core/src/test/resources/schemas/security/v2/plain.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/scramSha256 - extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/scramSha256 - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/scramSha256 - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/scramSha256 - extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/scramSha256 - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/scramSha256 - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/scramSha256 - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/scramSha256 - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/scramSha256.json b/asyncapi-core/src/test/resources/schemas/security/v2/scramSha256.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/scramSha256.json rename to asyncapi-core/src/test/resources/schemas/security/v2/scramSha256.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/scramSha512 - extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/scramSha512 - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/scramSha512 - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/scramSha512 - extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/scramSha512 - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/scramSha512 - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/scramSha512 - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/scramSha512 - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/scramSha512.json b/asyncapi-core/src/test/resources/schemas/security/v2/scramSha512.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/scramSha512.json rename to asyncapi-core/src/test/resources/schemas/security/v2/scramSha512.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/symmetricEncryption - extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/symmetricEncryption - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/symmetricEncryption - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/symmetricEncryption - extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/symmetricEncryption - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/symmetricEncryption - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/symmetricEncryption - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/symmetricEncryption - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/symmetricEncryption.json b/asyncapi-core/src/test/resources/schemas/security/v2/symmetricEncryption.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/symmetricEncryption.json rename to asyncapi-core/src/test/resources/schemas/security/v2/symmetricEncryption.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/userPassword - extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/userPassword - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/userPassword - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/userPassword - extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/userPassword - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v2/userPassword - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/userPassword - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v2/userPassword - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/userPassword.json b/asyncapi-core/src/test/resources/schemas/security/v2/userPassword.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/userPassword.json rename to asyncapi-core/src/test/resources/schemas/security/v2/userPassword.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/X509 - extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/X509 - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/X509 - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/X509 - extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/X509 - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/X509 - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/X509 - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/X509 - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/X509.json b/asyncapi-core/src/test/resources/schemas/security/v3/X509.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/X509.json rename to asyncapi-core/src/test/resources/schemas/security/v3/X509.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/apiKey - extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/apiKey - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/apiKey - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/apiKey - extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/apiKey - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/apiKey - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/apiKey - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/apiKey - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/apiKey.json b/asyncapi-core/src/test/resources/schemas/security/v3/apiKey.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/apiKey.json rename to asyncapi-core/src/test/resources/schemas/security/v3/apiKey.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/asymmetricEncryption - extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/asymmetricEncryption - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/asymmetricEncryption - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/asymmetricEncryption - extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/asymmetricEncryption - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/asymmetricEncryption - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/asymmetricEncryption - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/asymmetricEncryption - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/asymmetricEncryption.json b/asyncapi-core/src/test/resources/schemas/security/v3/asymmetricEncryption.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/asymmetricEncryption.json rename to asyncapi-core/src/test/resources/schemas/security/v3/asymmetricEncryption.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/gssapi - extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/gssapi - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/gssapi - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/gssapi - extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/gssapi - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/gssapi - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/gssapi - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/gssapi - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/gssapi.json b/asyncapi-core/src/test/resources/schemas/security/v3/gssapi.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/gssapi.json rename to asyncapi-core/src/test/resources/schemas/security/v3/gssapi.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/http/httpApiKey - extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/http/httpApiKey - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/http/httpApiKey - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/http/httpApiKey - extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/http/httpApiKey - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/http/httpApiKey - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/http/httpApiKey - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/http/httpApiKey - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/http/httpApiKey.json b/asyncapi-core/src/test/resources/schemas/security/v3/http/httpApiKey.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/http/httpApiKey.json rename to asyncapi-core/src/test/resources/schemas/security/v3/http/httpApiKey.json diff --git a/asyncapi-core/src/test/resources/json/v2/security_scheme/http/httpBasic - extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/http/httpBasic - extended.json similarity index 85% rename from asyncapi-core/src/test/resources/json/v2/security_scheme/http/httpBasic - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/http/httpBasic - extended.json index f41e4c2c..5477e747 100644 --- a/asyncapi-core/src/test/resources/json/v2/security_scheme/http/httpBasic - extended.json +++ b/asyncapi-core/src/test/resources/schemas/security/v3/http/httpBasic - extended.json @@ -2,7 +2,6 @@ "type" : "http", "description" : "http", "scheme" : "basic", - "bearerFormat" : null, "x-number" : 0, "x-string" : "", "x-object" : { diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/http/httpBasic - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/http/httpBasic - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/http/httpBasic - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/http/httpBasic - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/http/httpBasic.json b/asyncapi-core/src/test/resources/schemas/security/v3/http/httpBasic.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/http/httpBasic.json rename to asyncapi-core/src/test/resources/schemas/security/v3/http/httpBasic.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/http/httpBearer - extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/http/httpBearer - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/http/httpBearer - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/http/httpBearer - extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/http/httpBearer - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/http/httpBearer - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/http/httpBearer - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/http/httpBearer - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/http/httpBearer.json b/asyncapi-core/src/test/resources/schemas/security/v3/http/httpBearer.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/http/httpBearer.json rename to asyncapi-core/src/test/resources/schemas/security/v3/http/httpBearer.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/flow/authorizationCodeOAuthFlow - extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/oauth2/flow/authorizationCodeOAuthFlow - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/flow/authorizationCodeOAuthFlow - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/oauth2/flow/authorizationCodeOAuthFlow - extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/flow/authorizationCodeOAuthFlow - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/oauth2/flow/authorizationCodeOAuthFlow - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/flow/authorizationCodeOAuthFlow - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/oauth2/flow/authorizationCodeOAuthFlow - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/flow/authorizationCodeOAuthFlow.json b/asyncapi-core/src/test/resources/schemas/security/v3/oauth2/flow/authorizationCodeOAuthFlow.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/flow/authorizationCodeOAuthFlow.json rename to asyncapi-core/src/test/resources/schemas/security/v3/oauth2/flow/authorizationCodeOAuthFlow.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/flow/clientCredentialsOAuthFlow - extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/oauth2/flow/clientCredentialsOAuthFlow - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/flow/clientCredentialsOAuthFlow - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/oauth2/flow/clientCredentialsOAuthFlow - extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/flow/clientCredentialsOAuthFlow - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/oauth2/flow/clientCredentialsOAuthFlow - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/flow/clientCredentialsOAuthFlow - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/oauth2/flow/clientCredentialsOAuthFlow - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/flow/clientCredentialsOAuthFlow.json b/asyncapi-core/src/test/resources/schemas/security/v3/oauth2/flow/clientCredentialsOAuthFlow.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/flow/clientCredentialsOAuthFlow.json rename to asyncapi-core/src/test/resources/schemas/security/v3/oauth2/flow/clientCredentialsOAuthFlow.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/flow/implicitOAuthFlow - extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/oauth2/flow/implicitOAuthFlow - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/flow/implicitOAuthFlow - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/oauth2/flow/implicitOAuthFlow - extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/flow/implicitOAuthFlow - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/oauth2/flow/implicitOAuthFlow - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/flow/implicitOAuthFlow - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/oauth2/flow/implicitOAuthFlow - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/flow/implicitOAuthFlow.json b/asyncapi-core/src/test/resources/schemas/security/v3/oauth2/flow/implicitOAuthFlow.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/flow/implicitOAuthFlow.json rename to asyncapi-core/src/test/resources/schemas/security/v3/oauth2/flow/implicitOAuthFlow.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/flow/oauthFlow - extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/oauth2/flow/oauthFlow - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/flow/oauthFlow - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/oauth2/flow/oauthFlow - extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/flow/oauthFlow - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/oauth2/flow/oauthFlow - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/flow/oauthFlow - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/oauth2/flow/oauthFlow - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/flow/oauthFlow.json b/asyncapi-core/src/test/resources/schemas/security/v3/oauth2/flow/oauthFlow.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/flow/oauthFlow.json rename to asyncapi-core/src/test/resources/schemas/security/v3/oauth2/flow/oauthFlow.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/flow/passwordOAuthFlow - extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/oauth2/flow/passwordOAuthFlow - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/flow/passwordOAuthFlow - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/oauth2/flow/passwordOAuthFlow - extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/flow/passwordOAuthFlow - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/oauth2/flow/passwordOAuthFlow - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/flow/passwordOAuthFlow - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/oauth2/flow/passwordOAuthFlow - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/flow/passwordOAuthFlow.json b/asyncapi-core/src/test/resources/schemas/security/v3/oauth2/flow/passwordOAuthFlow.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/flow/passwordOAuthFlow.json rename to asyncapi-core/src/test/resources/schemas/security/v3/oauth2/flow/passwordOAuthFlow.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/oauth2 - extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/oauth2/oauth2 - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/oauth2 - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/oauth2/oauth2 - extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/oauth2 - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/oauth2/oauth2 - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/oauth2 - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/oauth2/oauth2 - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/oauth2.json b/asyncapi-core/src/test/resources/schemas/security/v3/oauth2/oauth2.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/oauth2.json rename to asyncapi-core/src/test/resources/schemas/security/v3/oauth2/oauth2.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/oauthFlows - extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/oauth2/oauthFlows - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/oauthFlows - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/oauth2/oauthFlows - extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/oauthFlows - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/oauth2/oauthFlows - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/oauthFlows - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/oauth2/oauthFlows - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/oauthFlows.json b/asyncapi-core/src/test/resources/schemas/security/v3/oauth2/oauthFlows.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/oauth2/oauthFlows.json rename to asyncapi-core/src/test/resources/schemas/security/v3/oauth2/oauthFlows.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/openIdConnect - extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/openIdConnect - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/openIdConnect - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/openIdConnect - extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/openIdConnect - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/openIdConnect - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/openIdConnect - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/openIdConnect - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/openIdConnect.json b/asyncapi-core/src/test/resources/schemas/security/v3/openIdConnect.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/openIdConnect.json rename to asyncapi-core/src/test/resources/schemas/security/v3/openIdConnect.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/plain - extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/plain - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/plain - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/plain - extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/plain - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/plain - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/plain - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/plain - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/plain.json b/asyncapi-core/src/test/resources/schemas/security/v3/plain.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/plain.json rename to asyncapi-core/src/test/resources/schemas/security/v3/plain.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/scramSha256 - extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/scramSha256 - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/scramSha256 - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/scramSha256 - extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/scramSha256 - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/scramSha256 - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/scramSha256 - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/scramSha256 - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/scramSha256.json b/asyncapi-core/src/test/resources/schemas/security/v3/scramSha256.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/scramSha256.json rename to asyncapi-core/src/test/resources/schemas/security/v3/scramSha256.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/scramSha512 - extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/scramSha512 - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/scramSha512 - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/scramSha512 - extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/scramSha512 - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/scramSha512 - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/scramSha512 - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/scramSha512 - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/scramSha512.json b/asyncapi-core/src/test/resources/schemas/security/v3/scramSha512.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/scramSha512.json rename to asyncapi-core/src/test/resources/schemas/security/v3/scramSha512.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/symmetricEncryption - extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/symmetricEncryption - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/symmetricEncryption - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/symmetricEncryption - extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/symmetricEncryption - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/symmetricEncryption - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/symmetricEncryption - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/symmetricEncryption - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/symmetricEncryption.json b/asyncapi-core/src/test/resources/schemas/security/v3/symmetricEncryption.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/symmetricEncryption.json rename to asyncapi-core/src/test/resources/schemas/security/v3/symmetricEncryption.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/userPassword - extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/userPassword - extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/userPassword - extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/userPassword - extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/userPassword - wrongly extended.json b/asyncapi-core/src/test/resources/schemas/security/v3/userPassword - wrongly extended.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/userPassword - wrongly extended.json rename to asyncapi-core/src/test/resources/schemas/security/v3/userPassword - wrongly extended.json diff --git a/asyncapi-core/src/test/resources/json/v3/security_scheme/userPassword.json b/asyncapi-core/src/test/resources/schemas/security/v3/userPassword.json similarity index 100% rename from asyncapi-core/src/test/resources/json/v3/security_scheme/userPassword.json rename to asyncapi-core/src/test/resources/schemas/security/v3/userPassword.json diff --git a/pom.xml b/pom.xml index ba543c30..803cfb94 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.asyncapi asyncapi - 1.0.0-RC + 1.0.0-RC2 AsyncAPI @@ -49,13 +49,21 @@ - 1.8.0 - 2.14.2 - 1.8 - 1.18.26 - 5.9.2 + 1.9.23 + 2.17.0 + 1.18.32 + 5.10.2 1.7.0 UTF-8 + + + 3.2.0 + 1.8 + 21 + ${jdk.version} + ${jdk.version} + ${jdk-test.version} + ${jdk-test.version} @@ -78,16 +86,23 @@ ${junit5.version} test + + org.junit.platform + junit-platform-suite-engine + 1.10.2 + test + + + org.jetbrains.kotlin + kotlin-stdlib + ${kotlin.version} + + - - org.jetbrains.kotlin - kotlin-stdlib-jdk8 - ${kotlin.version} - org.jetbrains.kotlin kotlin-test @@ -98,7 +113,7 @@ org.projectlombok lombok - 1.18.10 + ${lombok.version} @@ -147,7 +162,7 @@ org.apache.maven.plugins maven-source-plugin - 3.2.1 + 3.3.1 attach-sources @@ -160,7 +175,10 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.5.0 + 3.6.3 + + missing + attach-javadocs @@ -204,32 +222,26 @@ - ${java.version} + ${jdk-test.version} org.apache.maven.plugins - maven-compiler-plugin - 3.11.0 + maven-toolchains-plugin + ${maven-toolchains-plugin.version} - compile - compile - - compile - - - - testCompile - test-compile - testCompile + toolchain - ${java.version} - ${java.version} + + + ${jdk-test.version} + +

KeywordDescription