diff --git a/README.md b/README.md
index 426e39f9c37..d11dd683590 100644
--- a/README.md
+++ b/README.md
@@ -131,6 +131,8 @@ OpenAPI Spec compatibility: 1.0, 1.1, 1.2, 2.0, 3.0
For old releases, please refer to the [**Release**](https://github.com/OpenAPITools/openapi-generator/releases) page.
+For decomissioned generators/libraries/frameworks, please refer to [the "Decommission" label](https://github.com/OpenAPITools/openapi-generator/issues?q=label%3ADecommission+is%3Amerged+) in the pull request page.
+
## [1.2 - Artifacts on Maven Central](#table-of-contents)
You can find our released artifacts on maven central:
diff --git a/docs/generators/go-experimental.md b/docs/generators/go-experimental.md
deleted file mode 100644
index 012ab8febac..00000000000
--- a/docs/generators/go-experimental.md
+++ /dev/null
@@ -1,214 +0,0 @@
----
-title: Config Options for go-experimental
-sidebar_label: go-experimental
----
-
-| Option | Description | Values | Default |
-| ------ | ----------- | ------ | ------- |
-|disallowAdditionalPropertiesIfNotPresent|Specify the behavior when the 'additionalProperties' keyword is not present in the OAS document. If false: the 'additionalProperties' implementation is compliant with the OAS and JSON schema specifications. If true: when the 'additionalProperties' keyword is not present in a schema, the value of 'additionalProperties' is set to false, i.e. no additional properties are allowed. Note: this mode is not compliant with the JSON schema specification. This is the original openapi-generator behavior.This setting is currently ignored for OAS 2.0 documents: 1) When the 'additionalProperties' keyword is not present in a 2.0 schema, additional properties are NOT allowed. 2) Boolean values of the 'additionalProperties' keyword are ignored. It's as if additional properties are NOT allowed.Note: the root cause are issues #1369 and #1371, which must be resolved in the swagger-parser project.|
- **false**
- The 'additionalProperties' implementation is compliant with the OAS and JSON schema specifications.
- **true**
- when the 'additionalProperties' keyword is not present in a schema, the value of 'additionalProperties' is automatically set to false, i.e. no additional properties are allowed. Note: this mode is not compliant with the JSON schema specification. This is the original openapi-generator behavior.
|true|
-|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 => PetApiDeletePetOpts| |false|
-|useOneOfDiscriminatorLookup|Use the discriminator's mapping in oneOf to speed up the model lookup. IMPORTANT: Validation (e.g. one and only one match in oneOf's schemas) will be skipped.| |false|
-|skipReadonlyPropertiesInInt|Skip default values to the readOnly properties in the model init function./ /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
-
-
-- bool
-- byte
-- complex128
-- complex64
-- float32
-- float64
-- int
-- int32
-- int64
-- interface{}
-- map[string]interface{}
-- rune
-- string
-- uint
-- uint32
-- uint64
-
-
-## RESERVED WORDS
-
-
-- bool
-- break
-- byte
-- case
-- chan
-- complex128
-- complex64
-- const
-- continue
-- default
-- defer
-- else
-- error
-- fallthrough
-- float32
-- float64
-- for
-- func
-- go
-- goto
-- if
-- import
-- int
-- int16
-- int32
-- int64
-- int8
-- interface
-- map
-- nil
-- package
-- range
-- return
-- rune
-- select
-- string
-- struct
-- switch
-- type
-- uint
-- uint16
-- uint32
-- uint64
-- uint8
-- uintptr
-- var
-
-
-## 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/modules/openapi-generator/src/main/resources/go-deprecated/.travis.yml b/modules/openapi-generator/src/main/resources/go-deprecated/.travis.yml
deleted file mode 100644
index f5cb2ce9a5a..00000000000
--- a/modules/openapi-generator/src/main/resources/go-deprecated/.travis.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-language: go
-
-install:
- - go get -d -v .
-
-script:
- - go build -v ./
-
diff --git a/modules/openapi-generator/src/main/resources/go-deprecated/README.mustache b/modules/openapi-generator/src/main/resources/go-deprecated/README.mustache
deleted file mode 100644
index 94cc83ad70c..00000000000
--- a/modules/openapi-generator/src/main/resources/go-deprecated/README.mustache
+++ /dev/null
@@ -1,148 +0,0 @@
-# Go API client for {{packageName}}
-
-{{#appDescriptionWithNewLines}}
-{{{.}}}
-{{/appDescriptionWithNewLines}}
-
-## Overview
-This API client was generated by the [OpenAPI Generator](https://openapi-generator.tech) project. By using the [OpenAPI-spec](https://www.openapis.org/) from a remote server, you can easily generate an API client.
-
-- API version: {{appVersion}}
-- Package version: {{packageVersion}}
-{{^hideGenerationTimestamp}}
-- Build date: {{generatedDate}}
-{{/hideGenerationTimestamp}}
-- Build package: {{generatorClass}}
-{{#infoUrl}}
-For more information, please visit [{{{infoUrl}}}]({{{infoUrl}}})
-{{/infoUrl}}
-
-## Installation
-
-Install the following dependencies:
-
-```shell
-go get github.com/stretchr/testify/assert
-go get golang.org/x/oauth2
-{{#withAWSV4Signature}}
-go get github.com/aws/aws-sdk-go/aws
-{{/withAWSV4Signature}}
-go get golang.org/x/net/context
-go get github.com/antihax/optional
-```
-
-Put the package under your project folder and add the following in import:
-
-```golang
-import "./{{packageName}}"
-```
-
-## Documentation for API Endpoints
-
-All URIs are relative to *{{basePath}}*
-
-Class | Method | HTTP request | Description
------------- | ------------- | ------------- | -------------
-{{#apiInfo}}{{#apis}}{{#operations}}{{#operation}}*{{classname}}* | [**{{operationId}}**]({{apiDocPath}}{{classname}}.md#{{operationIdLowerCase}}) | **{{httpMethod}}** {{path}} | {{summary}}
-{{/operation}}{{/operations}}{{/apis}}{{/apiInfo}}
-
-## Documentation For Models
-
-{{#models}}{{#model}} - [{{{classname}}}]({{modelDocPath}}{{{classname}}}.md)
-{{/model}}{{/models}}
-
-## Documentation For Authorization
-
-{{^authMethods}} Endpoints do not require authorization.
-{{/authMethods}}{{#authMethods}}{{#last}} Authentication schemes defined for the API:{{/last}}{{/authMethods}}
-{{#authMethods}}
-
-## {{{name}}}
-
-{{#isApiKey}}- **Type**: API key
-
-Example
-
-```golang
-auth := context.WithValue(context.Background(), {{packageName}}.ContextAPIKey, {{packageName}}.APIKey{
- Key: "APIKEY",
- Prefix: "Bearer", // Omit if not necessary.
-})
-r, err := client.Service.Operation(auth, args)
-```
-
-{{/isApiKey}}
-{{#isHttpSignature}}
-Not supported.
-
-{{/isHttpSignature}}
-{{#isBasicBasic}}- **Type**: HTTP basic authentication
-
-Example
-
-```golang
-auth := context.WithValue(context.Background(), {{packageName}}.ContextBasicAuth, {{packageName}}.BasicAuth{
- UserName: "username",
- Password: "password",
-})
-r, err := client.Service.Operation(auth, args)
-```
-
-{{/isBasicBasic}}
-{{#isBasicBearer}}- **Type**: HTTP Bearer token authentication
-
-Example
-
-```golang
-auth := context.WithValue(context.Background(), {{packageName}}.ContextAccessToken, "BEARERTOKENSTRING")
-r, err := client.Service.Operation(auth, args)
-```
-
-{{/isBasicBearer}}
-{{#isOAuth}}
-
-- **Type**: OAuth
-- **Flow**: {{{flow}}}
-- **Authorization URL**: {{{authorizationUrl}}}
-- **Scopes**: {{^scopes}}N/A{{/scopes}}
-{{#scopes}} - **{{{scope}}}**: {{{description}}}
-{{/scopes}}
-
-Example
-
-```golang
-auth := context.WithValue(context.Background(), {{packageName}}.ContextAccessToken, "ACCESSTOKENSTRING")
-r, err := client.Service.Operation(auth, args)
-```
-
-Or via OAuth2 module to automatically refresh tokens and perform user authentication.
-
-```golang
-import "golang.org/x/oauth2"
-
-/* Perform OAuth2 round trip request and obtain a token */
-
-tokenSource := oauth2cfg.TokenSource(createContext(httpClient), &token)
-auth := context.WithValue(oauth2.NoContext, {{packageName}}.ContextOAuth2, tokenSource)
-r, err := client.Service.Operation(auth, args)
-```
-
-{{/isOAuth}}
-{{/authMethods}}
-
-{{#withAWSV4Signature}}
-Example
-
-```golang
-auth := context.WithValue(context.Background(), {{packageName}}.ContextAWSv4, {{packageName}}.AWSv4{
- AccessKey: "ACCESSKEYSTRING",
- SecretKey: "SECRETKEYSTRING",
-})
-r, err := client.Service.Operation(auth, args)
-```
-{{/withAWSV4Signature}}
-
-## Author
-
-{{#apiInfo}}{{#apis}}{{#-last}}{{infoEmail}}
-{{/-last}}{{/apis}}{{/apiInfo}}
diff --git a/modules/openapi-generator/src/main/resources/go-deprecated/api.mustache b/modules/openapi-generator/src/main/resources/go-deprecated/api.mustache
deleted file mode 100644
index b837934add7..00000000000
--- a/modules/openapi-generator/src/main/resources/go-deprecated/api.mustache
+++ /dev/null
@@ -1,400 +0,0 @@
-{{>partial_header}}
-package {{packageName}}
-
-{{#operations}}
-import (
- _context "context"
- _ioutil "io/ioutil"
- _nethttp "net/http"
- _neturl "net/url"
- _bytes "bytes"
-{{#imports}} "{{import}}"
-{{/imports}}
-)
-
-// Linger please
-var (
- _ _context.Context
-)
-
-{{#generateInterfaces}}
-type {{classname}} interface {
-{{#operation}}
-
- /*
- * {{operationId}}{{#summary}} {{{.}}}{{/summary}}{{^summary}} Method for {{operationId}}{{/summary}}
- *
- {{#notes}}
- * {{.}}
- *
- {{/notes}}
- * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- {{#allParams}}
- {{#required}}
- * @param {{paramName}}{{#description}} {{{.}}}{{/description}}
- {{/required}}
- {{/allParams}}
- {{#hasOptionalParams}}
- * @param optional nil or *{{#structPrefix}}{{&classname}}{{/structPrefix}}{{{nickname}}}Opts - Optional Parameters:
- {{#allParams}}
- {{^required}}
- * @param "{{vendorExtensions.x-export-param-name}}" ({{#isPrimitiveType}}{{^isBinary}}optional.{{vendorExtensions.x-optional-data-type}}{{/isBinary}}{{#isBinary}}optional.Interface of {{dataType}}{{/isBinary}}{{/isPrimitiveType}}{{^isPrimitiveType}}optional.Interface of {{dataType}}{{/isPrimitiveType}}) - {{#description}} {{{.}}}{{/description}}
- {{/required}}
- {{/allParams}}
- {{/hasOptionalParams}}
- {{#returnType}}
- * @return {{{.}}}
- {{/returnType}}
- */
- {{{nickname}}}(ctx _context.Context{{#hasParams}}, {{/hasParams}}{{#allParams}}{{#required}}{{paramName}} {{{dataType}}}{{^-last}}, {{/-last}}{{/required}}{{/allParams}}{{#hasOptionalParams}}localVarOptionals *{{#structPrefix}}{{&classname}}{{/structPrefix}}{{{nickname}}}Opts{{/hasOptionalParams}}) ({{#returnType}}{{{.}}}, {{/returnType}}*_nethttp.Response, error)
-{{/operation}}
-}
-
-{{/generateInterfaces}}
-// {{classname}}Service {{classname}} service
-type {{classname}}Service service
-{{#operation}}
-
-{{#hasOptionalParams}}
-// {{#structPrefix}}{{&classname}}{{/structPrefix}}{{{nickname}}}Opts Optional parameters for the method '{{{nickname}}}'
-type {{#structPrefix}}{{&classname}}{{/structPrefix}}{{{nickname}}}Opts struct {
-{{#allParams}}
-{{^required}}
-{{#isPrimitiveType}}
-{{^isBinary}}
- {{vendorExtensions.x-export-param-name}} optional.{{vendorExtensions.x-optional-data-type}}
-{{/isBinary}}
-{{#isBinary}}
- {{vendorExtensions.x-export-param-name}} optional.Interface
-{{/isBinary}}
-{{/isPrimitiveType}}
-{{^isPrimitiveType}}
- {{vendorExtensions.x-export-param-name}} optional.Interface
-{{/isPrimitiveType}}
-{{/required}}
-{{/allParams}}
-}
-
-{{/hasOptionalParams}}
-/*
- * {{operationId}}{{#summary}} {{{.}}}{{/summary}}{{^summary}} Method for {{operationId}}{{/summary}}
- *
-{{#notes}}
- * {{.}}
- *
-{{/notes}}
- * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
-{{#allParams}}
-{{#required}}
- * @param {{paramName}}{{#description}} {{{.}}}{{/description}}
-{{/required}}
-{{/allParams}}
-{{#hasOptionalParams}}
- * @param optional nil or *{{#structPrefix}}{{&classname}}{{/structPrefix}}{{{nickname}}}Opts - Optional Parameters:
-{{#allParams}}
-{{^required}}
- * @param "{{vendorExtensions.x-export-param-name}}" ({{#isPrimitiveType}}{{^isBinary}}optional.{{vendorExtensions.x-optional-data-type}}{{/isBinary}}{{#isBinary}}optional.Interface of {{dataType}}{{/isBinary}}{{/isPrimitiveType}}{{^isPrimitiveType}}optional.Interface of {{dataType}}{{/isPrimitiveType}}) - {{#description}} {{{.}}}{{/description}}
-{{/required}}
-{{/allParams}}
-{{/hasOptionalParams}}
-{{#returnType}}
- * @return {{{.}}}
-{{/returnType}}
- */
-func (a *{{{classname}}}Service) {{{nickname}}}(ctx _context.Context{{#hasParams}}, {{/hasParams}}{{#allParams}}{{#required}}{{paramName}} {{{dataType}}}{{^-last}}, {{/-last}}{{/required}}{{/allParams}}{{#hasOptionalParams}}localVarOptionals *{{#structPrefix}}{{&classname}}{{/structPrefix}}{{{nickname}}}Opts{{/hasOptionalParams}}) ({{#returnType}}{{{.}}}, {{/returnType}}*_nethttp.Response, error) {
- var (
- localVarHTTPMethod = _nethttp.Method{{httpMethod}}
- localVarPostBody interface{}
- localVarFormFileName string
- localVarFileName string
- localVarFileBytes []byte
- {{#returnType}}
- localVarReturnValue {{{.}}}
- {{/returnType}}
- )
-
- // create path and map variables
- localVarPath := a.client.cfg.BasePath + "{{{path}}}"{{#pathParams}}
- localVarPath = strings.Replace(localVarPath, "{"+"{{baseName}}"+"}", _neturl.PathEscape(parameterToString({{paramName}}, "{{collectionFormat}}")) , -1)
- {{/pathParams}}
-
- localVarHeaderParams := make(map[string]string)
- localVarQueryParams := _neturl.Values{}
- localVarFormParams := _neturl.Values{}
- {{#allParams}}
- {{#required}}
- {{#minItems}}
- if len({{paramName}}) < {{minItems}} {
- return {{#returnType}}localVarReturnValue, {{/returnType}}nil, reportError("{{paramName}} must have at least {{minItems}} elements")
- }
- {{/minItems}}
- {{#maxItems}}
- if len({{paramName}}) > {{maxItems}} {
- return {{#returnType}}localVarReturnValue, {{/returnType}}nil, reportError("{{paramName}} must have less than {{maxItems}} elements")
- }
- {{/maxItems}}
- {{#minLength}}
- if strlen({{paramName}}) < {{minLength}} {
- return {{#returnType}}localVarReturnValue, {{/returnType}}nil, reportError("{{paramName}} must have at least {{minLength}} elements")
- }
- {{/minLength}}
- {{#maxLength}}
- if strlen({{paramName}}) > {{maxLength}} {
- return {{#returnType}}localVarReturnValue, {{/returnType}}nil, reportError("{{paramName}} must have less than {{maxLength}} elements")
- }
- {{/maxLength}}
- {{#minimum}}
- {{#isString}}
- {{paramName}}Txt, err := atoi({{paramName}})
- if {{paramName}}Txt < {{minimum}} {
- {{/isString}}
- {{^isString}}
- if {{paramName}} < {{minimum}} {
- {{/isString}}
- return {{#returnType}}localVarReturnValue, {{/returnType}}nil, reportError("{{paramName}} must be greater than {{minimum}}")
- }
- {{/minimum}}
- {{#maximum}}
- {{#isString}}
- {{paramName}}Txt, err := atoi({{paramName}})
- if {{paramName}}Txt > {{maximum}} {
- {{/isString}}
- {{^isString}}
- if {{paramName}} > {{maximum}} {
- {{/isString}}
- return {{#returnType}}localVarReturnValue, {{/returnType}}nil, reportError("{{paramName}} must be less than {{maximum}}")
- }
- {{/maximum}}
- {{/required}}
- {{/allParams}}
-
- {{#hasQueryParams}}
- {{#queryParams}}
- {{#required}}
- {{#isCollectionFormatMulti}}
- {
- t:={{paramName}}
- if reflect.TypeOf(t).Kind() == reflect.Slice {
- s := reflect.ValueOf(t)
- for i := 0; i < s.Len(); i++ {
- localVarQueryParams.Add("{{baseName}}", parameterToString(s.Index(i), "{{collectionFormat}}"))
- }
- } else {
- localVarQueryParams.Add("{{baseName}}", parameterToString(t, "{{collectionFormat}}"))
- }
- }
- {{/isCollectionFormatMulti}}
- {{^isCollectionFormatMulti}}
- localVarQueryParams.Add("{{baseName}}", parameterToString({{paramName}}, "{{collectionFormat}}"))
- {{/isCollectionFormatMulti}}
- {{/required}}
- {{^required}}
- if localVarOptionals != nil && localVarOptionals.{{vendorExtensions.x-export-param-name}}.IsSet() {
- {{#isCollectionFormatMulti}}
- t:=localVarOptionals.{{vendorExtensions.x-export-param-name}}.Value()
- if reflect.TypeOf(t).Kind() == reflect.Slice {
- s := reflect.ValueOf(t)
- for i := 0; i < s.Len(); i++ {
- localVarQueryParams.Add("{{baseName}}", parameterToString(s.Index(i), "{{collectionFormat}}"))
- }
- } else {
- localVarQueryParams.Add("{{baseName}}", parameterToString(t, "{{collectionFormat}}"))
- }
- {{/isCollectionFormatMulti}}
- {{^isCollectionFormatMulti}}
- localVarQueryParams.Add("{{baseName}}", parameterToString(localVarOptionals.{{vendorExtensions.x-export-param-name}}.Value(), "{{collectionFormat}}"))
- {{/isCollectionFormatMulti}}
- }
- {{/required}}
- {{/queryParams}}
- {{/hasQueryParams}}
- // to determine the Content-Type header
-{{=<% %>=}}
- localVarHTTPContentTypes := []string{<%#consumes%>"<%&mediaType%>"<%^-last%>, <%/-last%><%/consumes%>}
-<%={{ }}=%>
-
- // set Content-Type header
- localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
- if localVarHTTPContentType != "" {
- localVarHeaderParams["Content-Type"] = localVarHTTPContentType
- }
-
- // to determine the Accept header
-{{=<% %>=}}
- localVarHTTPHeaderAccepts := []string{<%#produces%>"<%&mediaType%>"<%^-last%>, <%/-last%><%/produces%>}
-<%={{ }}=%>
-
- // set Accept header
- localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
- if localVarHTTPHeaderAccept != "" {
- localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
- }
-{{#hasHeaderParams}}
-{{#headerParams}}
- {{#required}}
- localVarHeaderParams["{{baseName}}"] = parameterToString({{paramName}}, "{{collectionFormat}}")
- {{/required}}
- {{^required}}
- if localVarOptionals != nil && localVarOptionals.{{vendorExtensions.x-export-param-name}}.IsSet() {
- localVarHeaderParams["{{baseName}}"] = parameterToString(localVarOptionals.{{vendorExtensions.x-export-param-name}}.Value(), "{{collectionFormat}}")
- }
- {{/required}}
-{{/headerParams}}
-{{/hasHeaderParams}}
-{{#hasFormParams}}
-{{#formParams}}
-{{#isFile}}
- localVarFormFileName = "{{baseName}}"
-{{#required}}
- localVarFile := {{paramName}}
-{{/required}}
-{{^required}}
- var localVarFile {{dataType}}
- if localVarOptionals != nil && localVarOptionals.{{vendorExtensions.x-export-param-name}}.IsSet() {
- localVarFileOk := false
- localVarFile, localVarFileOk = localVarOptionals.{{vendorExtensions.x-export-param-name}}.Value().({{dataType}})
- if !localVarFileOk {
- return {{#returnType}}localVarReturnValue, {{/returnType}}nil, reportError("{{paramName}} should be {{dataType}}")
- }
- }
-{{/required}}
- if localVarFile != nil {
- fbs, _ := _ioutil.ReadAll(localVarFile)
- localVarFileBytes = fbs
- localVarFileName = localVarFile.Name()
- localVarFile.Close()
- }
-{{/isFile}}
-{{^isFile}}
-{{#required}}
- localVarFormParams.Add("{{baseName}}", parameterToString({{paramName}}, "{{collectionFormat}}"))
-{{/required}}
-{{^required}}
-{{#isModel}}
- if localVarOptionals != nil && localVarOptionals.{{vendorExtensions.x-export-param-name}}.IsSet() {
- paramJson, err := parameterToJson(localVarOptionals.{{vendorExtensions.x-export-param-name}}.Value())
- if err != nil {
- return {{#returnType}}localVarReturnValue, {{/returnType}}nil, err
- }
- localVarFormParams.Add("{{baseName}}", paramJson)
- }
-{{/isModel}}
-{{^isModel}}
- if localVarOptionals != nil && localVarOptionals.{{vendorExtensions.x-export-param-name}}.IsSet() {
- localVarFormParams.Add("{{baseName}}", parameterToString(localVarOptionals.{{vendorExtensions.x-export-param-name}}.Value(), "{{collectionFormat}}"))
- }
-{{/isModel}}
-{{/required}}
-{{/isFile}}
-{{/formParams}}
-{{/hasFormParams}}
-{{#hasBodyParam}}
-{{#bodyParams}}
- // body params
-{{#required}}
- localVarPostBody = &{{paramName}}
-{{/required}}
-{{^required}}
- if localVarOptionals != nil && localVarOptionals.{{vendorExtensions.x-export-param-name}}.IsSet() {
- {{#isPrimitiveType}}
- localVarPostBody = localVarOptionals.{{vendorExtensions.x-export-param-name}}.Value()
- {{/isPrimitiveType}}
- {{^isPrimitiveType}}
- localVarOptional{{vendorExtensions.x-export-param-name}}, localVarOptional{{vendorExtensions.x-export-param-name}}ok := localVarOptionals.{{vendorExtensions.x-export-param-name}}.Value().({{{dataType}}})
- if !localVarOptional{{vendorExtensions.x-export-param-name}}ok {
- return {{#returnType}}localVarReturnValue, {{/returnType}}nil, reportError("{{paramName}} should be {{dataType}}")
- }
- localVarPostBody = &localVarOptional{{vendorExtensions.x-export-param-name}}
- {{/isPrimitiveType}}
- }
-
-{{/required}}
-{{/bodyParams}}
-{{/hasBodyParam}}
-{{#authMethods}}
-{{#isApiKey}}
-{{^isKeyInCookie}}
- if ctx != nil {
- // API Key Authentication
- if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
- var key string
- if auth.Prefix != "" {
- key = auth.Prefix + " " + auth.Key
- } else {
- key = auth.Key
- }
- {{#isKeyInHeader}}
- localVarHeaderParams["{{keyParamName}}"] = key
- {{/isKeyInHeader}}
- {{#isKeyInQuery}}
- localVarQueryParams.Add("{{keyParamName}}", key)
- {{/isKeyInQuery}}
- }
- }
-{{/isKeyInCookie}}
-{{/isApiKey}}
-{{/authMethods}}
- r, err := a.client.prepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
- if err != nil {
- return {{#returnType}}localVarReturnValue, {{/returnType}}nil, err
- }
-
- localVarHTTPResponse, err := a.client.callAPI(r)
- if err != nil || localVarHTTPResponse == nil {
- return {{#returnType}}localVarReturnValue, {{/returnType}}localVarHTTPResponse, err
- }
-
- localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
- localVarHTTPResponse.Body.Close()
- localVarHTTPResponse.Body = _ioutil.NopCloser(_bytes.NewBuffer(localVarBody))
- if err != nil {
- return {{#returnType}}localVarReturnValue, {{/returnType}}localVarHTTPResponse, err
- }
-
- if localVarHTTPResponse.StatusCode >= 300 {
- newErr := GenericOpenAPIError{
- body: localVarBody,
- error: localVarHTTPResponse.Status,
- }
- {{#responses}}
- {{#dataType}}
- {{^is1xx}}
- {{^is2xx}}
- {{^wildcard}}
- if localVarHTTPResponse.StatusCode == {{{code}}} {
- {{/wildcard}}
- var v {{{dataType}}}
- err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr.error = err.Error()
- return {{#returnType}}localVarReturnValue, {{/returnType}}localVarHTTPResponse, newErr
- }
- newErr.model = v
- {{^-last}}
- return {{#returnType}}localVarReturnValue, {{/returnType}}localVarHTTPResponse, newErr
- {{/-last}}
- {{^wildcard}}
- }
- {{/wildcard}}
- {{/is2xx}}
- {{/is1xx}}
- {{/dataType}}
- {{/responses}}
- return {{#returnType}}localVarReturnValue, {{/returnType}}localVarHTTPResponse, newErr
- }
-
- {{#returnType}}
- err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
- if err != nil {
- newErr := GenericOpenAPIError{
- body: localVarBody,
- error: err.Error(),
- }
- return {{#returnType}}localVarReturnValue, {{/returnType}}localVarHTTPResponse, newErr
- }
-
- {{/returnType}}
- return {{#returnType}}localVarReturnValue, {{/returnType}}localVarHTTPResponse, nil
-}
-{{/operation}}
-{{/operations}}
diff --git a/modules/openapi-generator/src/main/resources/go-deprecated/api_doc.mustache b/modules/openapi-generator/src/main/resources/go-deprecated/api_doc.mustache
deleted file mode 100644
index 468ee78bbf5..00000000000
--- a/modules/openapi-generator/src/main/resources/go-deprecated/api_doc.mustache
+++ /dev/null
@@ -1,59 +0,0 @@
-# {{invokerPackage}}\{{classname}}{{#description}}
-
-{{.}}{{/description}}
-
-All URIs are relative to *{{basePath}}*
-
-Method | HTTP request | Description
-------------- | ------------- | -------------
-{{#operations}}{{#operation}}[**{{operationId}}**]({{classname}}.md#{{operationId}}) | **{{httpMethod}}** {{path}} | {{summary}}
-{{/operation}}{{/operations}}
-
-{{#operations}}
-{{#operation}}
-
-## {{{operationId}}}
-
-> {{#returnType}}{{{.}}} {{/returnType}}{{{operationId}}}(ctx, {{#allParams}}{{#required}}{{paramName}}{{^-last}}, {{/-last}}{{/required}}{{/allParams}}{{#hasOptionalParams}}optional{{/hasOptionalParams}})
-
-{{{summary}}}{{#notes}}
-
-{{{.}}}{{/notes}}
-
-### Required Parameters
-
-{{^allParams}}This endpoint does not need any parameter.{{/allParams}}{{#allParams}}{{#-last}}
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
-**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.{{/-last}}{{/allParams}}{{#allParams}}{{#required}}
-**{{paramName}}** | {{#isFile}}**{{dataType}}**{{/isFile}}{{#isPrimitiveType}}**{{dataType}}**{{/isPrimitiveType}}{{^isPrimitiveType}}{{^isFile}}[**{{dataType}}**]({{baseType}}.md){{/isFile}}{{/isPrimitiveType}}| {{description}} | {{#defaultValue}}[default to {{.}}]{{/defaultValue}}{{/required}}{{/allParams}}{{#hasOptionalParams}}
- **optional** | ***{{{nickname}}}Opts** | optional parameters | nil if no parameters
-
-### Optional Parameters
-
-Optional parameters are passed through a pointer to a {{{nickname}}}Opts struct
-{{#allParams}}{{#-last}}
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------{{/-last}}{{/allParams}}{{#allParams}}
-{{^required}} **{{paramName}}** | {{#isFile}}**optional.Interface of {{dataType}}**{{/isFile}}{{#isPrimitiveType}}**optional.{{vendorExtensions.x-optional-data-type}}**{{/isPrimitiveType}}{{^isPrimitiveType}}{{^isFile}}[**optional.Interface of {{dataType}}**]({{baseType}}.md){{/isFile}}{{/isPrimitiveType}}| {{description}} | {{#defaultValue}}[default to {{.}}]{{/defaultValue}}{{/required}}{{/allParams}}{{/hasOptionalParams}}
-
-### Return type
-
-{{#returnType}}{{#returnTypeIsPrimitive}}**{{{returnType}}}**{{/returnTypeIsPrimitive}}{{^returnTypeIsPrimitive}}[**{{{returnType}}}**]({{returnBaseType}}.md){{/returnTypeIsPrimitive}}{{/returnType}}{{^returnType}} (empty response body){{/returnType}}
-
-### Authorization
-
-{{^authMethods}}No authorization required{{/authMethods}}{{#authMethods}}[{{{name}}}](../README.md#{{{name}}}){{^-last}}, {{/-last}}{{/authMethods}}
-
-### HTTP request headers
-
-- **Content-Type**: {{#consumes}}{{{mediaType}}}{{^-last}}, {{/-last}}{{/consumes}}{{^consumes}}Not defined{{/consumes}}
-- **Accept**: {{#produces}}{{{mediaType}}}{{^-last}}, {{/-last}}{{/produces}}{{^produces}}Not defined{{/produces}}
-
-[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
-[[Back to Model list]](../README.md#documentation-for-models)
-[[Back to README]](../README.md)
-
-{{/operation}}
-{{/operations}}
diff --git a/modules/openapi-generator/src/main/resources/go-deprecated/client.mustache b/modules/openapi-generator/src/main/resources/go-deprecated/client.mustache
deleted file mode 100644
index 5df4f2a0b14..00000000000
--- a/modules/openapi-generator/src/main/resources/go-deprecated/client.mustache
+++ /dev/null
@@ -1,573 +0,0 @@
-{{>partial_header}}
-package {{packageName}}
-
-import (
- "bytes"
- "context"
- "encoding/json"
- "encoding/xml"
- "errors"
- "fmt"
- "io"
- "io/ioutil"
- "log"
- "mime/multipart"
- "net/http"
- "net/http/httputil"
- "net/url"
- "os"
- "path/filepath"
- "reflect"
- "regexp"
- "strconv"
- "strings"
- "time"
- "unicode/utf8"
-
- "golang.org/x/oauth2"
- {{#withAWSV4Signature}}
- awsv4 "github.com/aws/aws-sdk-go/aws/signer/v4"
- awscredentials "github.com/aws/aws-sdk-go/aws/credentials"
- {{/withAWSV4Signature}}
-)
-
-var (
- jsonCheck = regexp.MustCompile(`(?i:(?:application|text)/(?:vnd\.[^;]+\+)?(?:problem\+)?json)`)
- xmlCheck = regexp.MustCompile(`(?i:(?:application|text)/xml)`)
-)
-
-// APIClient manages communication with the {{appName}} API v{{version}}
-// In most cases there should be only one, shared, APIClient.
-type APIClient struct {
- cfg *Configuration
- common service // Reuse a single struct instead of allocating one for each service on the heap.
-
- // API Services
-{{#apiInfo}}
-{{#apis}}
-{{#operations}}
-
-{{#generateInterfaces}}
- {{classname}} {{classname}}
-{{/generateInterfaces}}
-{{^generateInterfaces}}
- {{classname}} *{{classname}}Service
-{{/generateInterfaces}}
-{{/operations}}
-{{/apis}}
-{{/apiInfo}}
-}
-
-type service struct {
- client *APIClient
-}
-
-// NewAPIClient creates a new API client. Requires a userAgent string describing your application.
-// optionally a custom http.Client to allow for advanced features such as caching.
-func NewAPIClient(cfg *Configuration) *APIClient {
- if cfg.HTTPClient == nil {
- cfg.HTTPClient = http.DefaultClient
- }
-
- c := &APIClient{}
- c.cfg = cfg
- c.common.client = c
-
-{{#apiInfo}}
- // API Services
-{{#apis}}
-{{#operations}}
- c.{{classname}} = (*{{classname}}Service)(&c.common)
-{{/operations}}
-{{/apis}}
-{{/apiInfo}}
-
- return c
-}
-
-func atoi(in string) (int, error) {
- return strconv.Atoi(in)
-}
-
-// selectHeaderContentType select a content type from the available list.
-func selectHeaderContentType(contentTypes []string) string {
- if len(contentTypes) == 0 {
- return ""
- }
- if contains(contentTypes, "application/json") {
- return "application/json"
- }
- return contentTypes[0] // use the first content type specified in 'consumes'
-}
-
-// selectHeaderAccept join all accept types and return
-func selectHeaderAccept(accepts []string) string {
- if len(accepts) == 0 {
- return ""
- }
-
- if contains(accepts, "application/json") {
- return "application/json"
- }
-
- return strings.Join(accepts, ",")
-}
-
-// contains is a case insensitive match, finding needle in a haystack
-func contains(haystack []string, needle string) bool {
- for _, a := range haystack {
- if strings.ToLower(a) == strings.ToLower(needle) {
- return true
- }
- }
- return false
-}
-
-// Verify optional parameters are of the correct type.
-func typeCheckParameter(obj interface{}, expected string, name string) error {
- // Make sure there is an object.
- if obj == nil {
- return nil
- }
-
- // Check the type is as expected.
- if reflect.TypeOf(obj).String() != expected {
- return fmt.Errorf("Expected %s to be of type %s but received %s.", name, expected, reflect.TypeOf(obj).String())
- }
- return nil
-}
-
-// parameterToString convert interface{} parameters to string, using a delimiter if format is provided.
-func parameterToString(obj interface{}, collectionFormat string) string {
- var delimiter string
-
- switch collectionFormat {
- case "pipes":
- delimiter = "|"
- case "ssv":
- delimiter = " "
- case "tsv":
- delimiter = "\t"
- case "csv":
- delimiter = ","
- }
-
- if reflect.TypeOf(obj).Kind() == reflect.Slice {
- return strings.Trim(strings.Replace(fmt.Sprint(obj), " ", delimiter, -1), "[]")
- } else if t, ok := obj.(time.Time); ok {
- return t.Format(time.RFC3339)
- }
-
- return fmt.Sprintf("%v", obj)
-}
-
-// helper for converting interface{} parameters to json strings
-func parameterToJson(obj interface{}) (string, error) {
- jsonBuf, err := json.Marshal(obj)
- if err != nil {
- return "", err
- }
- return string(jsonBuf), err
-}
-
-
-// callAPI do the request.
-func (c *APIClient) callAPI(request *http.Request) (*http.Response, error) {
- if c.cfg.Debug {
- dump, err := httputil.DumpRequestOut(request, true)
- if err != nil {
- return nil, err
- }
- log.Printf("\n%s\n", string(dump))
- }
-
- resp, err := c.cfg.HTTPClient.Do(request)
- if err != nil {
- return resp, err
- }
-
- if c.cfg.Debug {
- dump, err := httputil.DumpResponse(resp, true)
- if err != nil {
- return resp, err
- }
- log.Printf("\n%s\n", string(dump))
- }
-
- return resp, err
-}
-
-// ChangeBasePath changes base path to allow switching to mocks
-func (c *APIClient) ChangeBasePath(path string) {
- c.cfg.BasePath = path
-}
-
-// Allow modification of underlying config for alternate implementations and testing
-// Caution: modifying the configuration while live can cause data races and potentially unwanted behavior
-func (c *APIClient) GetConfig() *Configuration {
- return c.cfg
-}
-
-// prepareRequest build the request
-func (c *APIClient) prepareRequest(
- ctx context.Context,
- path string, method string,
- postBody interface{},
- headerParams map[string]string,
- queryParams url.Values,
- formParams url.Values,
- formFileName string,
- fileName string,
- fileBytes []byte) (localVarRequest *http.Request, err error) {
-
- var body *bytes.Buffer
-
- // Detect postBody type and post.
- if postBody != nil {
- contentType := headerParams["Content-Type"]
- if contentType == "" {
- contentType = detectContentType(postBody)
- headerParams["Content-Type"] = contentType
- }
-
- body, err = setBody(postBody, contentType)
- if err != nil {
- return nil, err
- }
- }
-
- // add form parameters and file if available.
- if strings.HasPrefix(headerParams["Content-Type"], "multipart/form-data") && len(formParams) > 0 || (len(fileBytes) > 0 && fileName != "") {
- if body != nil {
- return nil, errors.New("Cannot specify postBody and multipart form at the same time.")
- }
- body = &bytes.Buffer{}
- w := multipart.NewWriter(body)
-
- for k, v := range formParams {
- for _, iv := range v {
- if strings.HasPrefix(k, "@") { // file
- err = addFile(w, k[1:], iv)
- if err != nil {
- return nil, err
- }
- } else { // form value
- w.WriteField(k, iv)
- }
- }
- }
- if len(fileBytes) > 0 && fileName != "" {
- w.Boundary()
- //_, fileNm := filepath.Split(fileName)
- part, err := w.CreateFormFile(formFileName, filepath.Base(fileName))
- if err != nil {
- return nil, err
- }
- _, err = part.Write(fileBytes)
- if err != nil {
- return nil, err
- }
- }
-
- // Set the Boundary in the Content-Type
- headerParams["Content-Type"] = w.FormDataContentType()
-
- // Set Content-Length
- headerParams["Content-Length"] = fmt.Sprintf("%d", body.Len())
- w.Close()
- }
-
- if strings.HasPrefix(headerParams["Content-Type"], "application/x-www-form-urlencoded") && len(formParams) > 0 {
- if body != nil {
- return nil, errors.New("Cannot specify postBody and x-www-form-urlencoded form at the same time.")
- }
- body = &bytes.Buffer{}
- body.WriteString(formParams.Encode())
- // Set Content-Length
- headerParams["Content-Length"] = fmt.Sprintf("%d", body.Len())
- }
-
- // Setup path and query parameters
- url, err := url.Parse(path)
- if err != nil {
- return nil, err
- }
-
- // Override request host, if applicable
- if c.cfg.Host != "" {
- url.Host = c.cfg.Host
- }
-
- // Override request scheme, if applicable
- if c.cfg.Scheme != "" {
- url.Scheme = c.cfg.Scheme
- }
-
- // Adding Query Param
- query := url.Query()
- for k, v := range queryParams {
- for _, iv := range v {
- query.Add(k, iv)
- }
- }
-
- // Encode the parameters.
- url.RawQuery = query.Encode()
-
- // Generate a new request
- if body != nil {
- localVarRequest, err = http.NewRequest(method, url.String(), body)
- } else {
- localVarRequest, err = http.NewRequest(method, url.String(), nil)
- }
- if err != nil {
- return nil, err
- }
-
- // add header parameters, if any
- if len(headerParams) > 0 {
- headers := http.Header{}
- for h, v := range headerParams {
- headers.Set(h, v)
- }
- localVarRequest.Header = headers
- }
-
- // Add the user agent to the request.
- localVarRequest.Header.Add("User-Agent", c.cfg.UserAgent)
-
- if ctx != nil {
- // add context to the request
- localVarRequest = localVarRequest.WithContext(ctx)
-
- // Walk through any authentication.
-
- // OAuth2 authentication
- if tok, ok := ctx.Value(ContextOAuth2).(oauth2.TokenSource); ok {
- // We were able to grab an oauth2 token from the context
- var latestToken *oauth2.Token
- if latestToken, err = tok.Token(); err != nil {
- return nil, err
- }
-
- latestToken.SetAuthHeader(localVarRequest)
- }
-
- // Basic HTTP Authentication
- if auth, ok := ctx.Value(ContextBasicAuth).(BasicAuth); ok {
- localVarRequest.SetBasicAuth(auth.UserName, auth.Password)
- }
-
- // AccessToken Authentication
- if auth, ok := ctx.Value(ContextAccessToken).(string); ok {
- localVarRequest.Header.Add("Authorization", "Bearer "+auth)
- }
-
- {{#withAWSV4Signature}}
- // AWS Signature v4 Authentication
- if auth, ok := ctx.Value(ContextAWSv4).(AWSv4); ok {
- creds := awscredentials.NewStaticCredentials(auth.AccessKey, auth.SecretKey, "")
- signer := awsv4.NewSigner(creds)
- var reader *strings.Reader
- if body == nil {
- reader = strings.NewReader("")
- } else {
- reader = strings.NewReader(body.String())
- }
- timestamp := time.Now()
- _, err := signer.Sign(localVarRequest, reader, "oapi", "eu-west-2", timestamp)
- if err != nil {
- return nil, err
- }
- }
- {{/withAWSV4Signature}}
- }
-
- for header, value := range c.cfg.DefaultHeader {
- localVarRequest.Header.Add(header, value)
- }
-
- return localVarRequest, nil
-}
-
-func (c *APIClient) decode(v interface{}, b []byte, contentType string) (err error) {
- if len(b) == 0 {
- return nil
- }
- if s, ok := v.(*string); ok {
- *s = string(b)
- return nil
- }
- if f, ok := v.(**os.File); ok {
- *f, err = ioutil.TempFile("", "HttpClientFile")
- if err != nil {
- return
- }
- _, err = (*f).Write(b)
- _, err = (*f).Seek(0, io.SeekStart)
- return
- }
- if xmlCheck.MatchString(contentType) {
- if err = xml.Unmarshal(b, v); err != nil {
- return err
- }
- return nil
- }
- if jsonCheck.MatchString(contentType) {
- if err = json.Unmarshal(b, v); err != nil {
- return err
- }
- return nil
- }
- return errors.New("undefined response type")
-}
-
-// Add a file to the multipart request
-func addFile(w *multipart.Writer, fieldName, path string) error {
- file, err := os.Open(path)
- if err != nil {
- return err
- }
- defer file.Close()
-
- part, err := w.CreateFormFile(fieldName, filepath.Base(path))
- if err != nil {
- return err
- }
- _, err = io.Copy(part, file)
-
- return err
-}
-
-// Prevent trying to import "fmt"
-func reportError(format string, a ...interface{}) error {
- return fmt.Errorf(format, a...)
-}
-
-// Set request body from an interface{}
-func setBody(body interface{}, contentType string) (bodyBuf *bytes.Buffer, err error) {
- if bodyBuf == nil {
- bodyBuf = &bytes.Buffer{}
- }
-
- if reader, ok := body.(io.Reader); ok {
- _, err = bodyBuf.ReadFrom(reader)
- } else if b, ok := body.([]byte); ok {
- _, err = bodyBuf.Write(b)
- } else if s, ok := body.(string); ok {
- _, err = bodyBuf.WriteString(s)
- } else if s, ok := body.(*string); ok {
- _, err = bodyBuf.WriteString(*s)
- } else if jsonCheck.MatchString(contentType) {
- err = json.NewEncoder(bodyBuf).Encode(body)
- } else if xmlCheck.MatchString(contentType) {
- err = xml.NewEncoder(bodyBuf).Encode(body)
- }
-
- if err != nil {
- return nil, err
- }
-
- if bodyBuf.Len() == 0 {
- err = fmt.Errorf("Invalid body type %s\n", contentType)
- return nil, err
- }
- return bodyBuf, nil
-}
-
-// detectContentType method is used to figure out `Request.Body` content type for request header
-func detectContentType(body interface{}) string {
- contentType := "text/plain; charset=utf-8"
- kind := reflect.TypeOf(body).Kind()
-
- switch kind {
- case reflect.Struct, reflect.Map, reflect.Ptr:
- contentType = "application/json; charset=utf-8"
- case reflect.String:
- contentType = "text/plain; charset=utf-8"
- default:
- if b, ok := body.([]byte); ok {
- contentType = http.DetectContentType(b)
- } else if kind == reflect.Slice {
- contentType = "application/json; charset=utf-8"
- }
- }
-
- return contentType
-}
-
-// Ripped from https://github.com/gregjones/httpcache/blob/master/httpcache.go
-type cacheControl map[string]string
-
-func parseCacheControl(headers http.Header) cacheControl {
- cc := cacheControl{}
- ccHeader := headers.Get("Cache-Control")
- for _, part := range strings.Split(ccHeader, ",") {
- part = strings.Trim(part, " ")
- if part == "" {
- continue
- }
- if strings.ContainsRune(part, '=') {
- keyval := strings.Split(part, "=")
- cc[strings.Trim(keyval[0], " ")] = strings.Trim(keyval[1], ",")
- } else {
- cc[part] = ""
- }
- }
- return cc
-}
-
-// CacheExpires helper function to determine remaining time before repeating a request.
-func CacheExpires(r *http.Response) time.Time {
- // Figure out when the cache expires.
- var expires time.Time
- now, err := time.Parse(time.RFC1123, r.Header.Get("date"))
- if err != nil {
- return time.Now()
- }
- respCacheControl := parseCacheControl(r.Header)
-
- if maxAge, ok := respCacheControl["max-age"]; ok {
- lifetime, err := time.ParseDuration(maxAge + "s")
- if err != nil {
- expires = now
- } else {
- expires = now.Add(lifetime)
- }
- } else {
- expiresHeader := r.Header.Get("Expires")
- if expiresHeader != "" {
- expires, err = time.Parse(time.RFC1123, expiresHeader)
- if err != nil {
- expires = now
- }
- }
- }
- return expires
-}
-
-func strlen(s string) int {
- return utf8.RuneCountInString(s)
-}
-
-// GenericOpenAPIError Provides access to the body, error and model on returned errors.
-type GenericOpenAPIError struct {
- body []byte
- error string
- model interface{}
-}
-
-// Error returns non-empty string if there was an error.
-func (e GenericOpenAPIError) Error() string {
- return e.error
-}
-
-// Body returns the raw bytes of the response
-func (e GenericOpenAPIError) Body() []byte {
- return e.body
-}
-
-// Model returns the unpacked model of the error
-func (e GenericOpenAPIError) Model() interface{} {
- return e.model
-}
diff --git a/modules/openapi-generator/src/main/resources/go-deprecated/configuration.mustache b/modules/openapi-generator/src/main/resources/go-deprecated/configuration.mustache
deleted file mode 100644
index 46322cf507a..00000000000
--- a/modules/openapi-generator/src/main/resources/go-deprecated/configuration.mustache
+++ /dev/null
@@ -1,161 +0,0 @@
-{{>partial_header}}
-package {{packageName}}
-
-import (
- "fmt"
- "net/http"
- "strings"
-)
-
-// contextKeys are used to identify the type of value in the context.
-// Since these are string, it is possible to get a short description of the
-// context key for logging and debugging using key.String().
-
-type contextKey string
-
-func (c contextKey) String() string {
- return "auth " + string(c)
-}
-
-var (
- // ContextOAuth2 takes an oauth2.TokenSource as authentication for the request.
- ContextOAuth2 = contextKey("token")
-
- // ContextBasicAuth takes BasicAuth as authentication for the request.
- ContextBasicAuth = contextKey("basic")
-
- // ContextAccessToken takes a string oauth2 access token as authentication for the request.
- ContextAccessToken = contextKey("accesstoken")
-
- // ContextAPIKey takes an APIKey as authentication for the request
- ContextAPIKey = contextKey("apikey")
-
- {{#withAWSV4Signature}}
- // ContextAWSv4 takes an Access Key and a Secret Key for signing AWS Signature v4.
- ContextAWSv4 = contextKey("awsv4")
- {{/withAWSV4Signature}}
-)
-
-// BasicAuth provides basic http authentication to a request passed via context using ContextBasicAuth
-type BasicAuth struct {
- UserName string `json:"userName,omitempty"`
- Password string `json:"password,omitempty"`
-}
-
-// APIKey provides API key based authentication to a request passed via context using ContextAPIKey
-type APIKey struct {
- Key string
- Prefix string
-}
-
-{{#withAWSV4Signature}}
-// AWSv4 provides AWS Signature to a request passed via context using ContextAWSv4
-// https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html
-type AWSv4 struct {
- AccessKey string
- SecretKey string
-}
-{{/withAWSV4Signature}}
-
-// ServerVariable stores the information about a server variable
-type ServerVariable struct {
- Description string
- DefaultValue string
- EnumValues []string
-}
-
-// ServerConfiguration stores the information about a server
-type ServerConfiguration struct {
- Url string
- Description string
- Variables map[string]ServerVariable
-}
-
-// Configuration stores the configuration of the API client
-type Configuration struct {
- BasePath string `json:"basePath,omitempty"`
- Host string `json:"host,omitempty"`
- Scheme string `json:"scheme,omitempty"`
- DefaultHeader map[string]string `json:"defaultHeader,omitempty"`
- UserAgent string `json:"userAgent,omitempty"`
- Debug bool `json:"debug,omitempty"`
- Servers []ServerConfiguration
- HTTPClient *http.Client
-}
-
-// NewConfiguration returns a new Configuration object
-func NewConfiguration() *Configuration {
- cfg := &Configuration{
- BasePath: "{{{basePath}}}",
- DefaultHeader: make(map[string]string),
- UserAgent: "{{{httpUserAgent}}}{{^httpUserAgent}}OpenAPI-Generator/{{{packageVersion}}}/go{{/httpUserAgent}}",
- Debug: false,
- {{#servers}}
- {{#-first}}
- Servers: []ServerConfiguration{
- {{/-first}}
- {
- Url: "{{{url}}}",
- Description: "{{{description}}}{{^description}}No description provided{{/description}}",
- {{#variables}}
- {{#-first}}
- Variables: map[string]ServerVariable{
- {{/-first}}
- "{{{name}}}": ServerVariable{
- Description: "{{{description}}}{{^description}}No description provided{{/description}}",
- DefaultValue: "{{{defaultValue}}}",
- {{#enumValues}}
- {{#-first}}
- EnumValues: []string{
- {{/-first}}
- "{{{.}}}",
- {{#-last}}
- },
- {{/-last}}
- {{/enumValues}}
- },
- {{#-last}}
- },
- {{/-last}}
- {{/variables}}
- },
- {{#-last}}
- },
- {{/-last}}
- {{/servers}}
- }
- return cfg
-}
-
-// AddDefaultHeader adds a new HTTP header to the default header in the request
-func (c *Configuration) AddDefaultHeader(key string, value string) {
- c.DefaultHeader[key] = value
-}
-
-// ServerUrl returns URL based on server settings
-func (c *Configuration) ServerUrl(index int, variables map[string]string) (string, error) {
- if index < 0 || len(c.Servers) <= index {
- return "", fmt.Errorf("Index %v out of range %v", index, len(c.Servers) - 1)
- }
- server := c.Servers[index]
- url := server.Url
-
- // go through variables and replace placeholders
- for name, variable := range server.Variables {
- if value, ok := variables[name]; ok {
- found := bool(len(variable.EnumValues) == 0)
- for _, enumValue := range variable.EnumValues {
- if value == enumValue {
- found = true
- }
- }
- if !found {
- return "", fmt.Errorf("The variable %s in the server URL has invalid value %v. Must be %v", name, value, variable.EnumValues)
- }
- url = strings.Replace(url, "{"+name+"}", value, -1)
- } else {
- url = strings.Replace(url, "{"+name+"}", variable.DefaultValue, -1)
- }
- }
- return url, nil
-}
diff --git a/modules/openapi-generator/src/main/resources/go-deprecated/git_push.sh.mustache b/modules/openapi-generator/src/main/resources/go-deprecated/git_push.sh.mustache
deleted file mode 100755
index 0e3776ae6dd..00000000000
--- a/modules/openapi-generator/src/main/resources/go-deprecated/git_push.sh.mustache
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/bin/sh
-# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/
-#
-# Usage example: /bin/sh ./git_push.sh wing328 openapi-petstore-perl "minor update" "gitlab.com"
-
-git_user_id=$1
-git_repo_id=$2
-release_note=$3
-git_host=$4
-
-if [ "$git_host" = "" ]; then
- git_host="{{{gitHost}}}"
- echo "[INFO] No command line input provided. Set \$git_host to $git_host"
-fi
-
-if [ "$git_user_id" = "" ]; then
- git_user_id="{{{gitUserId}}}"
- echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id"
-fi
-
-if [ "$git_repo_id" = "" ]; then
- git_repo_id="{{{gitRepoId}}}"
- echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id"
-fi
-
-if [ "$release_note" = "" ]; then
- release_note="{{{releaseNote}}}"
- echo "[INFO] No command line input provided. Set \$release_note to $release_note"
-fi
-
-# Initialize the local directory as a Git repository
-git init
-
-# Adds the files in the local repository and stages them for commit.
-git add .
-
-# Commits the tracked changes and prepares them to be pushed to a remote repository.
-git commit -m "$release_note"
-
-# Sets the new remote
-git_remote=$(git remote)
-if [ "$git_remote" = "" ]; then # git remote not defined
-
- if [ "$GIT_TOKEN" = "" ]; then
- echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment."
- git remote add origin https://${git_host}/${git_user_id}/${git_repo_id}.git
- else
- git remote add origin https://${git_user_id}:"${GIT_TOKEN}"@${git_host}/${git_user_id}/${git_repo_id}.git
- fi
-
-fi
-
-git pull origin master
-
-# Pushes (Forces) the changes in the local repository up to the remote repository
-echo "Git pushing to https://${git_host}/${git_user_id}/${git_repo_id}.git"
-git push origin master 2>&1 | grep -v 'To https'
diff --git a/modules/openapi-generator/src/main/resources/go-deprecated/gitignore.mustache b/modules/openapi-generator/src/main/resources/go-deprecated/gitignore.mustache
deleted file mode 100644
index daf913b1b34..00000000000
--- a/modules/openapi-generator/src/main/resources/go-deprecated/gitignore.mustache
+++ /dev/null
@@ -1,24 +0,0 @@
-# Compiled Object files, Static and Dynamic libs (Shared Objects)
-*.o
-*.a
-*.so
-
-# Folders
-_obj
-_test
-
-# Architecture specific extensions/prefixes
-*.[568vq]
-[568vq].out
-
-*.cgo1.go
-*.cgo2.c
-_cgo_defun.c
-_cgo_gotypes.go
-_cgo_export.*
-
-_testmain.go
-
-*.exe
-*.test
-*.prof
diff --git a/modules/openapi-generator/src/main/resources/go-deprecated/go.mod.mustache b/modules/openapi-generator/src/main/resources/go-deprecated/go.mod.mustache
deleted file mode 100644
index c97cfff92ea..00000000000
--- a/modules/openapi-generator/src/main/resources/go-deprecated/go.mod.mustache
+++ /dev/null
@@ -1,9 +0,0 @@
-module {{gitHost}}/{{gitUserId}}/{{gitRepoId}}{{#isGoSubmodule}}/{{packageName}}{{/isGoSubmodule}}
-
-require (
- github.com/antihax/optional v1.0.0
- golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45
- {{#withAWSV4Signature}}
- github.com/aws/aws-sdk-go v1.34.14
- {{/withAWSV4Signature}}
-)
diff --git a/modules/openapi-generator/src/main/resources/go-deprecated/go.sum b/modules/openapi-generator/src/main/resources/go-deprecated/go.sum
deleted file mode 100644
index ee695202297..00000000000
--- a/modules/openapi-generator/src/main/resources/go-deprecated/go.sum
+++ /dev/null
@@ -1,17 +0,0 @@
-cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
-github.com/antihax/optional v1.0.0 h1:xK2lYat7ZLaVVcIuj82J8kIro4V6kDe0AUDFboUCwcg=
-github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
-github.com/aws/aws-sdk-go v1.26.3 h1:szQdfJcUBAhQT0zZEx4sxoDuWb7iScoucxCiVxDmaBk=
-github.com/aws/aws-sdk-go v1.26.3/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
-github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM=
-github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e h1:bRhVy7zSSasaqNksaRZiA5EEI+Ei4I1nO5Jh72wfHlg=
-golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0=
-golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
-golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4 h1:YUO/7uOKsKeq9UokNS62b8FYywz3ker1l1vDZRCRefw=
-golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-google.golang.org/appengine v1.4.0 h1:/wp5JvzpHIxhs/dumFmF7BXTf3Z+dd4uXta4kVyO508=
-google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
diff --git a/modules/openapi-generator/src/main/resources/go-deprecated/model.mustache b/modules/openapi-generator/src/main/resources/go-deprecated/model.mustache
deleted file mode 100644
index cf2d15413d6..00000000000
--- a/modules/openapi-generator/src/main/resources/go-deprecated/model.mustache
+++ /dev/null
@@ -1,43 +0,0 @@
-{{>partial_header}}
-package {{packageName}}
-{{#models}}
-{{#imports}}
-{{#-first}}
-import (
-{{/-first}}
- "{{import}}"
-{{#-last}}
-)
-{{/-last}}
-{{/imports}}
-{{#model}}
-{{#isEnum}}
-// {{{classname}}} {{{description}}}{{^description}}the model '{{{classname}}}'{{/description}}
-type {{{classname}}} {{^format}}{{dataType}}{{/format}}{{{format}}}
-
-// List of {{{name}}}
-const (
- {{#allowableValues}}
- {{#enumVars}}
- {{^-first}}
- {{/-first}}
- {{#enumClassPrefix}}{{{classname.toUpperCase}}}_{{/enumClassPrefix}}{{name}} {{{classname}}} = {{{value}}}
- {{/enumVars}}
- {{/allowableValues}}
-)
-{{/isEnum}}
-{{^isEnum}}
-// {{classname}}{{#description}} {{{.}}}{{/description}}{{^description}} struct for {{{classname}}}{{/description}}
-type {{classname}} struct {
-{{#allVars}}
-{{^-first}}
-{{/-first}}
-{{#description}}
- // {{{.}}}
-{{/description}}
- {{name}} {{#isNullable}}*{{/isNullable}}{{{dataType}}} `json:"{{baseName}}{{^required}},omitempty{{/required}}"{{#withXml}} xml:"{{baseName}}{{#isXmlAttribute}},attr{{/isXmlAttribute}}"{{/withXml}}{{#vendorExtensions.x-go-custom-tag}} {{{.}}}{{/vendorExtensions.x-go-custom-tag}}`
-{{/allVars}}
-}
-{{/isEnum}}
-{{/model}}
-{{/models}}
diff --git a/modules/openapi-generator/src/main/resources/go-deprecated/model_doc.mustache b/modules/openapi-generator/src/main/resources/go-deprecated/model_doc.mustache
deleted file mode 100644
index ae517d4a75a..00000000000
--- a/modules/openapi-generator/src/main/resources/go-deprecated/model_doc.mustache
+++ /dev/null
@@ -1,12 +0,0 @@
-{{#models}}{{#model}}# {{classname}}
-
-## Properties
-
-Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
-{{#allVars}}**{{name}}** | {{#isNullable}}Pointer to {{/isNullable}}{{#isPrimitiveType}}**{{{dataType}}}**{{/isPrimitiveType}}{{^isPrimitiveType}}[**{{{dataType}}}**]({{complexType}}.md){{/isPrimitiveType}} | {{description}} | {{^required}}[optional] {{/required}}{{#isReadOnly}}[readonly] {{/isReadOnly}}{{#defaultValue}}[default to {{{.}}}]{{/defaultValue}}
-{{/allVars}}
-
-[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
-
-{{/model}}{{/models}}
diff --git a/modules/openapi-generator/src/main/resources/go-deprecated/openapi.mustache b/modules/openapi-generator/src/main/resources/go-deprecated/openapi.mustache
deleted file mode 100644
index 51ebafb0187..00000000000
--- a/modules/openapi-generator/src/main/resources/go-deprecated/openapi.mustache
+++ /dev/null
@@ -1 +0,0 @@
-{{{openapi-yaml}}}
\ No newline at end of file
diff --git a/modules/openapi-generator/src/main/resources/go-deprecated/partial_header.mustache b/modules/openapi-generator/src/main/resources/go-deprecated/partial_header.mustache
deleted file mode 100644
index f0a0906d6d2..00000000000
--- a/modules/openapi-generator/src/main/resources/go-deprecated/partial_header.mustache
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- {{#appName}}
- * {{{.}}}
- *
- {{/appName}}
- {{#appDescription}}
- * {{{.}}}
- *
- {{/appDescription}}
- {{#version}}
- * API version: {{{.}}}
- {{/version}}
- {{#infoEmail}}
- * Contact: {{{.}}}
- {{/infoEmail}}
-{{^withGoCodegenComment}}
- * Generated by: OpenAPI Generator (https://openapi-generator.tech)
-{{/withGoCodegenComment}}
- */
-{{#withGoCodegenComment}}
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-{{/withGoCodegenComment}}
diff --git a/modules/openapi-generator/src/main/resources/go-deprecated/response.mustache b/modules/openapi-generator/src/main/resources/go-deprecated/response.mustache
deleted file mode 100644
index 4691e8f428f..00000000000
--- a/modules/openapi-generator/src/main/resources/go-deprecated/response.mustache
+++ /dev/null
@@ -1,38 +0,0 @@
-{{>partial_header}}
-package {{packageName}}
-
-import (
- "net/http"
-)
-
-// APIResponse stores the API response returned by the server.
-type APIResponse struct {
- *http.Response `json:"-"`
- Message string `json:"message,omitempty"`
- // Operation is the name of the OpenAPI operation.
- Operation string `json:"operation,omitempty"`
- // RequestURL is the request URL. This value is always available, even if the
- // embedded *http.Response is nil.
- RequestURL string `json:"url,omitempty"`
- // Method is the HTTP method used for the request. This value is always
- // available, even if the embedded *http.Response is nil.
- Method string `json:"method,omitempty"`
- // Payload holds the contents of the response body (which may be nil or empty).
- // This is provided here as the raw response.Body() reader will have already
- // been drained.
- Payload []byte `json:"-"`
-}
-
-// NewAPIResponse returns a new APIResponse object.
-func NewAPIResponse(r *http.Response) *APIResponse {
-
- response := &APIResponse{Response: r}
- return response
-}
-
-// NewAPIResponseWithError returns a new APIResponse object with the provided error message.
-func NewAPIResponseWithError(errorMessage string) *APIResponse {
-
- response := &APIResponse{Message: errorMessage}
- return response
-}