Repository: asyncapi/modelina
Pull request #563 (2022-01-05 15:57:25)

feat: support AsyncAPI v2.3.0
**Description**
Supports AsyncAPI inputs for upcoming version 2.3.0

**Related issue(s)**
Part of https://github.com/asyncapi/spec/pull/681

sonarcloud[bot]: Kudos, SonarCloud Quality Gate passed!&nbsp; &nbsp; ![Quality Gate passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/passed-16px.png 'Quality Gate passed')

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=CODE_SMELL) [0 Code Smells](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=CODE_SMELL)

[![No Coverage information](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/NoCoverageInfo-16px.png 'No Coverage information')](https://sonarcloud.io/component_measures?id=asyncapi_generator-model-sdk&pullRequest=563) No Coverage information  
[![0.0%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/3-16px.png '0.0%')](https://sonarcloud.io/component_measures?id=asyncapi_generator-model-sdk&pullRequest=563&metric=new_duplicated_lines_density&view=list) [0.0% Duplication](https://sonarcloud.io/component_measures?id=asyncapi_generator-model-sdk&pullRequest=563&metric=new_duplicated_lines_density&view=list)


coveralls: ## Pull Request Test Coverage Report for [Build 1659176418](https://coveralls.io/builds/45396453)

* **1** of **1**   **(100.0%)**  changed or added relevant line in **1** file are covered.
* No unchanged relevant lines lost coverage.
* Overall coverage remained the same at **93.253%**

---



|  Totals | [![Coverage Status](https://coveralls.io/builds/45396453/badge)](https://coveralls.io/builds/45396453) |
| :-- | --: |
| Change from base [Build 1658755179](https://coveralls.io/builds/45393105): |  0.0% |
| Covered Lines: | 2327 |
| Relevant Lines: | 2376 |

---
##### 💛  - [Coveralls](https://coveralls.io)

sonarcloud[bot]: Kudos, SonarCloud Quality Gate passed!&nbsp; &nbsp; ![Quality Gate passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/passed-16px.png 'Quality Gate passed')

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=CODE_SMELL) [0 Code Smells](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=CODE_SMELL)

[![No Coverage information](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/NoCoverageInfo-16px.png 'No Coverage information')](https://sonarcloud.io/component_measures?id=asyncapi_generator-model-sdk&pullRequest=563) No Coverage information  
[![0.0%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/3-16px.png '0.0%')](https://sonarcloud.io/component_measures?id=asyncapi_generator-model-sdk&pullRequest=563&metric=new_duplicated_lines_density&view=list) [0.0% Duplication](https://sonarcloud.io/component_measures?id=asyncapi_generator-model-sdk&pullRequest=563&metric=new_duplicated_lines_density&view=list)


sonarcloud[bot]: Kudos, SonarCloud Quality Gate passed!&nbsp; &nbsp; ![Quality Gate passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/passed-16px.png 'Quality Gate passed')

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=CODE_SMELL) [0 Code Smells](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=563&resolved=false&types=CODE_SMELL)

[![No Coverage information](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/NoCoverageInfo-16px.png 'No Coverage information')](https://sonarcloud.io/component_measures?id=asyncapi_generator-model-sdk&pullRequest=563) No Coverage information  
[![0.0%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/3-16px.png '0.0%')](https://sonarcloud.io/component_measures?id=asyncapi_generator-model-sdk&pullRequest=563&metric=new_duplicated_lines_density&view=list) [0.0% Duplication](https://sonarcloud.io/component_measures?id=asyncapi_generator-model-sdk&pullRequest=563&metric=new_duplicated_lines_density&view=list)



Patch:
diff --git a/README.md b/README.md
index 766052e5..cbf624d6 100644
--- a/README.md
+++ b/README.md
@@ -67,7 +67,7 @@ To see the complete feature list for each language, please click the individual
   </tr>
   <tr>
     <td><a href="./docs/usage.md#generate-models-from-asyncapi-documents">AsyncAPI</a></td>
-    <td>We support the following AsyncAPI versions: <em>2.0.0, 2.1.0 and 2.2.0</em>, which generates models for all the defined message payloads.</td>
+    <td>We support the following AsyncAPI versions: <em>2.0.0, 2.1.0, 2.2.0 and 2.3.0</em>, which generates models for all the defined message payloads.</td>
   </tr>
   <tr>
     <td><a href="./docs/usage.md#generate-models-from-json-schema-documents">JSON Schema</a></td>
diff --git a/package-lock.json b/package-lock.json
index 2519c4e8..8229e8a4 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,7 +11,7 @@
       "dependencies": {
         "@apidevtools/json-schema-ref-parser": "^9.0.9",
         "@apidevtools/swagger-parser": "^10.0.3",
-        "@asyncapi/parser": "^1.12.0",
+        "@asyncapi/parser": "^1.14.0",
         "change-case": "^4.1.2",
         "openapi-types": "9.3.0"
       },
@@ -82,12 +82,12 @@
       }
     },
     "node_modules/@asyncapi/parser": {
-      "version": "1.12.0",
-      "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-1.12.0.tgz",
-      "integrity": "sha512-SIM6DDVk/DLvFlSdWF0UelOaOy8zItWGl1vQn79NkAXN9JfBV6eUZ+Sp9xb2pVrMcELtOKsy4Qp9UeDHPpInfg==",
+      "version": "1.14.0",
+      "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-1.14.0.tgz",
+      "integrity": "sha512-OHqvInhquPwthrSEkglxqjj6+6A2gZW3NnmyOoXmWb7/9jS90hJwn9bQOMkd4bx2lT6PWmlZjjKFEldH8ILRQg==",
       "dependencies": {
         "@apidevtools/json-schema-ref-parser": "^9.0.6",
-        "@asyncapi/specs": "^2.11.0",
+        "@asyncapi/specs": "^2.13.0",
         "@fmvilas/pseudo-yaml-ast": "^0.3.1",
         "ajv": "^6.10.1",
         "js-yaml": "^3.13.1",
@@ -133,9 +133,9 @@
       }
     },
     "node_modules/@asyncapi/specs": {
-      "version": "2.12.0",
-      "resolved": "https://registry.npmjs.org/@asyncapi/specs/-/specs-2.12.0.tgz",
-      "integrity": "sha512-X4Xkrl+9WXSk5EJhsueIxNx6ymHI5wpkw4ofetV+VRnPLNob/XO4trPSJClrL5hlknxbGADLvlrkI5d3XJ996g=="
+      "version": "2.13.0",
+      "resolved": "https://registry.npmjs.org/@asyncapi/specs/-/specs-2.13.0.tgz",
+      "integrity": "sha512-X0OrxJtzwRH8iLILO/gUTDqjGVPmagmdlgdyuBggYAoGXzF6ZuAws3XCLxtPNve5eA/0V/1puwpUYEGekI22og=="
     },
     "node_modules/@babel/code-frame": {
       "version": "7.15.8",
@@ -14978,12 +14978,12 @@
       }
     },
     "@asyncapi/parser": {
-      "version": "1.12.0",
-      "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-1.12.0.tgz",
-      "integrity": "sha512-SIM6DDVk/DLvFlSdWF0UelOaOy8zItWGl1vQn79NkAXN9JfBV6eUZ+Sp9xb2pVrMcELtOKsy4Qp9UeDHPpInfg==",
+      "version": "1.14.0",
+      "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-1.14.0.tgz",
+      "integrity": "sha512-OHqvInhquPwthrSEkglxqjj6+6A2gZW3NnmyOoXmWb7/9jS90hJwn9bQOMkd4bx2lT6PWmlZjjKFEldH8ILRQg==",
       "requires": {
         "@apidevtools/json-schema-ref-parser": "^9.0.6",
-        "@asyncapi/specs": "^2.11.0",
+        "@asyncapi/specs": "^2.13.0",
         "@fmvilas/pseudo-yaml-ast": "^0.3.1",
         "ajv": "^6.10.1",
         "js-yaml": "^3.13.1",
@@ -15024,9 +15024,9 @@
       }
     },
     "@asyncapi/specs": {
-      "version": "2.12.0",
-      "resolved": "https://registry.npmjs.org/@asyncapi/specs/-/specs-2.12.0.tgz",
-      "integrity": "sha512-X4Xkrl+9WXSk5EJhsueIxNx6ymHI5wpkw4ofetV+VRnPLNob/XO4trPSJClrL5hlknxbGADLvlrkI5d3XJ996g=="
+      "version": "2.13.0",
+      "resolved": "https://registry.npmjs.org/@asyncapi/specs/-/specs-2.13.0.tgz",
+      "integrity": "sha512-X0OrxJtzwRH8iLILO/gUTDqjGVPmagmdlgdyuBggYAoGXzF6ZuAws3XCLxtPNve5eA/0V/1puwpUYEGekI22og=="
     },
     "@babel/code-frame": {
       "version": "7.15.8",
diff --git a/package.json b/package.json
index 815f0696..1b0c7b12 100644
--- a/package.json
+++ b/package.json
@@ -36,7 +36,7 @@
   "dependencies": {
     "@apidevtools/json-schema-ref-parser": "^9.0.9",
     "@apidevtools/swagger-parser": "^10.0.3",
-    "@asyncapi/parser": "^1.12.0",
+    "@asyncapi/parser": "^1.14.0",
     "change-case": "^4.1.2",
     "openapi-types": "9.3.0"
   },
diff --git a/src/models/AsyncapiV2Schema.ts b/src/models/AsyncapiV2Schema.ts
index 8b1c7d4c..fc97d981 100644
--- a/src/models/AsyncapiV2Schema.ts
+++ b/src/models/AsyncapiV2Schema.ts
@@ -13,12 +13,14 @@ export class AsyncapiV2ExternalDocumentation {
 }
 
 /**
- * AsyncAPI 2.0 + 2.1 schema model
+ * AsyncAPI schema model
  * 
  * Based on Draft 7 with additions
  * 
  * https://www.asyncapi.com/docs/specifications/v2.0.0#schemaObject
  * https://www.asyncapi.com/docs/specifications/v2.1.0#schemaObject
+ * https://www.asyncapi.com/docs/specifications/v2.2.0#schemaObject
+ * https://www.asyncapi.com/docs/specifications/v2.3.0#schemaObject
  */
 export class AsyncapiV2Schema {
   $schema?: string;
diff --git a/src/processors/AsyncAPIInputProcessor.ts b/src/processors/AsyncAPIInputProcessor.ts
index 78eabd7e..b5569189 100644
--- a/src/processors/AsyncAPIInputProcessor.ts
+++ b/src/processors/AsyncAPIInputProcessor.ts
@@ -9,7 +9,7 @@ import { AsyncapiV2Schema } from '../models/AsyncapiV2Schema';
  * Class for processing AsyncAPI inputs
  */
 export class AsyncAPIInputProcessor extends AbstractInputProcessor {
-  static supportedVersions = ['2.0.0', '2.1.0', '2.2.0'];
+  static supportedVersions = ['2.0.0', '2.1.0', '2.2.0', '2.3.0'];
 
   /**
    * Process the input as an AsyncAPI document


Test patch:
diff --git a/test/blackbox/README.md b/test/blackbox/README.md
index 13c4ed43..8fb06b45 100644
--- a/test/blackbox/README.md
+++ b/test/blackbox/README.md
@@ -6,6 +6,7 @@ The documents being tested can be found under [docs](./docs), which contain docu
 - [AsyncAPI 2.0](./docs/AsyncAPI-2_0)
 - [AsyncAPI 2.1](./docs/AsyncAPI-2_1)
 - [AsyncAPI 2.2](./docs/AsyncAPI-2_2)
+- [AsyncAPI 2.3](./docs/AsyncAPI-2_3)
 - [JSON Schema draft 4](./docs/JsonSchemaDraft-4)
 - [JSON Schema draft 6](./docs/JsonSchemaDraft-6)
 - [JSON Schema draft 7](./docs/JsonSchemaDraft-7)
diff --git a/test/blackbox/docs/AsyncAPI-2_3/dummy.json b/test/blackbox/docs/AsyncAPI-2_3/dummy.json
new file mode 100644
index 00000000..3aabc2c5
--- /dev/null
+++ b/test/blackbox/docs/AsyncAPI-2_3/dummy.json
@@ -0,0 +1,574 @@
+{
+  "asyncapi": "2.3.0",
+  "externalDocs": {
+    "description": "Find more info here",
+    "url": "https://www.asyncapi.com"
+  },
+  "info": {
+    "title": "Dummy example with all spec features included",
+    "version": "0.0.1",
+    "description": "This is an example of AsyncAPI specification file that is suppose to include all possible features of the AsyncAPI specification. Do not use it on production.\n\nIt's goal is to support development of documentation and code generation with the [AsyncAPI Generator](https://github.com/asyncapi/generator/) and [Template projects](https://github.com/search?q=topic%3Aasyncapi+topic%3Agenerator+topic%3Atemplate)\n",
+    "license": {
+      "name": "Apache 2.0",
+      "url": "https://www.apache.org/licenses/LICENSE-2.0"
+    },
+    "contact": {
+      "name": "API Support",
+      "url": "http://www.asyncapi.com/support",
+      "email": "info@asyncapi.io"
+    },
+    "x-twitter": "@AsyncAPISpec"
+  },
+  "tags": [
+    {
+      "name": "root-tag1",
+      "externalDocs": {
+        "description": "External docs description 1",
+        "url": "https://www.asyncapi.com/"
+      }
+    },
+    {
+      "name": "root-tag2",
+      "description": "Description 2",
+      "externalDocs": {
+        "url": "https://www.asyncapi.com/"
+      }
+    },
+    {
+      "name": "root-tag3"
+    },
+    {
+      "name": "root-tag4",
+      "description": "Description 4"
+    },
+    {
+      "name": "root-tag5",
+      "externalDocs": {
+        "url": "https://www.asyncapi.com/"
+      }
+    }
+  ],
+  "servers": {
+    "dummy-mqtt": {
+      "url": "mqtt://localhost",
+      "protocol": "mqtt",
+      "description": "dummy MQTT broker",
+      "bindings": {
+        "mqtt": {
+          "clientId": "guest",
+          "cleanSession": true
+        }
+      }
+    },
+    "dummy-amqp": {
+      "url": "amqp://localhost:{port}",
+      "protocol": "amqp",
+      "description": "dummy AMQP broker",
+      "protocolVersion": "0.9.1",
+      "variables": {
+        "port": {
+          "enum": [
+            "15672",
+            "5672"
+          ]
+        }
+      },
+      "security": [
+        {
+          "user-password": []
+        }
+      ]
+    },
+    "dummy-kafka": {
+      "url": "http://localhost:{port}",
+      "protocol": "kafka",
+      "description": "dummy Kafka broker",
+      "variables": {
+        "port": {
+          "default": "9092"
+        }
+      }
+    }
+  },
+  "defaultContentType": "application/json",
+  "channels": {
+    "dummy/channel/with/{dummy}/parameter/create": {
+      "servers": [
+        "dummy-kafka"
+      ],
+      "x-dummy-security": {
+        "$ref": "#/components/securitySchemes/supportedOauthFlows/flows/clientCredentials"
+      },
+      "description": "Dummy channel description.",
+      "parameters": {
+        "dummy": {
+          "$ref": "#/components/parameters/dummy"
+        }
+      },
+      "publish": {
+        "summary": "Inform whenever something dummy is created.",
+        "description": "Longer description.\n\nStill dummy though.\n",
+        "operationId": "receiveNewDummyInfo",
+        "tags": [
+          {
+            "name": "oparation-tag1",
+            "externalDocs": {
+              "description": "External docs description 1",
+              "url": "https://www.asyncapi.com/"
+            }
+          },
+          {
+            "name": "oparation-tag2",
+            "description": "Description 2",
+            "externalDocs": {
+              "url": "https://www.asyncapi.com/"
+            }
+          },
+          {
+            "name": "oparation-tag3"
+          },
+          {
+            "name": "oparation-tag4",
+            "description": "Description 4"
+          },
+          {
+            "name": "oparation-tag5",
+            "externalDocs": {
+              "url": "https://www.asyncapi.com/"
+            }
+          }
+        ],
+        "traits": [
+          {
+            "$ref": "#/components/operationTraits/kafka"
+          }
+        ],
+        "message": {
+          "$ref": "#/components/messages/dummyCreated"
+        }
+      }
+    },
+    "dummy/channel/without/parameter": {
+      "bindings": {
+        "amqp": {
+          "is": "routingKey"
+        }
+      },
+      "subscribe": {
+        "operationId": "receiveSystemInfo",
+        "bindings": {
+          "amqp": {
+            "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"
+          }
+        },
+        "message": {
+          "$ref": "#/components/messages/dummyInfo"
+        }
+      }
+    }
+  },
+  "components": {
+    "messages": {
+      "dummyCreated": {
+        "name": "dummyCreated",
+        "title": "Dummy created message",
+        "summary": "This is just a dummy create message",
+        "correlationId": {
+          "description": "This is a dummy correlation ID.",
+          "location": "$message.header#/correlationId"
+        },
+        "tags": [
+          {
+            "name": "message-tag1",
+            "externalDocs": {
+              "description": "External docs description 1",
+              "url": "https://www.asyncapi.com/"
+            }
+          },
+          {
+            "name": "message-tag2",
+            "description": "Description 2",
+            "externalDocs": {
+              "url": "https://www.asyncapi.com/"
+            }
+          },
+          {
+            "name": "message-tag3"
+          },
+          {
+            "name": "message-tag4",
+            "description": "Description 4"
+          },
+          {
+            "name": "message-tag5",
+            "externalDocs": {
+              "url": "https://www.asyncapi.com/"
+            }
+          }
+        ],
+        "headers": {
+          "type": "object",
+          "properties": {
+            "my-custom-app-header": {
+              "type": "string"
+            },
+            "correlationId": {
+              "type": "string"
+            }
+          }
+        },
+        "payload": {
+          "$ref": "#/components/schemas/dummyCreated"
+        },
+        "bindings": {
+          "kafka": {
+            "key": {
+              "type": "object",
+              "properties": {
+                "id": {
+                  "type": "string",
+                  "format": "uuid"
+                },
+                "type": {
+                  "type": "string",
+                  "enum": [
+                    "type1",
+                    "type2"
+                  ]
+                }
+              }
+            },
+            "bindingVersion": "0.1.0"
+          },
+          "amqp": {
+            "contentEncoding": "gzip",
+            "messageType": "user.signup",
+            "bindingVersion": "0.1.0"
+          }
+        },
+        "x-response": {
+          "$ref": "#/components/messages/dummyInfo"
+        }
+      },
+      "dummyInfo": {
+        "name": "dummyInfo",
+        "title": "Dummy system info",
+        "summary": "This is just a dummy info message",
+        "correlationId": {
+          "location": "$message.header#/correlationId"
+        },
+        "description": "More description for a dummy message.\n\nIt is a dummy system info message.\n",
+        "traits": [
+          {
+            "$ref": "#/components/messageTraits/commonHeaders"
+          }
+        ],
+        "payload": {
+          "$ref": "#/components/schemas/dummyInfo"
+        },
+        "examples": [
+          {
+            "name": "option1example",
+            "summary": "this is dummy summary for option1example",
+            "headers": {
+              "my-app-header": 12
+            },
+            "payload": {
+              "prop1": "option1",
+              "sentAt": "2020-01-31T13:24:53.000Z"
+            }
+          },
+          {
+            "name": "headerExample",
+            "headers": {
+              "my-app-header": 13
+            }
+          },
+          {
+            "payload": {
+              "prop1": "option2",
+              "sentAt": "2020-01-31T13:24:53.000Z"
+            }
+          }
+        ]
+      }
+    },
+    "schemas": {
+      "dummyCreated": {
+        "type": "object",
+        "required": [
+          "prop2"
+        ],
+        "x-schema-extensions-as-object": {
+          "type": "object",
+          "properties": {
+            "prop1": {
+              "type": "string"
+            },
+            "prop2": {
+              "type": "integer",
+              "minimum": 0
+            }
+          }
+        },
+        "x-schema-extensions-as-primitive": "dummy",
+        "x-schema-extensions-as-array": [
+          "item1",
+          "item2"
+        ],
+        "properties": {
+          "prop1": {
+            "type": "integer",
+            "minimum": 0,
+            "description": "Dummy prop1",
+            "x-prop1-dummy": "dummy extension"
+          },
+          "prop2": {
+            "type": "string",
+            "description": "Dummy prop2"
+          },
+          "sentAt": {
+            "$ref": "#/components/schemas/sentAt"
+          },
+          "dummyArrayWithObject": {
+            "$ref": "#/components/schemas/dummyArrayWithObject"
+          },
+          "dummyArrayWithArray": {
+            "$ref": "#/components/schemas/dummyArrayWithArray"
+          },
+          "dummyObject": {
+            "$ref": "#/components/schemas/dummyObject"
+          },
+          "dummyArrayRank": {
+            "$ref": "#/components/schemas/dummyArrayRank"
+          }
+        }
+      },
+      "dummyInfo": {
+        "type": "object",
+        "required": [
+          "prop1"
+        ],
+        "properties": {
+          "prop1": {
+            "type": "string",
+            "enum": [
+              "option1",
+              "option2"
+            ],
+            "description": "Dummy prop1"
+          },
+          "sentAt": {
+            "$ref": "#/components/schemas/sentAt"
+          }
+        }
+      },
+      "dummyArrayWithObject": {
+        "type": "array",
+        "items": {
+          "$ref": "#/components/schemas/dummyInfo"
+        }
+      },
+      "dummyArrayWithArray": {
+        "type": "array",
+        "items": [
+          {
+            "$ref": "#/components/schemas/dummyInfo"
+          },
+          {
+            "type": "string"
+          },
+          {
+            "type": "number"
+          }
+        ]
+      },
+      "dummyObject": {
+        "type": "object",
+        "properties": {
+          "dummyObjectProp1": {
+            "$ref": "#/components/schemas/sentAt"
+          },
+          "dummyObjectProp2": {
+            "$ref": "#/components/schemas/dummyRecursiveObject"
+          },
+          "dummyObjectProp3": {
+            "type": "object",
+            "additionalProperties": true
+          },
+          "dummyObjectProp4": {
+            "type": "object",
+            "additionalProperties": false
+          }
+        }
+      },
+      "dummyRecursiveObject": {
+        "type": "object",
+        "properties": {
+          "dummyRecursiveProp1": {
+            "$ref": "#/components/schemas/dummyObject"
+          },
+          "dummyRecursiveProp2": {
+            "type": "string"
+          }
+        }
+      },
+      "sentAt": {
+        "type": "string",
+        "format": "date-time",
+        "description": "Date and time when the message was sent."
+      },
+      "dummyArrayRank": {
+        "type": "object",
+        "properties": {
+          "dummyArrayValueRank": {
+            "$ref": "#/components/schemas/dummyArrayValueRank"
+          },
+          "dummyArrayDimensions": {
+            "$ref": "#/components/schemas/dummyArrayArrayDimensions"
+          }
+        }
+      },
+      "dummyArrayValueRank": {
+        "description": "This Attribute indicates whether the val Attribute of the datapoint is an array and how many dimensions the array has.\n",
+        "type": "integer",
+        "default": -1,
+        "examples": [
+          2
+        ],
+        "oneOf": [
+          {
+            "const": -1,
+            "description": "Scalar: The value is not an array."
+          },
+          {
+            "const": 0,
+            "description": "OneOrMoreDimensions: The value is an array with one or more dimensions."
+          },
+          {
+            "const": 1,
+            "description": "OneDimension: The value is an array with one dimension."
+          },
+          {
+            "const": 2,
+            "description": "The value is an array with two dimensions."
+          }
+        ]
+      },
+      "dummyArrayArrayDimensions": {
+        "type": "array",
+        "items": {
+          "type": "integer",
+          "minimum": 0
+        },
+        "examples": [
+          [
+            3,
+            5
+          ]
+        ]
+      }
+    },
+    "securitySchemes": {
+      "user-password": {
+        "type": "userPassword"
+      },
+      "apiKey": {
+        "type": "apiKey",
+        "in": "user",
+        "description": "Provide your API key as the user and leave the password empty."
+      },
+      "supportedOauthFlows": {
+        "type": "oauth2",
+        "description": "Flows to support OAuth 2.0",
+        "flows": {
+          "implicit": {
+            "authorizationUrl": "https://authserver.example/auth",
+            "scopes": {
+              "dummy:created": "Ability to create dummy message",
+              "dymmy:read": "Ability to read dummy info"
+            }
+          },
+          "password": {
+            "tokenUrl": "https://authserver.example/token",
+            "scopes": {
+              "dummy:created": "Ability to create dummy message",
+              "dymmy:read": "Ability to read dummy info"
+            }
+          },
+          "clientCredentials": {
+            "tokenUrl": "https://authserver.example/token",
+            "scopes": {
+              "dummy:created": "Ability to create dummy message",
+              "dymmy:read": "Ability to read dummy info"
+            }
+          },
+          "authorizationCode": {
+            "authorizationUrl": "https://authserver.example/auth",
+            "tokenUrl": "https://authserver.example/token",
+            "refreshUrl": "https://authserver.example/refresh",
+            "scopes": {
+              "dummy:created": "Ability to create dummy message",
+              "dymmy:read": "Ability to read dummy info"
+            }
+          }
+        }
+      },
+      "openIdConnectWellKnown": {
+        "type": "openIdConnect",
+        "openIdConnectUrl": "https://authserver.example/.well-known"
+      }
+    },
+    "parameters": {
+      "dummy": {
+        "description": "The ID of the new dummy message.",
+        "schema": {
+          "type": "string",
+          "description": "Description that not be rendered, as parameter has explicit description."
+        }
+      }
+    },
+    "messageTraits": {
+      "commonHeaders": {
+        "headers": {
+          "type": "object",
+          "properties": {
+            "my-app-header": {
+              "type": "integer",
+              "minimum": 0,
+              "maximum": 100
+            },
+            "correlationId": {
+              "type": "string"
+            }
+          }
+        }
+      }
+    },
+    "operationTraits": {
+      "kafka": {
+        "bindings": {
+          "kafka": {
+            "groupId": "my-app-group-id",
+            "clientId": "my-app-client-id",
+            "bindingVersion": "0.1.0"
+          }
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/test/processors/AsyncAPIInputProcessor.spec.ts b/test/processors/AsyncAPIInputProcessor.spec.ts
index f23001c2..f84a696d 100644
--- a/test/processors/AsyncAPIInputProcessor.spec.ts
+++ b/test/processors/AsyncAPIInputProcessor.spec.ts
@@ -46,6 +46,10 @@ describe('AsyncAPIInputProcessor', () => {
       const parsedObject = {asyncapi: '2.2.0'};
       expect(processor.shouldProcess(parsedObject)).toEqual(true);
     });
+    test('should be able to process AsyncAPI 2.3.0', () => {
+      const parsedObject = {asyncapi: '2.3.0'};
+      expect(processor.shouldProcess(parsedObject)).toEqual(true);
+    });
   });
   describe('tryGetVersionOfDocument()', () => {
     const processor = new AsyncAPIInputProcessor();