From 4c68bc601bf235f09c0cbbdaf42e6e6bf0bfab00 Mon Sep 17 00:00:00 2001
From: William Cheng <wing328hk@gmail.com>
Date: Fri, 18 Feb 2022 02:34:07 +0800
Subject: [PATCH 1/2] remove go-deprecated generator

---
 .../languages/GoDeprecatedClientCodegen.java  | 255 ------------------
 .../org.openapitools.codegen.CodegenConfig    |   1 -
 .../codegen/go/GoClientCodegenTest.java       |  11 +-
 .../codegen/go/GoClientOptionsTest.java       |   8 +-
 .../openapitools/codegen/go/GoModelTest.java  |  22 +-
 .../options/GoClientOptionsProvider.java      |   7 +-
 6 files changed, 25 insertions(+), 279 deletions(-)
 delete mode 100644 modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoDeprecatedClientCodegen.java

diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoDeprecatedClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoDeprecatedClientCodegen.java
deleted file mode 100644
index 0436961b0e7..00000000000
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoDeprecatedClientCodegen.java
+++ /dev/null
@@ -1,255 +0,0 @@
-/*
- * Copyright 2018 OpenAPI-Generator Contributors (https://openapi-generator.tech)
- * Copyright 2018 SmartBear Software
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.openapitools.codegen.languages;
-
-import org.openapitools.codegen.CliOption;
-import org.openapitools.codegen.CodegenConstants;
-import org.openapitools.codegen.CodegenType;
-import org.openapitools.codegen.SupportingFile;
-import org.openapitools.codegen.meta.features.*;
-import org.openapitools.codegen.meta.GeneratorMetadata;
-import org.openapitools.codegen.meta.Stability;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-import java.util.EnumSet;
-
-public class GoDeprecatedClientCodegen extends AbstractGoCodegen {
-
-    private final Logger LOGGER = LoggerFactory.getLogger(GoDeprecatedClientCodegen.class);
-
-    protected String packageVersion = "1.0.0";
-    protected String apiDocPath = "docs/";
-    protected String modelDocPath = "docs/";
-    protected boolean isGoSubmodule = false;
-    public static final String WITH_GO_CODEGEN_COMMENT = "withGoCodegenComment";
-    public static final String WITH_XML = "withXml";
-    public static final String STRUCT_PREFIX = "structPrefix";
-    public static final String WITH_AWSV4_SIGNATURE = "withAWSV4Signature";
-    public static final String GENERATE_INTERFACES = "generateInterfaces";
-
-    public GoDeprecatedClientCodegen() {
-        super();
-
-        generatorMetadata = GeneratorMetadata.newBuilder(generatorMetadata).stability(Stability.DEPRECATED).build();
-
-        modifyFeatureSet(features -> features
-                .includeDocumentationFeatures(DocumentationFeature.Readme)
-                .wireFormatFeatures(EnumSet.of(WireFormatFeature.JSON, WireFormatFeature.XML))
-                .securityFeatures(EnumSet.of(
-                        SecurityFeature.BasicAuth,
-                        SecurityFeature.ApiKey,
-                        SecurityFeature.OAuth2_Implicit
-                ))
-                .includeGlobalFeatures(
-                        GlobalFeature.ParameterizedServer
-                )
-                .excludeGlobalFeatures(
-                        GlobalFeature.XMLStructureDefinitions,
-                        GlobalFeature.Callbacks,
-                        GlobalFeature.LinkObjects,
-                        GlobalFeature.ParameterStyling
-                )
-                .excludeSchemaSupportFeatures(
-                        SchemaSupportFeature.Polymorphism
-                )
-                .includeParameterFeatures(
-                        ParameterFeature.Cookie
-                )
-                .includeClientModificationFeatures(
-                        ClientModificationFeature.BasePath,
-                        ClientModificationFeature.UserAgent
-                )
-        );
-
-        outputFolder = "generated-code/go-deprecated";
-        modelTemplateFiles.put("model.mustache", ".go");
-        apiTemplateFiles.put("api.mustache", ".go");
-
-        modelDocTemplateFiles.put("model_doc.mustache", ".md");
-        apiDocTemplateFiles.put("api_doc.mustache", ".md");
-
-        embeddedTemplateDir = templateDir = "go-deprecated";
-
-        // default HIDE_GENERATION_TIMESTAMP to true
-        hideGenerationTimestamp = Boolean.TRUE;
-
-        cliOptions.add(CliOption.newBoolean(CodegenConstants.IS_GO_SUBMODULE, CodegenConstants.IS_GO_SUBMODULE_DESC));
-        cliOptions.add(CliOption.newBoolean(WITH_GO_CODEGEN_COMMENT, "whether to include Go codegen comment to disable Go Lint and collapse by default in GitHub PRs and diffs"));
-        cliOptions.add(CliOption.newBoolean(WITH_XML, "whether to include support for application/xml content type and include XML annotations in the model (works with libraries that provide support for JSON and XML)"));
-        cliOptions.add(CliOption.newBoolean(CodegenConstants.ENUM_CLASS_PREFIX, CodegenConstants.ENUM_CLASS_PREFIX_DESC));
-        cliOptions.add(CliOption.newBoolean(STRUCT_PREFIX, "whether to prefix struct with the class name. e.g. DeletePetOpts => PetApiDeletePetOpts"));
-        cliOptions.add(CliOption.newBoolean(WITH_AWSV4_SIGNATURE, "whether to include AWS v4 signature support"));
-        cliOptions.add(CliOption.newBoolean(GENERATE_INTERFACES, "Generate interfaces for api classes"));
-
-        // option to change the order of form/body parameter
-        cliOptions.add(CliOption.newBoolean(
-                CodegenConstants.PREPEND_FORM_OR_BODY_PARAMETERS,
-                CodegenConstants.PREPEND_FORM_OR_BODY_PARAMETERS_DESC)
-                .defaultValue(Boolean.FALSE.toString()));
-    }
-
-    @Override
-    public void processOpts() {
-        super.processOpts();
-
-        if (additionalProperties.containsKey(CodegenConstants.PACKAGE_NAME)) {
-            setPackageName((String) additionalProperties.get(CodegenConstants.PACKAGE_NAME));
-        } else {
-            setPackageName("openapi");
-        }
-
-        if (additionalProperties.containsKey(CodegenConstants.PACKAGE_VERSION)) {
-            setPackageVersion((String) additionalProperties.get(CodegenConstants.PACKAGE_VERSION));
-        } else {
-            setPackageVersion("1.0.0");
-        }
-
-        additionalProperties.put(CodegenConstants.PACKAGE_NAME, packageName);
-        additionalProperties.put(CodegenConstants.PACKAGE_VERSION, packageVersion);
-
-        additionalProperties.put("apiDocPath", apiDocPath);
-        additionalProperties.put("modelDocPath", modelDocPath);
-
-        modelPackage = packageName;
-        apiPackage = packageName;
-
-        supportingFiles.add(new SupportingFile("openapi.mustache", "api", "openapi.yaml"));
-        supportingFiles.add(new SupportingFile("README.mustache", "", "README.md"));
-        supportingFiles.add(new SupportingFile("git_push.sh.mustache", "", "git_push.sh"));
-        supportingFiles.add(new SupportingFile("gitignore.mustache", "", ".gitignore"));
-        supportingFiles.add(new SupportingFile("configuration.mustache", "", "configuration.go"));
-        supportingFiles.add(new SupportingFile("client.mustache", "", "client.go"));
-        supportingFiles.add(new SupportingFile("response.mustache", "", "response.go"));
-        supportingFiles.add(new SupportingFile("go.mod.mustache", "", "go.mod"));
-        supportingFiles.add(new SupportingFile("go.sum", "", "go.sum"));
-        supportingFiles.add(new SupportingFile(".travis.yml", "", ".travis.yml"));
-
-        if (additionalProperties.containsKey(WITH_GO_CODEGEN_COMMENT)) {
-            setWithGoCodegenComment(Boolean.parseBoolean(additionalProperties.get(WITH_GO_CODEGEN_COMMENT).toString()));
-            additionalProperties.put(WITH_GO_CODEGEN_COMMENT, withGoCodegenComment);
-        }
-
-        if (additionalProperties.containsKey(WITH_AWSV4_SIGNATURE)) {
-            setWithAWSV4Signature(Boolean.parseBoolean(additionalProperties.get(WITH_AWSV4_SIGNATURE).toString()));
-            additionalProperties.put(WITH_AWSV4_SIGNATURE, withAWSV4Signature);
-        }
-
-        if (additionalProperties.containsKey(WITH_XML)) {
-            setWithXml(Boolean.parseBoolean(additionalProperties.get(WITH_XML).toString()));
-            additionalProperties.put(WITH_XML, withXml);
-        }
-
-        if (additionalProperties.containsKey(CodegenConstants.ENUM_CLASS_PREFIX)) {
-            setEnumClassPrefix(Boolean.parseBoolean(additionalProperties.get(CodegenConstants.ENUM_CLASS_PREFIX).toString()));
-            additionalProperties.put(CodegenConstants.ENUM_CLASS_PREFIX, enumClassPrefix);
-        }
-
-        if (additionalProperties.containsKey(CodegenConstants.IS_GO_SUBMODULE)) {
-            setIsGoSubmodule(Boolean.parseBoolean(additionalProperties.get(CodegenConstants.IS_GO_SUBMODULE).toString()));
-            additionalProperties.put(CodegenConstants.IS_GO_SUBMODULE, isGoSubmodule);
-        }
-
-        if (additionalProperties.containsKey(STRUCT_PREFIX)) {
-            setStructPrefix(Boolean.parseBoolean(additionalProperties.get(STRUCT_PREFIX).toString()));
-            additionalProperties.put(STRUCT_PREFIX, structPrefix);
-        }
-
-        if (additionalProperties.containsKey(GENERATE_INTERFACES)) {
-            setGenerateInterfaces(Boolean.parseBoolean(additionalProperties.get(GENERATE_INTERFACES).toString()));
-            additionalProperties.put(GENERATE_INTERFACES, generateInterfaces);
-        }
-    }
-
-    /**
-     * Configures the type of generator.
-     *
-     * @return the CodegenType for this generator
-     * @see org.openapitools.codegen.CodegenType
-     */
-    @Override
-    public CodegenType getTag() {
-        return CodegenType.CLIENT;
-    }
-
-    /**
-     * Configures a friendly name for the generator.  This will be used by the generator
-     * to select the library with the -g flag.
-     *
-     * @return the friendly name for the generator
-     */
-    @Override
-    public String getName() {
-        return "go-deprecated";
-    }
-
-    /**
-     * Returns human-friendly help for the generator.  Provide the consumer with help
-     * tips, parameters here
-     *
-     * @return A string value for the help message
-     */
-    @Override
-    public String getHelp() {
-        return "Generates a Go client library (beta). NOTE: this generator has been deprecated. Please use `go` client generator instead.";
-    }
-
-    /**
-     * Location to write api files.  You can use the apiPackage() as defined when the class is
-     * instantiated
-     */
-    @Override
-    public String apiFileFolder() {
-        return outputFolder + File.separator;
-    }
-
-    @Override
-    public String modelFileFolder() {
-        return outputFolder + File.separator;
-    }
-
-    @Override
-    public String apiDocFileFolder() {
-        return (outputFolder + "/" + apiDocPath).replace('/', File.separatorChar);
-    }
-
-    @Override
-    public String modelDocFileFolder() {
-        return (outputFolder + "/" + modelDocPath).replace('/', File.separatorChar);
-    }
-
-    @Override
-    public String toModelDocFilename(String name) {
-        return toModelName(name);
-    }
-
-    @Override
-    public String toApiDocFilename(String name) {
-        return toApiName(name);
-    }
-
-    public void setPackageVersion(String packageVersion) {
-        this.packageVersion = packageVersion;
-    }
-
-    public void setIsGoSubmodule(boolean isGoSubmodule) {
-        this.isGoSubmodule = isGoSubmodule;
-    }
-
-}
diff --git a/modules/openapi-generator/src/main/resources/META-INF/services/org.openapitools.codegen.CodegenConfig b/modules/openapi-generator/src/main/resources/META-INF/services/org.openapitools.codegen.CodegenConfig
index 0b6c579e434..201b4ce97fd 100644
--- a/modules/openapi-generator/src/main/resources/META-INF/services/org.openapitools.codegen.CodegenConfig
+++ b/modules/openapi-generator/src/main/resources/META-INF/services/org.openapitools.codegen.CodegenConfig
@@ -35,7 +35,6 @@ org.openapitools.codegen.languages.ErlangServerCodegen
 org.openapitools.codegen.languages.FsharpFunctionsServerCodegen
 org.openapitools.codegen.languages.FsharpGiraffeServerCodegen
 org.openapitools.codegen.languages.GoClientCodegen
-org.openapitools.codegen.languages.GoDeprecatedClientCodegen
 org.openapitools.codegen.languages.GoEchoServerCodegen
 org.openapitools.codegen.languages.GoServerCodegen
 org.openapitools.codegen.languages.GoGinServerCodegen
diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/GoClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/GoClientCodegenTest.java
index 8009e3e2c3d..ca5271746d4 100644
--- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/GoClientCodegenTest.java
+++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/GoClientCodegenTest.java
@@ -23,7 +23,6 @@ import org.openapitools.codegen.CodegenConstants;
 import org.openapitools.codegen.CodegenOperation;
 import org.openapitools.codegen.CodegenParameter;
 import org.openapitools.codegen.TestUtils;
-import org.openapitools.codegen.languages.GoDeprecatedClientCodegen;
 import org.openapitools.codegen.languages.GoClientCodegen;
 import org.testng.Assert;
 import org.testng.annotations.Test;
@@ -32,7 +31,7 @@ public class GoClientCodegenTest {
 
     @Test
     public void testInitialConfigValues() throws Exception {
-        final GoDeprecatedClientCodegen codegen = new GoDeprecatedClientCodegen();
+        final GoClientCodegen codegen = new GoClientCodegen();
         codegen.processOpts();
 
         Assert.assertEquals(codegen.additionalProperties().get(CodegenConstants.HIDE_GENERATION_TIMESTAMP), Boolean.TRUE);
@@ -41,7 +40,7 @@ public class GoClientCodegenTest {
 
     @Test
     public void testSettersForConfigValues() throws Exception {
-        final GoDeprecatedClientCodegen codegen = new GoDeprecatedClientCodegen();
+        final GoClientCodegen codegen = new GoClientCodegen();
         codegen.setHideGenerationTimestamp(false);
         codegen.processOpts();
 
@@ -51,7 +50,7 @@ public class GoClientCodegenTest {
 
     @Test
     public void testAdditionalPropertiesPutForConfigValues() throws Exception {
-        final GoDeprecatedClientCodegen codegen = new GoDeprecatedClientCodegen();
+        final GoClientCodegen codegen = new GoClientCodegen();
         codegen.additionalProperties().put(CodegenConstants.HIDE_GENERATION_TIMESTAMP, false);
         codegen.processOpts();
 
@@ -62,7 +61,7 @@ public class GoClientCodegenTest {
     @Test(description = "test example value for body parameter")
     public void bodyParameterTest() {
         final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml");
-        final GoDeprecatedClientCodegen codegen = new GoDeprecatedClientCodegen();
+        final GoClientCodegen codegen = new GoClientCodegen();
         codegen.setOpenAPI(openAPI);
         final String path = "/fake";
         final Operation p = openAPI.getPaths().get(path).getGet();
@@ -95,7 +94,7 @@ public class GoClientCodegenTest {
 
     @Test
     public void testFilenames() throws Exception {
-        final GoDeprecatedClientCodegen codegen = new GoDeprecatedClientCodegen();
+        final GoClientCodegen codegen = new GoClientCodegen();
 
         // Model names are generated from schema / definition names
         Assert.assertEquals(codegen.toModelFilename("Animal"), "model_animal");
diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/GoClientOptionsTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/GoClientOptionsTest.java
index 139c3162b57..7ace9c09cab 100644
--- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/GoClientOptionsTest.java
+++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/GoClientOptionsTest.java
@@ -19,7 +19,7 @@ package org.openapitools.codegen.go;
 
 import org.openapitools.codegen.AbstractOptionsTest;
 import org.openapitools.codegen.CodegenConfig;
-import org.openapitools.codegen.languages.GoDeprecatedClientCodegen;
+import org.openapitools.codegen.languages.GoClientCodegen;
 import org.openapitools.codegen.options.GoClientOptionsProvider;
 
 import static org.mockito.Mockito.mock;
@@ -27,7 +27,7 @@ import static org.mockito.Mockito.verify;
 
 public class GoClientOptionsTest extends AbstractOptionsTest {
 
-    private GoDeprecatedClientCodegen clientCodegen = mock(GoDeprecatedClientCodegen.class, mockSettings);
+    private GoClientCodegen clientCodegen = mock(GoClientCodegen.class, mockSettings);
 
     public GoClientOptionsTest() {
         super(new GoClientOptionsProvider());
@@ -43,13 +43,13 @@ public class GoClientOptionsTest extends AbstractOptionsTest {
     protected void verifyOptions() {
         verify(clientCodegen).setPackageVersion(GoClientOptionsProvider.PACKAGE_VERSION_VALUE);
         verify(clientCodegen).setPackageName(GoClientOptionsProvider.PACKAGE_NAME_VALUE);
-        verify(clientCodegen).setWithGoCodegenComment(GoClientOptionsProvider.WITH_GO_CODEGEN_COMMENT_VALUE);
         verify(clientCodegen).setWithXml(GoClientOptionsProvider.WITH_XML_VALUE);
         verify(clientCodegen).setEnumClassPrefix(GoClientOptionsProvider.ENUM_CLASS_PREFIX_VALUE);
         verify(clientCodegen).setPrependFormOrBodyParameters(GoClientOptionsProvider.PREPEND_FORM_OR_BODY_PARAMETERS_VALUE);
         verify(clientCodegen).setIsGoSubmodule(GoClientOptionsProvider.IS_GO_SUBMODULE_VALUE);
+        verify(clientCodegen).setGenerateInterfaces(GoClientOptionsProvider.GENERATE_INTERFACES_VALUE);
         verify(clientCodegen).setStructPrefix(GoClientOptionsProvider.STRUCT_PREFIX_VALUE);
         verify(clientCodegen).setWithAWSV4Signature(GoClientOptionsProvider.WITH_AWSV4_SIGNATURE);
-        verify(clientCodegen).setGenerateInterfaces(GoClientOptionsProvider.GENERATE_INTERFACES_VALUE);
+        verify(clientCodegen).setUseOneOfDiscriminatorLookup(GoClientOptionsProvider.USE_ONE_OF_DISCRIMINATOR_LOOKUP_VALUE);
     }
 }
diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/GoModelTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/GoModelTest.java
index b0cb58177ef..f27115bc831 100644
--- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/GoModelTest.java
+++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/GoModelTest.java
@@ -25,7 +25,7 @@ import org.openapitools.codegen.CodegenModel;
 import org.openapitools.codegen.CodegenProperty;
 import org.openapitools.codegen.DefaultCodegen;
 import org.openapitools.codegen.TestUtils;
-import org.openapitools.codegen.languages.GoDeprecatedClientCodegen;
+import org.openapitools.codegen.languages.GoClientCodegen;
 import org.testng.Assert;
 import org.testng.annotations.DataProvider;
 import org.testng.annotations.Test;
@@ -42,7 +42,7 @@ public class GoModelTest {
                 .addProperties("createdAt", new DateTimeSchema())
                 .addRequiredItem("id")
                 .addRequiredItem("name");
-        final DefaultCodegen codegen = new GoDeprecatedClientCodegen();
+        final DefaultCodegen codegen = new GoClientCodegen();
         OpenAPI openAPI = TestUtils.createOpenAPIWithOneSchema("sample", model);
         codegen.setOpenAPI(openAPI);
         final CodegenModel cm = codegen.fromModel("sample", model);
@@ -89,7 +89,7 @@ public class GoModelTest {
                 .addProperties("urls", new ArraySchema()
                         .items(new StringSchema()))
                 .addRequiredItem("id");
-        final DefaultCodegen codegen = new GoDeprecatedClientCodegen();
+        final DefaultCodegen codegen = new GoClientCodegen();
         OpenAPI openAPI = TestUtils.createOpenAPIWithOneSchema("sample", model);
         codegen.setOpenAPI(openAPI);
         final CodegenModel cm = codegen.fromModel("sample", model);
@@ -125,7 +125,7 @@ public class GoModelTest {
                 .addProperties("translations", new MapSchema()
                         .additionalProperties(new StringSchema()))
                 .addRequiredItem("id");
-        final DefaultCodegen codegen = new GoDeprecatedClientCodegen();
+        final DefaultCodegen codegen = new GoClientCodegen();
         OpenAPI openAPI = TestUtils.createOpenAPIWithOneSchema("sample", model);
         codegen.setOpenAPI(openAPI);
         final CodegenModel cm = codegen.fromModel("sample", model);
@@ -151,7 +151,7 @@ public class GoModelTest {
         final Schema model = new Schema()
                 .description("a sample model")
                 .addProperties("children", new Schema().$ref("#/definitions/Children"));
-        final DefaultCodegen codegen = new GoDeprecatedClientCodegen();
+        final DefaultCodegen codegen = new GoClientCodegen();
         OpenAPI openAPI = TestUtils.createOpenAPIWithOneSchema("sample", model);
         codegen.setOpenAPI(openAPI);
         final CodegenModel cm = codegen.fromModel("sample", model);
@@ -175,7 +175,7 @@ public class GoModelTest {
                 .description("a sample model")
                 .addProperties("children", new ArraySchema()
                         .items(new Schema().$ref("#/definitions/Children")));
-        final DefaultCodegen codegen = new GoDeprecatedClientCodegen();
+        final DefaultCodegen codegen = new GoClientCodegen();
         OpenAPI openAPI = TestUtils.createOpenAPIWithOneSchema("sample", model);
         codegen.setOpenAPI(openAPI);
         final CodegenModel cm = codegen.fromModel("sample", model);
@@ -201,7 +201,7 @@ public class GoModelTest {
                 .description("a sample model")
                 .addProperties("children", new MapSchema()
                         .additionalProperties(new Schema().$ref("#/definitions/Children")));
-        final DefaultCodegen codegen = new GoDeprecatedClientCodegen();
+        final DefaultCodegen codegen = new GoClientCodegen();
         OpenAPI openAPI = TestUtils.createOpenAPIWithOneSchema("sample", model);
         codegen.setOpenAPI(openAPI);
         final CodegenModel cm = codegen.fromModel("sample", model);
@@ -228,7 +228,7 @@ public class GoModelTest {
         final Schema model = new ArraySchema()
                 .items(new Schema().$ref("#/definitions/Children"))
                 .description("an array model");
-        final DefaultCodegen codegen = new GoDeprecatedClientCodegen();
+        final DefaultCodegen codegen = new GoClientCodegen();
         OpenAPI openAPI = TestUtils.createOpenAPIWithOneSchema("sample", model);
         codegen.setOpenAPI(openAPI);
         final CodegenModel cm = codegen.fromModel("sample", model);
@@ -245,7 +245,7 @@ public class GoModelTest {
         final Schema model = new Schema()
                 .additionalProperties(new Schema().$ref("#/definitions/Children"))
                 .description("a map model");
-        final DefaultCodegen codegen = new GoDeprecatedClientCodegen();
+        final DefaultCodegen codegen = new GoClientCodegen();
         OpenAPI openAPI = TestUtils.createOpenAPIWithOneSchema("sample", model);
         codegen.setOpenAPI(openAPI);
         final CodegenModel cm = codegen.fromModel("sample", model);
@@ -260,7 +260,7 @@ public class GoModelTest {
 
     @Test(description = "convert file type and file schema models")
     public void filePropertyTest() {
-        final DefaultCodegen codegen = new GoDeprecatedClientCodegen();
+        final DefaultCodegen codegen = new GoClientCodegen();
         final Schema model1 = new Schema().type("file");
         Assert.assertEquals(codegen.getSchemaType(model1), "*os.File");
         Assert.assertEquals(codegen.getTypeDeclaration(model1), "*os.File");
@@ -290,7 +290,7 @@ public class GoModelTest {
     @Test(dataProvider = "modelNames", description = "avoid inner class")
     public void modelNameTest(String name, String expectedName) {
         final Schema model = new Schema();
-        final DefaultCodegen codegen = new GoDeprecatedClientCodegen();
+        final DefaultCodegen codegen = new GoClientCodegen();
         OpenAPI openAPI = TestUtils.createOpenAPIWithOneSchema(name, model);
         codegen.setOpenAPI(openAPI);
         final CodegenModel cm = codegen.fromModel(name, model);
diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/GoClientOptionsProvider.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/GoClientOptionsProvider.java
index 3ac5e44cf9a..ef8fa66558b 100644
--- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/GoClientOptionsProvider.java
+++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/GoClientOptionsProvider.java
@@ -34,6 +34,8 @@ public class GoClientOptionsProvider implements OptionsProvider {
     public static final boolean STRUCT_PREFIX_VALUE = true;
     public static final boolean WITH_AWSV4_SIGNATURE = true;
     public static final boolean GENERATE_INTERFACES_VALUE = true;
+    public static final boolean DISALLOW_ADDITIONAL_PROPERTIES_IF_NOT_PRESENT_VALUE = true;
+    public static final boolean USE_ONE_OF_DISCRIMINATOR_LOOKUP_VALUE = true;
 
     @Override
     public String getLanguage() {
@@ -46,13 +48,14 @@ public class GoClientOptionsProvider implements OptionsProvider {
         return builder
                 .put(CodegenConstants.PACKAGE_VERSION, PACKAGE_VERSION_VALUE)
                 .put(CodegenConstants.PACKAGE_NAME, PACKAGE_NAME_VALUE)
+                .put(CodegenConstants.IS_GO_SUBMODULE, "true")
                 .put(CodegenConstants.HIDE_GENERATION_TIMESTAMP, "true")
-                .put(CodegenConstants.WITH_GO_CODEGEN_COMMENT, "true")
                 .put(CodegenConstants.WITH_XML, "true")
                 .put(CodegenConstants.ENUM_CLASS_PREFIX, "true")
                 .put(CodegenConstants.PREPEND_FORM_OR_BODY_PARAMETERS, "true")
-                .put(CodegenConstants.IS_GO_SUBMODULE, "true")
                 .put(CodegenConstants.WITH_AWSV4_SIGNATURE_COMMENT, "true")
+                .put(CodegenConstants.DISALLOW_ADDITIONAL_PROPERTIES_IF_NOT_PRESENT, "true")
+                .put(CodegenConstants.USE_ONEOF_DISCRIMINATOR_LOOKUP, "true")
                 .put("generateInterfaces", "true")
                 .put("structPrefix", "true")
                 .build();
-- 
GitLab


From 83bac81c4eb2048554e360a76f0338bb3f6fa918 Mon Sep 17 00:00:00 2001
From: William Cheng <wing328hk@gmail.com>
Date: Fri, 18 Feb 2022 11:10:53 +0800
Subject: [PATCH 2/2] update doc

---
 docs/generators.md                            |   1 -
 docs/generators/flash-deprecated.md           | 193 -------------
 docs/generators/go-deprecated.md              | 224 ---------------
 docs/generators/kotlin-server-deprecated.md   | 272 ------------------
 docs/generators/php-silex-deprecated.md       | 236 ---------------
 .../typescript-angularjs-deprecated.md        | 253 ----------------
 6 files changed, 1179 deletions(-)
 delete mode 100644 docs/generators/flash-deprecated.md
 delete mode 100644 docs/generators/go-deprecated.md
 delete mode 100644 docs/generators/kotlin-server-deprecated.md
 delete mode 100644 docs/generators/php-silex-deprecated.md
 delete mode 100644 docs/generators/typescript-angularjs-deprecated.md

diff --git a/docs/generators.md b/docs/generators.md
index 4dda7bc557f..c1f09094dbc 100644
--- a/docs/generators.md
+++ b/docs/generators.md
@@ -30,7 +30,6 @@ The following generators are available:
 * [erlang-client](generators/erlang-client.md)  
 * [erlang-proper](generators/erlang-proper.md)  
 * [go](generators/go.md)  
-* [go-deprecated (deprecated)](generators/go-deprecated.md)  
 * [groovy](generators/groovy.md)  
 * [haskell-http-client](generators/haskell-http-client.md)  
 * [java](generators/java.md)  
diff --git a/docs/generators/flash-deprecated.md b/docs/generators/flash-deprecated.md
deleted file mode 100644
index 7969d5f8e0e..00000000000
--- a/docs/generators/flash-deprecated.md
+++ /dev/null
@@ -1,193 +0,0 @@
----
-title: Documentation for the flash-deprecated Generator
----
-
-## METADATA
-
-| Property | Value | Notes |
-| -------- | ----- | ----- |
-| generator name | flash-deprecated | pass this to the generate command after -g |
-| generator stability | DEPRECATED | |
-| generator type | CLIENT | |
-| generator language | Flash | |
-| generator default templating engine | mustache | |
-| helpTxt | Generates a Flash (ActionScript) client library (beta). IMPORTANT: this generator has been deprecated in v5.x | |
-
-## CONFIG OPTIONS
-These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.
-
-| Option | Description | Values | Default |
-| ------ | ----------- | ------ | ------- |
-|invokerPackage|root package for generated code| |null|
-|packageName|flash package name (convention: package.name)| |org.openapitools|
-|packageVersion|flash package version| |1.0.0|
-|sourceFolder|source folder for generated code. e.g. flash| |null|
-
-## IMPORT MAPPING
-
-| Type/Alias | Imports |
-| ---------- | ------- |
-|File|flash.filesystem.File|
-
-
-## INSTANTIATION TYPES
-
-| Type/Alias | Instantiated By |
-| ---------- | --------------- |
-
-
-## LANGUAGE PRIMITIVES
-
-<ul class="column-ul">
-<li>Array</li>
-<li>Boolean</li>
-<li>Date</li>
-<li>Dictionary</li>
-<li>Number</li>
-<li>String</li>
-</ul>
-
-## RESERVED WORDS
-
-<ul class="column-ul">
-<li>add</li>
-<li>and</li>
-<li>break</li>
-<li>continue</li>
-<li>delete</li>
-<li>do</li>
-<li>else</li>
-<li>eq</li>
-<li>for</li>
-<li>function</li>
-<li>ge</li>
-<li>gt</li>
-<li>if</li>
-<li>ifframeloaded</li>
-<li>in</li>
-<li>le</li>
-<li>lt</li>
-<li>ne</li>
-<li>new</li>
-<li>not</li>
-<li>on</li>
-<li>onclipevent</li>
-<li>or</li>
-<li>return</li>
-<li>telltarget</li>
-<li>this</li>
-<li>typeof</li>
-<li>var</li>
-<li>void</li>
-<li>while</li>
-<li>with</li>
-</ul>
-
-## FEATURE SET
-
-
-### Client Modification Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|BasePath|✓|ToolingExtension
-|Authorizations|✗|ToolingExtension
-|UserAgent|✗|ToolingExtension
-|MockServer|✗|ToolingExtension
-
-### Data Type Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|Custom|✗|OAS2,OAS3
-|Int32|✓|OAS2,OAS3
-|Int64|✓|OAS2,OAS3
-|Float|✓|OAS2,OAS3
-|Double|✓|OAS2,OAS3
-|Decimal|✓|ToolingExtension
-|String|✓|OAS2,OAS3
-|Byte|✓|OAS2,OAS3
-|Binary|✓|OAS2,OAS3
-|Boolean|✓|OAS2,OAS3
-|Date|✓|OAS2,OAS3
-|DateTime|✓|OAS2,OAS3
-|Password|✓|OAS2,OAS3
-|File|✓|OAS2
-|Array|✓|OAS2,OAS3
-|Maps|✓|ToolingExtension
-|CollectionFormat|✓|OAS2
-|CollectionFormatMulti|✓|OAS2
-|Enum|✓|OAS2,OAS3
-|ArrayOfEnum|✓|ToolingExtension
-|ArrayOfModel|✓|ToolingExtension
-|ArrayOfCollectionOfPrimitives|✓|ToolingExtension
-|ArrayOfCollectionOfModel|✓|ToolingExtension
-|ArrayOfCollectionOfEnum|✓|ToolingExtension
-|MapOfEnum|✓|ToolingExtension
-|MapOfModel|✓|ToolingExtension
-|MapOfCollectionOfPrimitives|✓|ToolingExtension
-|MapOfCollectionOfModel|✓|ToolingExtension
-|MapOfCollectionOfEnum|✓|ToolingExtension
-
-### Documentation Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|Readme|✓|ToolingExtension
-|Model|✓|ToolingExtension
-|Api|✓|ToolingExtension
-
-### Global Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|Host|✓|OAS2,OAS3
-|BasePath|✓|OAS2,OAS3
-|Info|✓|OAS2,OAS3
-|Schemes|✗|OAS2,OAS3
-|PartialSchemes|✓|OAS2,OAS3
-|Consumes|✓|OAS2
-|Produces|✓|OAS2
-|ExternalDocumentation|✓|OAS2,OAS3
-|Examples|✓|OAS2,OAS3
-|XMLStructureDefinitions|✗|OAS2,OAS3
-|MultiServer|✗|OAS3
-|ParameterizedServer|✗|OAS3
-|ParameterStyling|✗|OAS3
-|Callbacks|✗|OAS3
-|LinkObjects|✗|OAS3
-
-### Parameter Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|Path|✓|OAS2,OAS3
-|Query|✓|OAS2,OAS3
-|Header|✓|OAS2,OAS3
-|Body|✓|OAS2
-|FormUnencoded|✓|OAS2
-|FormMultipart|✓|OAS2
-|Cookie|✗|OAS3
-
-### Schema Support Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|Simple|✓|OAS2,OAS3
-|Composite|✓|OAS2,OAS3
-|Polymorphism|✗|OAS2,OAS3
-|Union|✗|OAS3
-
-### Security Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|BasicAuth|✗|OAS2,OAS3
-|ApiKey|✓|OAS2,OAS3
-|OpenIDConnect|✗|OAS3
-|BearerToken|✗|OAS3
-|OAuth2_Implicit|✗|OAS2,OAS3
-|OAuth2_Password|✗|OAS2,OAS3
-|OAuth2_ClientCredentials|✗|OAS2,OAS3
-|OAuth2_AuthorizationCode|✗|OAS2,OAS3
-
-### Wire Format Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|JSON|✓|OAS2,OAS3
-|XML|✓|OAS2,OAS3
-|PROTOBUF|✗|ToolingExtension
-|Custom|✗|OAS2,OAS3
diff --git a/docs/generators/go-deprecated.md b/docs/generators/go-deprecated.md
deleted file mode 100644
index e72c7b7f847..00000000000
--- a/docs/generators/go-deprecated.md
+++ /dev/null
@@ -1,224 +0,0 @@
----
-title: Documentation for the go-deprecated Generator
----
-
-## METADATA
-
-| Property | Value | Notes |
-| -------- | ----- | ----- |
-| generator name | go-deprecated | pass this to the generate command after -g |
-| generator stability | DEPRECATED | |
-| generator type | CLIENT | |
-| generator language | Go | |
-| generator default templating engine | mustache | |
-| helpTxt | Generates a Go client library (beta). NOTE: this generator has been deprecated. Please use `go` client generator instead. | |
-
-## CONFIG OPTIONS
-These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.
-
-| Option | Description | Values | Default |
-| ------ | ----------- | ------ | ------- |
-|enumClassPrefix|Prefix enum with class name| |false|
-|generateInterfaces|Generate interfaces for api classes| |false|
-|hideGenerationTimestamp|Hides the generation timestamp when files are generated.| |true|
-|isGoSubmodule|whether the generated Go module is a submodule| |false|
-|packageName|Go package name (convention: lowercase).| |openapi|
-|packageVersion|Go package version.| |1.0.0|
-|prependFormOrBodyParameters|Add form or body parameters to the beginning of the parameter list.| |false|
-|structPrefix|whether to prefix struct with the class name. e.g. DeletePetOpts =&gt; PetApiDeletePetOpts| |false|
-|withAWSV4Signature|whether to include AWS v4 signature support| |false|
-|withGoCodegenComment|whether to include Go codegen comment to disable Go Lint and collapse by default in GitHub PRs and diffs| |false|
-|withXml|whether to include support for application/xml content type and include XML annotations in the model (works with libraries that provide support for JSON and XML)| |false|
-
-## IMPORT MAPPING
-
-| Type/Alias | Imports |
-| ---------- | ------- |
-
-
-## INSTANTIATION TYPES
-
-| Type/Alias | Instantiated By |
-| ---------- | --------------- |
-
-
-## LANGUAGE PRIMITIVES
-
-<ul class="column-ul">
-<li>bool</li>
-<li>byte</li>
-<li>complex128</li>
-<li>complex64</li>
-<li>float32</li>
-<li>float64</li>
-<li>int</li>
-<li>int32</li>
-<li>int64</li>
-<li>interface{}</li>
-<li>map[string]interface{}</li>
-<li>rune</li>
-<li>string</li>
-<li>uint</li>
-<li>uint32</li>
-<li>uint64</li>
-</ul>
-
-## RESERVED WORDS
-
-<ul class="column-ul">
-<li>bool</li>
-<li>break</li>
-<li>byte</li>
-<li>case</li>
-<li>chan</li>
-<li>complex128</li>
-<li>complex64</li>
-<li>const</li>
-<li>continue</li>
-<li>default</li>
-<li>defer</li>
-<li>else</li>
-<li>error</li>
-<li>fallthrough</li>
-<li>float32</li>
-<li>float64</li>
-<li>for</li>
-<li>func</li>
-<li>go</li>
-<li>goto</li>
-<li>if</li>
-<li>import</li>
-<li>int</li>
-<li>int16</li>
-<li>int32</li>
-<li>int64</li>
-<li>int8</li>
-<li>interface</li>
-<li>map</li>
-<li>nil</li>
-<li>package</li>
-<li>range</li>
-<li>return</li>
-<li>rune</li>
-<li>select</li>
-<li>string</li>
-<li>struct</li>
-<li>switch</li>
-<li>type</li>
-<li>uint</li>
-<li>uint16</li>
-<li>uint32</li>
-<li>uint64</li>
-<li>uint8</li>
-<li>uintptr</li>
-<li>var</li>
-</ul>
-
-## FEATURE SET
-
-
-### Client Modification Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|BasePath|✓|ToolingExtension
-|Authorizations|✗|ToolingExtension
-|UserAgent|✓|ToolingExtension
-|MockServer|✗|ToolingExtension
-
-### Data Type Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|Custom|✗|OAS2,OAS3
-|Int32|✓|OAS2,OAS3
-|Int64|✓|OAS2,OAS3
-|Float|✓|OAS2,OAS3
-|Double|✓|OAS2,OAS3
-|Decimal|✓|ToolingExtension
-|String|✓|OAS2,OAS3
-|Byte|✓|OAS2,OAS3
-|Binary|✓|OAS2,OAS3
-|Boolean|✓|OAS2,OAS3
-|Date|✓|OAS2,OAS3
-|DateTime|✓|OAS2,OAS3
-|Password|✓|OAS2,OAS3
-|File|✓|OAS2
-|Array|✓|OAS2,OAS3
-|Maps|✓|ToolingExtension
-|CollectionFormat|✓|OAS2
-|CollectionFormatMulti|✓|OAS2
-|Enum|✓|OAS2,OAS3
-|ArrayOfEnum|✓|ToolingExtension
-|ArrayOfModel|✓|ToolingExtension
-|ArrayOfCollectionOfPrimitives|✓|ToolingExtension
-|ArrayOfCollectionOfModel|✓|ToolingExtension
-|ArrayOfCollectionOfEnum|✓|ToolingExtension
-|MapOfEnum|✓|ToolingExtension
-|MapOfModel|✓|ToolingExtension
-|MapOfCollectionOfPrimitives|✓|ToolingExtension
-|MapOfCollectionOfModel|✓|ToolingExtension
-|MapOfCollectionOfEnum|✓|ToolingExtension
-
-### Documentation Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|Readme|✓|ToolingExtension
-|Model|✓|ToolingExtension
-|Api|✓|ToolingExtension
-
-### Global Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|Host|✓|OAS2,OAS3
-|BasePath|✓|OAS2,OAS3
-|Info|✓|OAS2,OAS3
-|Schemes|✗|OAS2,OAS3
-|PartialSchemes|✓|OAS2,OAS3
-|Consumes|✓|OAS2
-|Produces|✓|OAS2
-|ExternalDocumentation|✓|OAS2,OAS3
-|Examples|✓|OAS2,OAS3
-|XMLStructureDefinitions|✗|OAS2,OAS3
-|MultiServer|✗|OAS3
-|ParameterizedServer|✓|OAS3
-|ParameterStyling|✗|OAS3
-|Callbacks|✗|OAS3
-|LinkObjects|✗|OAS3
-
-### Parameter Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|Path|✓|OAS2,OAS3
-|Query|✓|OAS2,OAS3
-|Header|✓|OAS2,OAS3
-|Body|✓|OAS2
-|FormUnencoded|✓|OAS2
-|FormMultipart|✓|OAS2
-|Cookie|✓|OAS3
-
-### Schema Support Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|Simple|✓|OAS2,OAS3
-|Composite|✓|OAS2,OAS3
-|Polymorphism|✗|OAS2,OAS3
-|Union|✗|OAS3
-
-### Security Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|BasicAuth|✓|OAS2,OAS3
-|ApiKey|✓|OAS2,OAS3
-|OpenIDConnect|✗|OAS3
-|BearerToken|✗|OAS3
-|OAuth2_Implicit|✓|OAS2,OAS3
-|OAuth2_Password|✗|OAS2,OAS3
-|OAuth2_ClientCredentials|✗|OAS2,OAS3
-|OAuth2_AuthorizationCode|✗|OAS2,OAS3
-
-### Wire Format Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|JSON|✓|OAS2,OAS3
-|XML|✓|OAS2,OAS3
-|PROTOBUF|✗|ToolingExtension
-|Custom|✗|OAS2,OAS3
diff --git a/docs/generators/kotlin-server-deprecated.md b/docs/generators/kotlin-server-deprecated.md
deleted file mode 100644
index f612a372854..00000000000
--- a/docs/generators/kotlin-server-deprecated.md
+++ /dev/null
@@ -1,272 +0,0 @@
----
-title: Documentation for the kotlin-server-deprecated Generator
----
-
-## METADATA
-
-| Property | Value | Notes |
-| -------- | ----- | ----- |
-| generator name | kotlin-server-deprecated | pass this to the generate command after -g |
-| generator stability | DEPRECATED | |
-| generator type | SERVER | |
-| generator language | Kotlin | |
-| generator default templating engine | mustache | |
-| helpTxt | Generates a Kotlin server (Ktor v1.1.3). IMPORTANT: this generator has been deprecated. Please migrate to `kotlin-server` which supports Ktor v1.5.2+. | |
-
-## CONFIG OPTIONS
-These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.
-
-| Option | Description | Values | Default |
-| ------ | ----------- | ------ | ------- |
-|apiSuffix|suffix for api classes| |Api|
-|artifactId|Generated artifact id (name of jar).| |kotlin-server-deprecated|
-|artifactVersion|Generated artifact's package version.| |1.0.0|
-|enumPropertyNaming|Naming convention for enum properties: 'camelCase', 'PascalCase', 'snake_case', 'UPPERCASE', and 'original'| |camelCase|
-|featureAutoHead|Automatically provide responses to HEAD requests for existing routes that have the GET verb defined.| |true|
-|featureCORS|Ktor by default provides an interceptor for implementing proper support for Cross-Origin Resource Sharing (CORS). See enable-cors.org.| |false|
-|featureCompression|Adds ability to compress outgoing content using gzip, deflate or custom encoder and thus reduce size of the response.| |true|
-|featureConditionalHeaders|Avoid sending content if client already has same content, by checking ETag or LastModified properties.| |false|
-|featureHSTS|Avoid sending content if client already has same content, by checking ETag or LastModified properties.| |true|
-|groupId|Generated artifact package's organization (i.e. maven groupId).| |org.openapitools|
-|library|library template (sub-template)|<dl><dt>**ktor**</dt><dd>ktor framework</dd></dl>|ktor|
-|modelMutable|Create mutable models| |false|
-|packageName|Generated artifact package name.| |org.openapitools.server|
-|parcelizeModels|toggle &quot;@Parcelize&quot; for generated models| |null|
-|serializableModel|boolean - toggle &quot;implements Serializable&quot; for generated models| |null|
-|serializationLibrary|What serialization library to use: 'moshi' (default), or 'gson' or 'jackson'| |moshi|
-|sortModelPropertiesByRequiredFlag|Sort model properties to place required parameters before optional parameters.| |null|
-|sortParamsByRequiredFlag|Sort method arguments to place required parameters before optional parameters.| |null|
-|sourceFolder|source folder for generated code| |src/main/kotlin|
-
-## IMPORT MAPPING
-
-| Type/Alias | Imports |
-| ---------- | ------- |
-|BigDecimal|java.math.BigDecimal|
-|Date|java.time.LocalDate|
-|DateTime|java.time.OffsetDateTime|
-|File|java.io.File|
-|LocalDate|java.time.LocalDate|
-|LocalDateTime|java.time.LocalDateTime|
-|LocalTime|java.time.LocalTime|
-|Timestamp|java.sql.Timestamp|
-|URI|java.net.URI|
-|UUID|java.util.UUID|
-
-
-## INSTANTIATION TYPES
-
-| Type/Alias | Instantiated By |
-| ---------- | --------------- |
-|array|kotlin.collections.ArrayList|
-|list|kotlin.collections.ArrayList|
-|map|kotlin.collections.HashMap|
-
-
-## LANGUAGE PRIMITIVES
-
-<ul class="column-ul">
-<li>kotlin.Array</li>
-<li>kotlin.Boolean</li>
-<li>kotlin.Byte</li>
-<li>kotlin.ByteArray</li>
-<li>kotlin.Char</li>
-<li>kotlin.Double</li>
-<li>kotlin.Float</li>
-<li>kotlin.Int</li>
-<li>kotlin.Long</li>
-<li>kotlin.Short</li>
-<li>kotlin.String</li>
-<li>kotlin.collections.List</li>
-<li>kotlin.collections.Map</li>
-<li>kotlin.collections.MutableList</li>
-<li>kotlin.collections.MutableMap</li>
-<li>kotlin.collections.MutableSet</li>
-<li>kotlin.collections.Set</li>
-</ul>
-
-## RESERVED WORDS
-
-<ul class="column-ul">
-<li>ApiResponse</li>
-<li>abstract</li>
-<li>actual</li>
-<li>annotation</li>
-<li>as</li>
-<li>break</li>
-<li>class</li>
-<li>companion</li>
-<li>const</li>
-<li>constructor</li>
-<li>continue</li>
-<li>crossinline</li>
-<li>data</li>
-<li>delegate</li>
-<li>do</li>
-<li>dynamic</li>
-<li>else</li>
-<li>enum</li>
-<li>expect</li>
-<li>external</li>
-<li>false</li>
-<li>field</li>
-<li>final</li>
-<li>finally</li>
-<li>for</li>
-<li>fun</li>
-<li>if</li>
-<li>import</li>
-<li>in</li>
-<li>infix</li>
-<li>init</li>
-<li>inline</li>
-<li>inner</li>
-<li>interface</li>
-<li>internal</li>
-<li>is</li>
-<li>it</li>
-<li>lateinit</li>
-<li>noinline</li>
-<li>null</li>
-<li>object</li>
-<li>open</li>
-<li>operator</li>
-<li>out</li>
-<li>override</li>
-<li>package</li>
-<li>param</li>
-<li>private</li>
-<li>property</li>
-<li>protected</li>
-<li>public</li>
-<li>receiver</li>
-<li>reified</li>
-<li>return</li>
-<li>sealed</li>
-<li>setparam</li>
-<li>super</li>
-<li>suspend</li>
-<li>tailrec</li>
-<li>this</li>
-<li>throw</li>
-<li>true</li>
-<li>try</li>
-<li>typealias</li>
-<li>typeof</li>
-<li>val</li>
-<li>value</li>
-<li>var</li>
-<li>vararg</li>
-<li>when</li>
-<li>where</li>
-<li>while</li>
-</ul>
-
-## FEATURE SET
-
-
-### Client Modification Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|BasePath|✗|ToolingExtension
-|Authorizations|✗|ToolingExtension
-|UserAgent|✗|ToolingExtension
-|MockServer|✗|ToolingExtension
-
-### Data Type Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|Custom|✗|OAS2,OAS3
-|Int32|✓|OAS2,OAS3
-|Int64|✓|OAS2,OAS3
-|Float|✓|OAS2,OAS3
-|Double|✓|OAS2,OAS3
-|Decimal|✓|ToolingExtension
-|String|✓|OAS2,OAS3
-|Byte|✓|OAS2,OAS3
-|Binary|✓|OAS2,OAS3
-|Boolean|✓|OAS2,OAS3
-|Date|✓|OAS2,OAS3
-|DateTime|✓|OAS2,OAS3
-|Password|✓|OAS2,OAS3
-|File|✓|OAS2
-|Array|✓|OAS2,OAS3
-|Maps|✓|ToolingExtension
-|CollectionFormat|✓|OAS2
-|CollectionFormatMulti|✓|OAS2
-|Enum|✓|OAS2,OAS3
-|ArrayOfEnum|✓|ToolingExtension
-|ArrayOfModel|✓|ToolingExtension
-|ArrayOfCollectionOfPrimitives|✓|ToolingExtension
-|ArrayOfCollectionOfModel|✓|ToolingExtension
-|ArrayOfCollectionOfEnum|✓|ToolingExtension
-|MapOfEnum|✓|ToolingExtension
-|MapOfModel|✓|ToolingExtension
-|MapOfCollectionOfPrimitives|✓|ToolingExtension
-|MapOfCollectionOfModel|✓|ToolingExtension
-|MapOfCollectionOfEnum|✓|ToolingExtension
-
-### Documentation Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|Readme|✓|ToolingExtension
-|Model|✓|ToolingExtension
-|Api|✓|ToolingExtension
-
-### Global Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|Host|✓|OAS2,OAS3
-|BasePath|✓|OAS2,OAS3
-|Info|✓|OAS2,OAS3
-|Schemes|✗|OAS2,OAS3
-|PartialSchemes|✓|OAS2,OAS3
-|Consumes|✓|OAS2
-|Produces|✓|OAS2
-|ExternalDocumentation|✓|OAS2,OAS3
-|Examples|✓|OAS2,OAS3
-|XMLStructureDefinitions|✗|OAS2,OAS3
-|MultiServer|✗|OAS3
-|ParameterizedServer|✗|OAS3
-|ParameterStyling|✗|OAS3
-|Callbacks|✗|OAS3
-|LinkObjects|✗|OAS3
-
-### Parameter Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|Path|✓|OAS2,OAS3
-|Query|✓|OAS2,OAS3
-|Header|✓|OAS2,OAS3
-|Body|✓|OAS2
-|FormUnencoded|✓|OAS2
-|FormMultipart|✓|OAS2
-|Cookie|✗|OAS3
-
-### Schema Support Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|Simple|✓|OAS2,OAS3
-|Composite|✓|OAS2,OAS3
-|Polymorphism|✗|OAS2,OAS3
-|Union|✗|OAS3
-
-### Security Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|BasicAuth|✓|OAS2,OAS3
-|ApiKey|✓|OAS2,OAS3
-|OpenIDConnect|✗|OAS3
-|BearerToken|✗|OAS3
-|OAuth2_Implicit|✓|OAS2,OAS3
-|OAuth2_Password|✗|OAS2,OAS3
-|OAuth2_ClientCredentials|✗|OAS2,OAS3
-|OAuth2_AuthorizationCode|✗|OAS2,OAS3
-
-### Wire Format Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|JSON|✓|OAS2,OAS3
-|XML|✓|OAS2,OAS3
-|PROTOBUF|✗|ToolingExtension
-|Custom|✗|OAS2,OAS3
diff --git a/docs/generators/php-silex-deprecated.md b/docs/generators/php-silex-deprecated.md
deleted file mode 100644
index 38d5c63f112..00000000000
--- a/docs/generators/php-silex-deprecated.md
+++ /dev/null
@@ -1,236 +0,0 @@
----
-title: Documentation for the php-silex-deprecated Generator
----
-
-## METADATA
-
-| Property | Value | Notes |
-| -------- | ----- | ----- |
-| generator name | php-silex-deprecated | pass this to the generate command after -g |
-| generator stability | DEPRECATED | |
-| generator type | SERVER | |
-| generator language | PHP | |
-| generator default templating engine | mustache | |
-| helpTxt | Generates a PHP Silex server library. IMPORTANT NOTE: this generator is no longer actively maintained. | |
-
-## CONFIG OPTIONS
-These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.
-
-| Option | Description | Values | Default |
-| ------ | ----------- | ------ | ------- |
-|allowUnicodeIdentifiers|boolean, toggles whether unicode identifiers are allowed in names or not, default is false| |false|
-|disallowAdditionalPropertiesIfNotPresent|If false, the 'additionalProperties' implementation (set to true by default) is compliant with the OAS and JSON schema specifications. If true (default), keep the old (incorrect) behaviour that 'additionalProperties' is set to false by default.|<dl><dt>**false**</dt><dd>The 'additionalProperties' implementation is compliant with the OAS and JSON schema specifications.</dd><dt>**true**</dt><dd>Keep the old (incorrect) behaviour that 'additionalProperties' is set to false by default.</dd></dl>|true|
-|ensureUniqueParams|Whether to ensure parameter names are unique in an operation (rename parameters that are not).| |true|
-|enumUnknownDefaultCase|If the server adds new enum cases, that are unknown by an old spec/client, the client will fail to parse the network response.With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the server sends an enum case that is not known by the client/spec, they can safely fallback to this case.|<dl><dt>**false**</dt><dd>No changes to the enum's are made, this is the default option.</dd><dt>**true**</dt><dd>With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the enum case sent by the server is not known by the client/spec, can safely be decoded to this case.</dd></dl>|false|
-|legacyDiscriminatorBehavior|Set to false for generators with better support for discriminators. (Python, Java, Go, PowerShell, C#have this enabled by default).|<dl><dt>**true**</dt><dd>The mapping in the discriminator includes descendent schemas that allOf inherit from self and the discriminator mapping schemas in the OAS document.</dd><dt>**false**</dt><dd>The mapping in the discriminator includes any descendent schemas that allOf inherit from self, any oneOf schemas, any anyOf schemas, any x-discriminator-values, and the discriminator mapping schemas in the OAS document AND Codegen validates that oneOf and anyOf schemas contain the required discriminator and throws an error if the discriminator is missing.</dd></dl>|true|
-|prependFormOrBodyParameters|Add form or body parameters to the beginning of the parameter list.| |false|
-|sortModelPropertiesByRequiredFlag|Sort model properties to place required parameters before optional parameters.| |true|
-|sortParamsByRequiredFlag|Sort method arguments to place required parameters before optional parameters.| |true|
-
-## IMPORT MAPPING
-
-| Type/Alias | Imports |
-| ---------- | ------- |
-
-
-## INSTANTIATION TYPES
-
-| Type/Alias | Instantiated By |
-| ---------- | --------------- |
-|array|array|
-|map|map|
-
-
-## LANGUAGE PRIMITIVES
-
-<ul class="column-ul">
-<li>DateTime</li>
-<li>boolean</li>
-<li>double</li>
-<li>float</li>
-<li>int</li>
-<li>integer</li>
-<li>mixed</li>
-<li>number</li>
-<li>object</li>
-<li>string</li>
-</ul>
-
-## RESERVED WORDS
-
-<ul class="column-ul">
-<li>__halt_compiler</li>
-<li>abstract</li>
-<li>and</li>
-<li>array</li>
-<li>as</li>
-<li>break</li>
-<li>callable</li>
-<li>case</li>
-<li>catch</li>
-<li>class</li>
-<li>clone</li>
-<li>const</li>
-<li>continue</li>
-<li>declare</li>
-<li>default</li>
-<li>die</li>
-<li>do</li>
-<li>echo</li>
-<li>else</li>
-<li>elseif</li>
-<li>empty</li>
-<li>enddeclare</li>
-<li>endfor</li>
-<li>endforeach</li>
-<li>endif</li>
-<li>endswitch</li>
-<li>endwhile</li>
-<li>eval</li>
-<li>exit</li>
-<li>extends</li>
-<li>final</li>
-<li>for</li>
-<li>foreach</li>
-<li>function</li>
-<li>global</li>
-<li>goto</li>
-<li>if</li>
-<li>implements</li>
-<li>include</li>
-<li>include_once</li>
-<li>instanceof</li>
-<li>insteadof</li>
-<li>interface</li>
-<li>isset</li>
-<li>list</li>
-<li>namespace</li>
-<li>new</li>
-<li>or</li>
-<li>print</li>
-<li>private</li>
-<li>protected</li>
-<li>public</li>
-<li>require</li>
-<li>require_once</li>
-<li>return</li>
-<li>static</li>
-<li>switch</li>
-<li>throw</li>
-<li>trait</li>
-<li>try</li>
-<li>unset</li>
-<li>use</li>
-<li>var</li>
-<li>while</li>
-<li>xor</li>
-</ul>
-
-## FEATURE SET
-
-
-### Client Modification Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|BasePath|✗|ToolingExtension
-|Authorizations|✗|ToolingExtension
-|UserAgent|✗|ToolingExtension
-|MockServer|✗|ToolingExtension
-
-### Data Type Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|Custom|✗|OAS2,OAS3
-|Int32|✓|OAS2,OAS3
-|Int64|✓|OAS2,OAS3
-|Float|✓|OAS2,OAS3
-|Double|✓|OAS2,OAS3
-|Decimal|✓|ToolingExtension
-|String|✓|OAS2,OAS3
-|Byte|✓|OAS2,OAS3
-|Binary|✓|OAS2,OAS3
-|Boolean|✓|OAS2,OAS3
-|Date|✓|OAS2,OAS3
-|DateTime|✓|OAS2,OAS3
-|Password|✓|OAS2,OAS3
-|File|✓|OAS2
-|Array|✓|OAS2,OAS3
-|Maps|✓|ToolingExtension
-|CollectionFormat|✓|OAS2
-|CollectionFormatMulti|✓|OAS2
-|Enum|✓|OAS2,OAS3
-|ArrayOfEnum|✓|ToolingExtension
-|ArrayOfModel|✓|ToolingExtension
-|ArrayOfCollectionOfPrimitives|✓|ToolingExtension
-|ArrayOfCollectionOfModel|✓|ToolingExtension
-|ArrayOfCollectionOfEnum|✓|ToolingExtension
-|MapOfEnum|✓|ToolingExtension
-|MapOfModel|✓|ToolingExtension
-|MapOfCollectionOfPrimitives|✓|ToolingExtension
-|MapOfCollectionOfModel|✓|ToolingExtension
-|MapOfCollectionOfEnum|✓|ToolingExtension
-
-### Documentation Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|Readme|✓|ToolingExtension
-|Model|✓|ToolingExtension
-|Api|✓|ToolingExtension
-
-### Global Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|Host|✓|OAS2,OAS3
-|BasePath|✓|OAS2,OAS3
-|Info|✓|OAS2,OAS3
-|Schemes|✗|OAS2,OAS3
-|PartialSchemes|✓|OAS2,OAS3
-|Consumes|✓|OAS2
-|Produces|✓|OAS2
-|ExternalDocumentation|✓|OAS2,OAS3
-|Examples|✓|OAS2,OAS3
-|XMLStructureDefinitions|✗|OAS2,OAS3
-|MultiServer|✗|OAS3
-|ParameterizedServer|✗|OAS3
-|ParameterStyling|✗|OAS3
-|Callbacks|✗|OAS3
-|LinkObjects|✗|OAS3
-
-### Parameter Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|Path|✓|OAS2,OAS3
-|Query|✓|OAS2,OAS3
-|Header|✓|OAS2,OAS3
-|Body|✓|OAS2
-|FormUnencoded|✓|OAS2
-|FormMultipart|✓|OAS2
-|Cookie|✓|OAS3
-
-### Schema Support Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|Simple|✓|OAS2,OAS3
-|Composite|✓|OAS2,OAS3
-|Polymorphism|✗|OAS2,OAS3
-|Union|✗|OAS3
-
-### Security Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|BasicAuth|✗|OAS2,OAS3
-|ApiKey|✗|OAS2,OAS3
-|OpenIDConnect|✗|OAS3
-|BearerToken|✗|OAS3
-|OAuth2_Implicit|✗|OAS2,OAS3
-|OAuth2_Password|✗|OAS2,OAS3
-|OAuth2_ClientCredentials|✗|OAS2,OAS3
-|OAuth2_AuthorizationCode|✗|OAS2,OAS3
-
-### Wire Format Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|JSON|✓|OAS2,OAS3
-|XML|✓|OAS2,OAS3
-|PROTOBUF|✗|ToolingExtension
-|Custom|✗|OAS2,OAS3
diff --git a/docs/generators/typescript-angularjs-deprecated.md b/docs/generators/typescript-angularjs-deprecated.md
deleted file mode 100644
index 1097c4cd2f5..00000000000
--- a/docs/generators/typescript-angularjs-deprecated.md
+++ /dev/null
@@ -1,253 +0,0 @@
----
-title: Documentation for the typescript-angularjs-deprecated Generator
----
-
-## METADATA
-
-| Property | Value | Notes |
-| -------- | ----- | ----- |
-| generator name | typescript-angularjs-deprecated | pass this to the generate command after -g |
-| generator stability | DEPRECATED | |
-| generator type | CLIENT | |
-| generator language | Typescript | |
-| generator default templating engine | mustache | |
-| helpTxt | Generates a TypeScript AngularJS client library. This generator has been deprecated and will be removed in the future release. | |
-
-## CONFIG OPTIONS
-These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.
-
-| Option | Description | Values | Default |
-| ------ | ----------- | ------ | ------- |
-|allowUnicodeIdentifiers|boolean, toggles whether unicode identifiers are allowed in names or not, default is false| |false|
-|disallowAdditionalPropertiesIfNotPresent|If false, the 'additionalProperties' implementation (set to true by default) is compliant with the OAS and JSON schema specifications. If true (default), keep the old (incorrect) behaviour that 'additionalProperties' is set to false by default.|<dl><dt>**false**</dt><dd>The 'additionalProperties' implementation is compliant with the OAS and JSON schema specifications.</dd><dt>**true**</dt><dd>Keep the old (incorrect) behaviour that 'additionalProperties' is set to false by default.</dd></dl>|true|
-|ensureUniqueParams|Whether to ensure parameter names are unique in an operation (rename parameters that are not).| |true|
-|enumNameSuffix|Suffix that will be appended to all enum names.| |Enum|
-|enumPropertyNaming|Naming convention for enum properties: 'camelCase', 'PascalCase', 'snake_case', 'UPPERCASE', and 'original'| |PascalCase|
-|enumUnknownDefaultCase|If the server adds new enum cases, that are unknown by an old spec/client, the client will fail to parse the network response.With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the server sends an enum case that is not known by the client/spec, they can safely fallback to this case.|<dl><dt>**false**</dt><dd>No changes to the enum's are made, this is the default option.</dd><dt>**true**</dt><dd>With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the enum case sent by the server is not known by the client/spec, can safely be decoded to this case.</dd></dl>|false|
-|legacyDiscriminatorBehavior|Set to false for generators with better support for discriminators. (Python, Java, Go, PowerShell, C#have this enabled by default).|<dl><dt>**true**</dt><dd>The mapping in the discriminator includes descendent schemas that allOf inherit from self and the discriminator mapping schemas in the OAS document.</dd><dt>**false**</dt><dd>The mapping in the discriminator includes any descendent schemas that allOf inherit from self, any oneOf schemas, any anyOf schemas, any x-discriminator-values, and the discriminator mapping schemas in the OAS document AND Codegen validates that oneOf and anyOf schemas contain the required discriminator and throws an error if the discriminator is missing.</dd></dl>|true|
-|modelPropertyNaming|Naming convention for the property: 'camelCase', 'PascalCase', 'snake_case' and 'original', which keeps the original name. Only change it if you provide your own run-time code for (de-)serialization of models| |original|
-|nullSafeAdditionalProps|Set to make additional properties types declare that their indexer may return undefined| |false|
-|paramNaming|Naming convention for parameters: 'camelCase', 'PascalCase', 'snake_case' and 'original', which keeps the original name| |camelCase|
-|prependFormOrBodyParameters|Add form or body parameters to the beginning of the parameter list.| |false|
-|sortModelPropertiesByRequiredFlag|Sort model properties to place required parameters before optional parameters.| |true|
-|sortParamsByRequiredFlag|Sort method arguments to place required parameters before optional parameters.| |true|
-|supportsES6|Generate code that conforms to ES6.| |false|
-
-## IMPORT MAPPING
-
-| Type/Alias | Imports |
-| ---------- | ------- |
-
-
-## INSTANTIATION TYPES
-
-| Type/Alias | Instantiated By |
-| ---------- | --------------- |
-|array|Array|
-
-
-## LANGUAGE PRIMITIVES
-
-<ul class="column-ul">
-<li>Array</li>
-<li>Boolean</li>
-<li>Date</li>
-<li>Double</li>
-<li>Error</li>
-<li>File</li>
-<li>Float</li>
-<li>Integer</li>
-<li>Long</li>
-<li>Map</li>
-<li>Object</li>
-<li>ReadonlyArray</li>
-<li>Set</li>
-<li>String</li>
-<li>any</li>
-<li>boolean</li>
-<li>number</li>
-<li>object</li>
-<li>string</li>
-</ul>
-
-## RESERVED WORDS
-
-<ul class="column-ul">
-<li>abstract</li>
-<li>await</li>
-<li>boolean</li>
-<li>break</li>
-<li>byte</li>
-<li>case</li>
-<li>catch</li>
-<li>char</li>
-<li>class</li>
-<li>const</li>
-<li>continue</li>
-<li>debugger</li>
-<li>default</li>
-<li>delete</li>
-<li>do</li>
-<li>double</li>
-<li>else</li>
-<li>enum</li>
-<li>export</li>
-<li>extends</li>
-<li>false</li>
-<li>final</li>
-<li>finally</li>
-<li>float</li>
-<li>for</li>
-<li>formParams</li>
-<li>function</li>
-<li>goto</li>
-<li>headerParams</li>
-<li>if</li>
-<li>implements</li>
-<li>import</li>
-<li>in</li>
-<li>instanceof</li>
-<li>int</li>
-<li>interface</li>
-<li>let</li>
-<li>long</li>
-<li>native</li>
-<li>new</li>
-<li>null</li>
-<li>package</li>
-<li>private</li>
-<li>protected</li>
-<li>public</li>
-<li>queryParameters</li>
-<li>requestOptions</li>
-<li>return</li>
-<li>short</li>
-<li>static</li>
-<li>super</li>
-<li>switch</li>
-<li>synchronized</li>
-<li>this</li>
-<li>throw</li>
-<li>transient</li>
-<li>true</li>
-<li>try</li>
-<li>typeof</li>
-<li>useFormData</li>
-<li>var</li>
-<li>varLocalDeferred</li>
-<li>varLocalPath</li>
-<li>void</li>
-<li>volatile</li>
-<li>while</li>
-<li>with</li>
-<li>yield</li>
-</ul>
-
-## FEATURE SET
-
-
-### Client Modification Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|BasePath|✓|ToolingExtension
-|Authorizations|✗|ToolingExtension
-|UserAgent|✗|ToolingExtension
-|MockServer|✗|ToolingExtension
-
-### Data Type Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|Custom|✗|OAS2,OAS3
-|Int32|✓|OAS2,OAS3
-|Int64|✓|OAS2,OAS3
-|Float|✓|OAS2,OAS3
-|Double|✓|OAS2,OAS3
-|Decimal|✓|ToolingExtension
-|String|✓|OAS2,OAS3
-|Byte|✓|OAS2,OAS3
-|Binary|✓|OAS2,OAS3
-|Boolean|✓|OAS2,OAS3
-|Date|✓|OAS2,OAS3
-|DateTime|✓|OAS2,OAS3
-|Password|✓|OAS2,OAS3
-|File|✓|OAS2
-|Array|✓|OAS2,OAS3
-|Maps|✓|ToolingExtension
-|CollectionFormat|✓|OAS2
-|CollectionFormatMulti|✓|OAS2
-|Enum|✓|OAS2,OAS3
-|ArrayOfEnum|✓|ToolingExtension
-|ArrayOfModel|✓|ToolingExtension
-|ArrayOfCollectionOfPrimitives|✓|ToolingExtension
-|ArrayOfCollectionOfModel|✓|ToolingExtension
-|ArrayOfCollectionOfEnum|✓|ToolingExtension
-|MapOfEnum|✓|ToolingExtension
-|MapOfModel|✓|ToolingExtension
-|MapOfCollectionOfPrimitives|✓|ToolingExtension
-|MapOfCollectionOfModel|✓|ToolingExtension
-|MapOfCollectionOfEnum|✓|ToolingExtension
-
-### Documentation Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|Readme|✓|ToolingExtension
-|Model|✓|ToolingExtension
-|Api|✓|ToolingExtension
-
-### Global Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|Host|✓|OAS2,OAS3
-|BasePath|✓|OAS2,OAS3
-|Info|✓|OAS2,OAS3
-|Schemes|✗|OAS2,OAS3
-|PartialSchemes|✓|OAS2,OAS3
-|Consumes|✓|OAS2
-|Produces|✓|OAS2
-|ExternalDocumentation|✓|OAS2,OAS3
-|Examples|✓|OAS2,OAS3
-|XMLStructureDefinitions|✗|OAS2,OAS3
-|MultiServer|✗|OAS3
-|ParameterizedServer|✗|OAS3
-|ParameterStyling|✗|OAS3
-|Callbacks|✗|OAS3
-|LinkObjects|✗|OAS3
-
-### Parameter Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|Path|✓|OAS2,OAS3
-|Query|✓|OAS2,OAS3
-|Header|✓|OAS2,OAS3
-|Body|✓|OAS2
-|FormUnencoded|✓|OAS2
-|FormMultipart|✓|OAS2
-|Cookie|✓|OAS3
-
-### Schema Support Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|Simple|✓|OAS2,OAS3
-|Composite|✓|OAS2,OAS3
-|Polymorphism|✓|OAS2,OAS3
-|Union|✗|OAS3
-
-### Security Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|BasicAuth|✗|OAS2,OAS3
-|ApiKey|✗|OAS2,OAS3
-|OpenIDConnect|✗|OAS3
-|BearerToken|✗|OAS3
-|OAuth2_Implicit|✗|OAS2,OAS3
-|OAuth2_Password|✗|OAS2,OAS3
-|OAuth2_ClientCredentials|✗|OAS2,OAS3
-|OAuth2_AuthorizationCode|✗|OAS2,OAS3
-
-### Wire Format Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|JSON|✓|OAS2,OAS3
-|XML|✓|OAS2,OAS3
-|PROTOBUF|✗|ToolingExtension
-|Custom|✗|OAS2,OAS3
-- 
GitLab