From 6ce9cd237a46ac2032bfe548757b5558d54f027b Mon Sep 17 00:00:00 2001 From: Tim Pavlik <tpavlik@splunk.com> Date: Sun, 24 Mar 2019 11:30:52 -0700 Subject: [PATCH 1/8] Add inline enum definitions to go models. Prefix enum names to help avoid namespace collisions within a go package. --- .../codegen/languages/AbstractGoCodegen.java | 13 +++++++++ .../src/main/resources/go/model.mustache | 27 +++++++++++++++++-- 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java index 3698b6d000e..6f696f006a2 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java @@ -487,6 +487,19 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege addedOSImport = true; } } + if (model.isEnum) { + // For enum values prepend with var name to help prevent namespace collision + String enumPrefix = toEnumVarName(model.name, model.dataType) + "_"; + List<Map<String, Object>> enumVars = (List<Map<String, Object>>) model.allowableValues.get("enumVars"); + if (enumVars != null) { + for (Map<String, Object> enumVar : enumVars) { + String enumName = (String) enumVar.get("name"); + if (enumName != null) { + enumVar.put("name", enumPrefix + enumName); + } + } + } + } } } // recursively add import for mapping one type to multiple imports diff --git a/modules/openapi-generator/src/main/resources/go/model.mustache b/modules/openapi-generator/src/main/resources/go/model.mustache index 1a9f8d1c5aa..a65cbcb1120 100644 --- a/modules/openapi-generator/src/main/resources/go/model.mustache +++ b/modules/openapi-generator/src/main/resources/go/model.mustache @@ -35,9 +35,32 @@ type {{classname}} struct { {{#description}} // {{{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}}` + {{name}} {{#isNullable}}*{{/isNullable}}{{#isEnum}}{{classname}}{{nameInCamelCase}}{{/isEnum}}{{^isEnum}}{{{datatype}}}{{/isEnum}} `json:"{{baseName}}{{^required}},omitempty{{/required}}"{{#withXml}} xml:"{{baseName}}{{#isXmlAttribute}},attr{{/isXmlAttribute}}"{{/withXml}}{{#vendorExtensions.x-go-custom-tag}} {{{.}}}{{/vendorExtensions.x-go-custom-tag}}` {{/vars}} } {{/isEnum}} +{{! Define any inline enums from above}} +{{#hasEnums}} +{{#vars}} +{{#isEnum}} + +{{#description}} +// {{{name}}} : {{{description}}} +{{/description}} +type {{classname}}{{nameInCamelCase}} {{^format}}{{datatype}}{{/format}}{{#format}}{{{format}}}{{/format}} + +// List of {{classname}}{{nameInCamelCase}} +const ( + {{#allowableValues}} + {{#enumVars}} + {{^-first}} + {{/-first}} + {{datatypeWithEnum}}_{{name}} {{classname}}{{nameInCamelCase}} = "{{{value}}}" + {{/enumVars}} + {{/allowableValues}} +) +{{/isEnum}} +{{/vars}} +{{/hasEnums}} {{/model}} -{{/models}} +{{/models}} \ No newline at end of file -- GitLab From 0648a1b11d290882695ed3f947cb184284180f37 Mon Sep 17 00:00:00 2001 From: Tim Pavlik <tpavlik@splunk.com> Date: Sun, 24 Mar 2019 12:26:43 -0700 Subject: [PATCH 2/8] Move enum prepend logic to post processing enum function --- .../codegen/languages/AbstractGoCodegen.java | 39 ++++++++++++------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java index 6f696f006a2..0c31604a19f 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java @@ -487,19 +487,6 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege addedOSImport = true; } } - if (model.isEnum) { - // For enum values prepend with var name to help prevent namespace collision - String enumPrefix = toEnumVarName(model.name, model.dataType) + "_"; - List<Map<String, Object>> enumVars = (List<Map<String, Object>>) model.allowableValues.get("enumVars"); - if (enumVars != null) { - for (Map<String, Object> enumVar : enumVars) { - String enumName = (String) enumVar.get("name"); - if (enumName != null) { - enumVar.put("name", enumPrefix + enumName); - } - } - } - } } } // recursively add import for mapping one type to multiple imports @@ -520,6 +507,32 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege return postProcessModelsEnum(objs); } + @Override + public Map<String, Object> postProcessModelsEnum(Map<String, Object> objs) { + objs = super.postProcessModelsEnum(objs); + + List<Object> models = (List<Object>) objs.get("models"); + for (Object _mo : models) { + Map<String, Object> mo = (Map<String, Object>) _mo; + CodegenModel cm = (CodegenModel) mo.get("model"); + + if (Boolean.TRUE.equals(cm.isEnum) && cm.allowableValues != null) { + // For enum values prepend names with enum type name to help prevent namespace collision + String enumPrefix = toEnumVarName(cm.name, cm.dataType) + "_"; + if (cm.allowableValues.get("enumVars") != null) { + List<Map<String, Object>> enumVars = (List<Map<String, Object>>) cm.allowableValues.get("enumVars"); + for (Map<String, Object> enumVar : enumVars) { + String enumName = (String) enumVar.get("name"); + if (enumName != null) { + enumVar.put("name", enumPrefix + enumName); + } + } + } + } + } + return objs; + } + @Override public Map<String, Object> postProcessSupportingFileData(Map<String, Object> objs) { generateYAMLSpecFile(objs); -- GitLab From 55033dde2f0c3a09069ce8f84f53fddfebfe2e72 Mon Sep 17 00:00:00 2001 From: Tim Pavlik <tpavlik@splunk.com> Date: Sun, 24 Mar 2019 13:48:02 -0700 Subject: [PATCH 3/8] Fix inline enum prefixes for special cases. --- .../codegen/languages/AbstractGoCodegen.java | 32 ++++++++++---- .../src/main/resources/go/model.mustache | 2 +- .../go/go-petstore/model_enum_arrays.go | 20 ++++++++- .../go/go-petstore/model_enum_class.go | 6 +-- .../go/go-petstore/model_enum_test_.go | 42 +++++++++++++++++-- .../go/go-petstore/model_map_test_.go | 10 ++++- .../petstore/go/go-petstore/model_order.go | 12 +++++- .../go/go-petstore/model_outer_enum.go | 6 +-- .../petstore/go/go-petstore/model_pet.go | 12 +++++- 9 files changed, 117 insertions(+), 25 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java index 0c31604a19f..bd15ee1fac0 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java @@ -516,16 +516,17 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege Map<String, Object> mo = (Map<String, Object>) _mo; CodegenModel cm = (CodegenModel) mo.get("model"); + // For enum var names prepend with this model's name to help prevent namespace collision if (Boolean.TRUE.equals(cm.isEnum) && cm.allowableValues != null) { - // For enum values prepend names with enum type name to help prevent namespace collision - String enumPrefix = toEnumVarName(cm.name, cm.dataType) + "_"; - if (cm.allowableValues.get("enumVars") != null) { - List<Map<String, Object>> enumVars = (List<Map<String, Object>>) cm.allowableValues.get("enumVars"); - for (Map<String, Object> enumVar : enumVars) { - String enumName = (String) enumVar.get("name"); - if (enumName != null) { - enumVar.put("name", enumPrefix + enumName); - } + String prefix = toEnumVarName(cm.name, cm.dataType) + "_"; + cm.allowableValues = prefixAllowableValues(cm.allowableValues, prefix); + } + // Also prepend var names used for defining inline enums with inline enum's name + if (Boolean.TRUE.equals(cm.hasEnums)) { + for (CodegenProperty param : cm.vars) { + if (param.isEnum && param.allowableValues != null) { + String prefix = toEnumVarName(param.name, param.dataType) + "_"; + param.allowableValues = prefixAllowableValues(param.allowableValues, prefix); } } } @@ -533,6 +534,19 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege return objs; } + public Map<String, Object> prefixAllowableValues(Map<String, Object> allowableValues, String prefix) { + if (allowableValues.get("enumVars") != null) { + List<Map<String, Object>> enumVars = (List<Map<String, Object>>) allowableValues.get("enumVars"); + for (Map<String, Object> enumVar : enumVars) { + String enumName = (String) enumVar.get("name"); + if (enumName != null) { + enumVar.put("name", prefix + enumName); + } + } + } + return allowableValues; + } + @Override public Map<String, Object> postProcessSupportingFileData(Map<String, Object> objs) { generateYAMLSpecFile(objs); diff --git a/modules/openapi-generator/src/main/resources/go/model.mustache b/modules/openapi-generator/src/main/resources/go/model.mustache index a65cbcb1120..bb836edc591 100644 --- a/modules/openapi-generator/src/main/resources/go/model.mustache +++ b/modules/openapi-generator/src/main/resources/go/model.mustache @@ -55,7 +55,7 @@ const ( {{#enumVars}} {{^-first}} {{/-first}} - {{datatypeWithEnum}}_{{name}} {{classname}}{{nameInCamelCase}} = "{{{value}}}" + {{name}} {{classname}}{{nameInCamelCase}} = "{{{value}}}" {{/enumVars}} {{/allowableValues}} ) diff --git a/samples/client/petstore/go/go-petstore/model_enum_arrays.go b/samples/client/petstore/go/go-petstore/model_enum_arrays.go index ab4dce92ebb..641b4cc1644 100644 --- a/samples/client/petstore/go/go-petstore/model_enum_arrays.go +++ b/samples/client/petstore/go/go-petstore/model_enum_arrays.go @@ -10,6 +10,22 @@ package petstore type EnumArrays struct { - JustSymbol string `json:"just_symbol,omitempty"` - ArrayEnum []string `json:"array_enum,omitempty"` + JustSymbol EnumArraysJustSymbol `json:"just_symbol,omitempty"` + ArrayEnum EnumArraysArrayEnum `json:"array_enum,omitempty"` } + +type EnumArraysJustSymbol string + +// List of EnumArraysJustSymbol +const ( + JUST_SYMBOL_GREATER_THAN_OR_EQUAL_TO EnumArraysJustSymbol = ">=" + JUST_SYMBOL_DOLLAR EnumArraysJustSymbol = "$" +) + +type EnumArraysArrayEnum []string + +// List of EnumArraysArrayEnum +const ( + ARRAY_ENUM_FISH EnumArraysArrayEnum = "fish" + ARRAY_ENUM_CRAB EnumArraysArrayEnum = "crab" +) diff --git a/samples/client/petstore/go/go-petstore/model_enum_class.go b/samples/client/petstore/go/go-petstore/model_enum_class.go index 534ce432881..e94b84dfca6 100644 --- a/samples/client/petstore/go/go-petstore/model_enum_class.go +++ b/samples/client/petstore/go/go-petstore/model_enum_class.go @@ -12,7 +12,7 @@ type EnumClass string // List of EnumClass const ( - ABC EnumClass = "_abc" - EFG EnumClass = "-efg" - XYZ EnumClass = "(xyz)" + ENUM_CLASS_ABC EnumClass = "_abc" + ENUM_CLASS_EFG EnumClass = "-efg" + ENUM_CLASS_XYZ EnumClass = "(xyz)" ) \ No newline at end of file diff --git a/samples/client/petstore/go/go-petstore/model_enum_test_.go b/samples/client/petstore/go/go-petstore/model_enum_test_.go index f85f31501a0..b02e4c70fa8 100644 --- a/samples/client/petstore/go/go-petstore/model_enum_test_.go +++ b/samples/client/petstore/go/go-petstore/model_enum_test_.go @@ -10,9 +10,43 @@ package petstore type EnumTest struct { - EnumString string `json:"enum_string,omitempty"` - EnumStringRequired string `json:"enum_string_required"` - EnumInteger int32 `json:"enum_integer,omitempty"` - EnumNumber float64 `json:"enum_number,omitempty"` + EnumString EnumTestEnumString `json:"enum_string,omitempty"` + EnumStringRequired EnumTestEnumStringRequired `json:"enum_string_required"` + EnumInteger EnumTestEnumInteger `json:"enum_integer,omitempty"` + EnumNumber EnumTestEnumNumber `json:"enum_number,omitempty"` OuterEnum OuterEnum `json:"outerEnum,omitempty"` } + +type EnumTestEnumString string + +// List of EnumTestEnumString +const ( + ENUM_STRING_UPPER EnumTestEnumString = "UPPER" + ENUM_STRING_LOWER EnumTestEnumString = "lower" + ENUM_STRING_EMPTY EnumTestEnumString = "" +) + +type EnumTestEnumStringRequired string + +// List of EnumTestEnumStringRequired +const ( + ENUM_STRING_REQUIRED_UPPER EnumTestEnumStringRequired = "UPPER" + ENUM_STRING_REQUIRED_LOWER EnumTestEnumStringRequired = "lower" + ENUM_STRING_REQUIRED_EMPTY EnumTestEnumStringRequired = "" +) + +type EnumTestEnumInteger int32 + +// List of EnumTestEnumInteger +const ( + ENUM_INTEGER__1 EnumTestEnumInteger = "1" + ENUM_INTEGER__1 EnumTestEnumInteger = "-1" +) + +type EnumTestEnumNumber float64 + +// List of EnumTestEnumNumber +const ( + ENUM_NUMBER__1_1 EnumTestEnumNumber = "1.1" + ENUM_NUMBER__1_2 EnumTestEnumNumber = "-1.2" +) diff --git a/samples/client/petstore/go/go-petstore/model_map_test_.go b/samples/client/petstore/go/go-petstore/model_map_test_.go index 830e760fe31..2241db381f2 100644 --- a/samples/client/petstore/go/go-petstore/model_map_test_.go +++ b/samples/client/petstore/go/go-petstore/model_map_test_.go @@ -11,7 +11,15 @@ package petstore type MapTest struct { MapMapOfString map[string]map[string]string `json:"map_map_of_string,omitempty"` - MapOfEnumString map[string]string `json:"map_of_enum_string,omitempty"` + MapOfEnumString MapTestMapOfEnumString `json:"map_of_enum_string,omitempty"` DirectMap map[string]bool `json:"direct_map,omitempty"` IndirectMap map[string]bool `json:"indirect_map,omitempty"` } + +type MapTestMapOfEnumString map[string]string + +// List of MapTestMapOfEnumString +const ( + MAP_OF_ENUM_STRING_UPPER MapTestMapOfEnumString = "UPPER" + MAP_OF_ENUM_STRING_LOWER MapTestMapOfEnumString = "lower" +) diff --git a/samples/client/petstore/go/go-petstore/model_order.go b/samples/client/petstore/go/go-petstore/model_order.go index c81d67ae0fa..b49a4a9b826 100644 --- a/samples/client/petstore/go/go-petstore/model_order.go +++ b/samples/client/petstore/go/go-petstore/model_order.go @@ -18,6 +18,16 @@ type Order struct { Quantity int32 `json:"quantity,omitempty"` ShipDate time.Time `json:"shipDate,omitempty"` // Order Status - Status string `json:"status,omitempty"` + Status OrderStatus `json:"status,omitempty"` Complete bool `json:"complete,omitempty"` } + +// Status : Order Status +type OrderStatus string + +// List of OrderStatus +const ( + STATUS_PLACED OrderStatus = "placed" + STATUS_APPROVED OrderStatus = "approved" + STATUS_DELIVERED OrderStatus = "delivered" +) diff --git a/samples/client/petstore/go/go-petstore/model_outer_enum.go b/samples/client/petstore/go/go-petstore/model_outer_enum.go index 903d31e8269..3ec2a3131c3 100644 --- a/samples/client/petstore/go/go-petstore/model_outer_enum.go +++ b/samples/client/petstore/go/go-petstore/model_outer_enum.go @@ -12,7 +12,7 @@ type OuterEnum string // List of OuterEnum const ( - PLACED OuterEnum = "placed" - APPROVED OuterEnum = "approved" - DELIVERED OuterEnum = "delivered" + OUTER_ENUM_PLACED OuterEnum = "placed" + OUTER_ENUM_APPROVED OuterEnum = "approved" + OUTER_ENUM_DELIVERED OuterEnum = "delivered" ) \ No newline at end of file diff --git a/samples/client/petstore/go/go-petstore/model_pet.go b/samples/client/petstore/go/go-petstore/model_pet.go index 4930dbb92e8..827069390e1 100644 --- a/samples/client/petstore/go/go-petstore/model_pet.go +++ b/samples/client/petstore/go/go-petstore/model_pet.go @@ -16,5 +16,15 @@ type Pet struct { PhotoUrls []string `json:"photoUrls"` Tags []Tag `json:"tags,omitempty"` // pet status in the store - Status string `json:"status,omitempty"` + Status PetStatus `json:"status,omitempty"` } + +// Status : pet status in the store +type PetStatus string + +// List of PetStatus +const ( + STATUS_AVAILABLE PetStatus = "available" + STATUS_PENDING PetStatus = "pending" + STATUS_SOLD PetStatus = "sold" +) -- GitLab From 734e8bf7b5cceaaa37daa9bd68335534c1bda56e Mon Sep 17 00:00:00 2001 From: Tim Pavlik <tpavlik@splunk.com> Date: Sun, 24 Mar 2019 14:03:05 -0700 Subject: [PATCH 4/8] Fix boolean comparison. --- .../org/openapitools/codegen/languages/AbstractGoCodegen.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java index bd15ee1fac0..c0d7dd0355b 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java @@ -524,7 +524,7 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege // Also prepend var names used for defining inline enums with inline enum's name if (Boolean.TRUE.equals(cm.hasEnums)) { for (CodegenProperty param : cm.vars) { - if (param.isEnum && param.allowableValues != null) { + if (Boolean.TRUE.equals(param.isEnum) && param.allowableValues != null) { String prefix = toEnumVarName(param.name, param.dataType) + "_"; param.allowableValues = prefixAllowableValues(param.allowableValues, prefix); } -- GitLab From e3a45702889785cd6d8a3c0230b78917d5cc9f3e Mon Sep 17 00:00:00 2001 From: Tim Pavlik <tpavlik@splunk.com> Date: Sun, 24 Mar 2019 17:17:37 -0700 Subject: [PATCH 5/8] Fix enum value representations for int, double, and floats to remove quotes. --- .../org/openapitools/codegen/languages/AbstractGoCodegen.java | 2 +- .../openapi-generator/src/main/resources/go/model.mustache | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java index c0d7dd0355b..79eb716b67d 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java @@ -585,7 +585,7 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege if ("int".equals(datatype) || "double".equals(datatype) || "float".equals(datatype)) { return value; } else { - return escapeText(value); + return "\"" + escapeText(value) + "\""; } } diff --git a/modules/openapi-generator/src/main/resources/go/model.mustache b/modules/openapi-generator/src/main/resources/go/model.mustache index bb836edc591..660eec6943c 100644 --- a/modules/openapi-generator/src/main/resources/go/model.mustache +++ b/modules/openapi-generator/src/main/resources/go/model.mustache @@ -23,7 +23,7 @@ const ( {{#enumVars}} {{^-first}} {{/-first}} - {{name}} {{{classname}}} = "{{{value}}}" + {{name}} {{{classname}}} = {{{value}}} {{/enumVars}} {{/allowableValues}} ){{/isEnum}}{{^isEnum}}{{#description}} @@ -55,7 +55,7 @@ const ( {{#enumVars}} {{^-first}} {{/-first}} - {{name}} {{classname}}{{nameInCamelCase}} = "{{{value}}}" + {{name}} {{classname}}{{nameInCamelCase}} = {{{value}}} {{/enumVars}} {{/allowableValues}} ) -- GitLab From a9d9463d9bae20f81804b9a618019840742234f3 Mon Sep 17 00:00:00 2001 From: Tim Pavlik <tpavlik@splunk.com> Date: Mon, 25 Mar 2019 08:11:42 -0700 Subject: [PATCH 6/8] Use quoted enum values for strings only. --- .../codegen/languages/AbstractGoCodegen.java | 6 ++-- .../resources/go-gin-server/model.mustache | 29 +++++++++++++++++-- .../main/resources/go-server/model.mustache | 29 +++++++++++++++++-- .../go/go-petstore/model_enum_test_.go | 8 ++--- .../petstore/go-api-server/go/model_order.go | 12 +++++++- .../petstore/go-api-server/go/model_pet.go | 12 +++++++- .../go-gin-api-server/go/model_order.go | 12 +++++++- .../go-gin-api-server/go/model_pet.go | 12 +++++++- 8 files changed, 103 insertions(+), 17 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java index 79eb716b67d..7f014503c90 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java @@ -582,10 +582,10 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege @Override public String toEnumValue(String value, String datatype) { - if ("int".equals(datatype) || "double".equals(datatype) || "float".equals(datatype)) { - return value; - } else { + if ("string".equals(datatype)) { return "\"" + escapeText(value) + "\""; + } else { + return value; } } diff --git a/modules/openapi-generator/src/main/resources/go-gin-server/model.mustache b/modules/openapi-generator/src/main/resources/go-gin-server/model.mustache index 38408680231..b1ba6e1c846 100644 --- a/modules/openapi-generator/src/main/resources/go-gin-server/model.mustache +++ b/modules/openapi-generator/src/main/resources/go-gin-server/model.mustache @@ -11,7 +11,7 @@ type {{{name}}} {{^format}}{{dataType}}{{/format}}{{#format}}{{{format}}}{{/form const ( {{#allowableValues}} {{#enumVars}} - {{name}} {{{classname}}} = "{{{value}}}" + {{name}} {{{classname}}} = {{{value}}} {{/enumVars}} {{/allowableValues}} ){{/isEnum}}{{^isEnum}}{{#description}} @@ -19,6 +19,29 @@ const ( type {{classname}} struct { {{#vars}}{{#description}} // {{{description}}}{{/description}} - {{name}} {{#isNullable}}*{{/isNullable}}{{{dataType}}} `json:"{{baseName}}{{^required}},omitempty{{/required}}"{{#vendorExtensions.x-go-custom-tag}} {{{.}}}{{/vendorExtensions.x-go-custom-tag}}` + {{name}} {{#isNullable}}*{{/isNullable}}{{#isEnum}}{{classname}}{{nameInCamelCase}}{{/isEnum}}{{^isEnum}}{{{datatype}}}{{/isEnum}} `json:"{{baseName}}{{^required}},omitempty{{/required}}"{{#vendorExtensions.x-go-custom-tag}} {{{.}}}{{/vendorExtensions.x-go-custom-tag}}` {{/vars}} -}{{/isEnum}}{{/model}}{{/models}} +}{{/isEnum}} +{{! Define any inline enums from above}} +{{#hasEnums}} +{{#vars}} +{{#isEnum}} + +{{#description}} +// {{{name}}} : {{{description}}} +{{/description}} +type {{classname}}{{nameInCamelCase}} {{^format}}{{datatype}}{{/format}}{{#format}}{{{format}}}{{/format}} + +// List of {{classname}}{{nameInCamelCase}} +const ( + {{#allowableValues}} + {{#enumVars}} + {{^-first}} + {{/-first}} + {{name}} {{classname}}{{nameInCamelCase}} = {{{value}}} + {{/enumVars}} + {{/allowableValues}} +) +{{/isEnum}} +{{/vars}} +{{/hasEnums}}{{/model}}{{/models}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/go-server/model.mustache b/modules/openapi-generator/src/main/resources/go-server/model.mustache index 38408680231..b1ba6e1c846 100644 --- a/modules/openapi-generator/src/main/resources/go-server/model.mustache +++ b/modules/openapi-generator/src/main/resources/go-server/model.mustache @@ -11,7 +11,7 @@ type {{{name}}} {{^format}}{{dataType}}{{/format}}{{#format}}{{{format}}}{{/form const ( {{#allowableValues}} {{#enumVars}} - {{name}} {{{classname}}} = "{{{value}}}" + {{name}} {{{classname}}} = {{{value}}} {{/enumVars}} {{/allowableValues}} ){{/isEnum}}{{^isEnum}}{{#description}} @@ -19,6 +19,29 @@ const ( type {{classname}} struct { {{#vars}}{{#description}} // {{{description}}}{{/description}} - {{name}} {{#isNullable}}*{{/isNullable}}{{{dataType}}} `json:"{{baseName}}{{^required}},omitempty{{/required}}"{{#vendorExtensions.x-go-custom-tag}} {{{.}}}{{/vendorExtensions.x-go-custom-tag}}` + {{name}} {{#isNullable}}*{{/isNullable}}{{#isEnum}}{{classname}}{{nameInCamelCase}}{{/isEnum}}{{^isEnum}}{{{datatype}}}{{/isEnum}} `json:"{{baseName}}{{^required}},omitempty{{/required}}"{{#vendorExtensions.x-go-custom-tag}} {{{.}}}{{/vendorExtensions.x-go-custom-tag}}` {{/vars}} -}{{/isEnum}}{{/model}}{{/models}} +}{{/isEnum}} +{{! Define any inline enums from above}} +{{#hasEnums}} +{{#vars}} +{{#isEnum}} + +{{#description}} +// {{{name}}} : {{{description}}} +{{/description}} +type {{classname}}{{nameInCamelCase}} {{^format}}{{datatype}}{{/format}}{{#format}}{{{format}}}{{/format}} + +// List of {{classname}}{{nameInCamelCase}} +const ( + {{#allowableValues}} + {{#enumVars}} + {{^-first}} + {{/-first}} + {{name}} {{classname}}{{nameInCamelCase}} = {{{value}}} + {{/enumVars}} + {{/allowableValues}} +) +{{/isEnum}} +{{/vars}} +{{/hasEnums}}{{/model}}{{/models}} \ No newline at end of file diff --git a/samples/client/petstore/go/go-petstore/model_enum_test_.go b/samples/client/petstore/go/go-petstore/model_enum_test_.go index b02e4c70fa8..e03644aba7b 100644 --- a/samples/client/petstore/go/go-petstore/model_enum_test_.go +++ b/samples/client/petstore/go/go-petstore/model_enum_test_.go @@ -39,14 +39,14 @@ type EnumTestEnumInteger int32 // List of EnumTestEnumInteger const ( - ENUM_INTEGER__1 EnumTestEnumInteger = "1" - ENUM_INTEGER__1 EnumTestEnumInteger = "-1" + ENUM_INTEGER__1 EnumTestEnumInteger = 1 + ENUM_INTEGER__1 EnumTestEnumInteger = -1 ) type EnumTestEnumNumber float64 // List of EnumTestEnumNumber const ( - ENUM_NUMBER__1_1 EnumTestEnumNumber = "1.1" - ENUM_NUMBER__1_2 EnumTestEnumNumber = "-1.2" + ENUM_NUMBER__1_1 EnumTestEnumNumber = 1.1 + ENUM_NUMBER__1_2 EnumTestEnumNumber = -1.2 ) diff --git a/samples/server/petstore/go-api-server/go/model_order.go b/samples/server/petstore/go-api-server/go/model_order.go index a9d8dbb7957..437a58f53e8 100644 --- a/samples/server/petstore/go-api-server/go/model_order.go +++ b/samples/server/petstore/go-api-server/go/model_order.go @@ -25,7 +25,17 @@ type Order struct { ShipDate time.Time `json:"shipDate,omitempty"` // Order Status - Status string `json:"status,omitempty"` + Status OrderStatus `json:"status,omitempty"` Complete bool `json:"complete,omitempty"` } + +// Status : Order Status +type OrderStatus string + +// List of OrderStatus +const ( + STATUS_PLACED OrderStatus = "placed" + STATUS_APPROVED OrderStatus = "approved" + STATUS_DELIVERED OrderStatus = "delivered" +) diff --git a/samples/server/petstore/go-api-server/go/model_pet.go b/samples/server/petstore/go-api-server/go/model_pet.go index fb206487ab0..0d3b9f40381 100644 --- a/samples/server/petstore/go-api-server/go/model_pet.go +++ b/samples/server/petstore/go-api-server/go/model_pet.go @@ -23,5 +23,15 @@ type Pet struct { Tags []Tag `json:"tags,omitempty"` // pet status in the store - Status string `json:"status,omitempty"` + Status PetStatus `json:"status,omitempty"` } + +// Status : pet status in the store +type PetStatus string + +// List of PetStatus +const ( + STATUS_AVAILABLE PetStatus = "available" + STATUS_PENDING PetStatus = "pending" + STATUS_SOLD PetStatus = "sold" +) diff --git a/samples/server/petstore/go-gin-api-server/go/model_order.go b/samples/server/petstore/go-gin-api-server/go/model_order.go index a9d8dbb7957..437a58f53e8 100644 --- a/samples/server/petstore/go-gin-api-server/go/model_order.go +++ b/samples/server/petstore/go-gin-api-server/go/model_order.go @@ -25,7 +25,17 @@ type Order struct { ShipDate time.Time `json:"shipDate,omitempty"` // Order Status - Status string `json:"status,omitempty"` + Status OrderStatus `json:"status,omitempty"` Complete bool `json:"complete,omitempty"` } + +// Status : Order Status +type OrderStatus string + +// List of OrderStatus +const ( + STATUS_PLACED OrderStatus = "placed" + STATUS_APPROVED OrderStatus = "approved" + STATUS_DELIVERED OrderStatus = "delivered" +) diff --git a/samples/server/petstore/go-gin-api-server/go/model_pet.go b/samples/server/petstore/go-gin-api-server/go/model_pet.go index fb206487ab0..0d3b9f40381 100644 --- a/samples/server/petstore/go-gin-api-server/go/model_pet.go +++ b/samples/server/petstore/go-gin-api-server/go/model_pet.go @@ -23,5 +23,15 @@ type Pet struct { Tags []Tag `json:"tags,omitempty"` // pet status in the store - Status string `json:"status,omitempty"` + Status PetStatus `json:"status,omitempty"` } + +// Status : pet status in the store +type PetStatus string + +// List of PetStatus +const ( + STATUS_AVAILABLE PetStatus = "available" + STATUS_PENDING PetStatus = "pending" + STATUS_SOLD PetStatus = "sold" +) -- GitLab From e6ee4c420a26c6b9fdce6bbc79c18cf8b8905e64 Mon Sep 17 00:00:00 2001 From: Tim Pavlik <tpavlik@splunk.com> Date: Mon, 25 Mar 2019 12:08:24 -0700 Subject: [PATCH 7/8] Fix enum name escaping for numbers. --- .../openapitools/codegen/languages/AbstractGoCodegen.java | 8 ++++---- .../client/petstore/go/go-petstore/model_enum_test_.go | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java index 7f014503c90..176ba7f2568 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java @@ -518,14 +518,14 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege // For enum var names prepend with this model's name to help prevent namespace collision if (Boolean.TRUE.equals(cm.isEnum) && cm.allowableValues != null) { - String prefix = toEnumVarName(cm.name, cm.dataType) + "_"; + String prefix = toEnumVarName(cm.name, "string") + "_"; cm.allowableValues = prefixAllowableValues(cm.allowableValues, prefix); } // Also prepend var names used for defining inline enums with inline enum's name if (Boolean.TRUE.equals(cm.hasEnums)) { for (CodegenProperty param : cm.vars) { if (Boolean.TRUE.equals(param.isEnum) && param.allowableValues != null) { - String prefix = toEnumVarName(param.name, param.dataType) + "_"; + String prefix = toEnumVarName(param.name, "string") + "_"; param.allowableValues = prefixAllowableValues(param.allowableValues, prefix); } } @@ -601,7 +601,7 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege } // number - if ("int".equals(datatype) || "double".equals(datatype) || "float".equals(datatype)) { + if (datatype.startsWith("float") || datatype.startsWith("int") || datatype.startsWith("uint")) { String varName = name; varName = varName.replaceAll("-", "MINUS_"); varName = varName.replaceAll("\\+", "PLUS_"); @@ -622,7 +622,7 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege if (isReservedWord(enumName)) { // reserved word return escapeReservedWord(enumName); } else if (enumName.matches("\\d.*")) { // starts with a number - return "_" + enumName; + return "NUM_" + enumName; } else { return enumName; } diff --git a/samples/client/petstore/go/go-petstore/model_enum_test_.go b/samples/client/petstore/go/go-petstore/model_enum_test_.go index e03644aba7b..3787858c444 100644 --- a/samples/client/petstore/go/go-petstore/model_enum_test_.go +++ b/samples/client/petstore/go/go-petstore/model_enum_test_.go @@ -39,14 +39,14 @@ type EnumTestEnumInteger int32 // List of EnumTestEnumInteger const ( - ENUM_INTEGER__1 EnumTestEnumInteger = 1 - ENUM_INTEGER__1 EnumTestEnumInteger = -1 + ENUM_INTEGER_1 EnumTestEnumInteger = 1 + ENUM_INTEGER_MINUS_1 EnumTestEnumInteger = -1 ) type EnumTestEnumNumber float64 // List of EnumTestEnumNumber const ( - ENUM_NUMBER__1_1 EnumTestEnumNumber = 1.1 - ENUM_NUMBER__1_2 EnumTestEnumNumber = -1.2 + ENUM_NUMBER_1_DOT_1 EnumTestEnumNumber = 1.1 + ENUM_NUMBER_MINUS_1_DOT_2 EnumTestEnumNumber = -1.2 ) -- GitLab From b66dbbf090d6a6292de2b8b2bf712f3064ae1856 Mon Sep 17 00:00:00 2001 From: Tim Pavlik <tpavlik@splunk.com> Date: Mon, 25 Mar 2019 20:46:38 -0700 Subject: [PATCH 8/8] Fix maps and arrays of enums. --- .../codegen/languages/AbstractGoCodegen.java | 13 ++++++++++++- .../main/resources/go-gin-server/model.mustache | 14 ++++++++------ .../src/main/resources/go-server/model.mustache | 14 ++++++++------ .../src/main/resources/go/model.mustache | 10 +++++----- .../petstore/go/go-petstore/docs/EnumArrays.md | 4 ++-- .../petstore/go/go-petstore/docs/EnumTest.md | 8 ++++---- .../client/petstore/go/go-petstore/docs/MapTest.md | 2 +- .../client/petstore/go/go-petstore/docs/Order.md | 2 +- samples/client/petstore/go/go-petstore/docs/Pet.md | 2 +- .../petstore/go/go-petstore/model_enum_arrays.go | 4 ++-- .../petstore/go/go-petstore/model_map_test_.go | 4 ++-- .../client/petstore/go/go-petstore/model_order.go | 2 +- .../client/petstore/go/go-petstore/model_pet.go | 2 +- .../petstore/go-api-server/go/model_order.go | 2 +- .../server/petstore/go-api-server/go/model_pet.go | 2 +- .../petstore/go-gin-api-server/go/model_order.go | 2 +- .../petstore/go-gin-api-server/go/model_pet.go | 2 +- 17 files changed, 52 insertions(+), 37 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java index 176ba7f2568..d57d4ed8ac4 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java @@ -510,7 +510,7 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege @Override public Map<String, Object> postProcessModelsEnum(Map<String, Object> objs) { objs = super.postProcessModelsEnum(objs); - + List<Object> models = (List<Object>) objs.get("models"); for (Object _mo : models) { Map<String, Object> mo = (Map<String, Object>) _mo; @@ -527,6 +527,17 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege if (Boolean.TRUE.equals(param.isEnum) && param.allowableValues != null) { String prefix = toEnumVarName(param.name, "string") + "_"; param.allowableValues = prefixAllowableValues(param.allowableValues, prefix); + // Form datatype for this field: use ClassNameFieldName syntax + param.dataType = cm.classname + param.nameInCamelCase; + if (Boolean.TRUE.equals(param.isListContainer)) { + // Special case: slice of enums, use []ClassNameFieldName + param.datatypeWithEnum = "[]" + param.dataType; + } else if (Boolean.TRUE.equals(param.isMapContainer)) { + // Special case: map of enums, use map[string]ClassNameFieldName + param.datatypeWithEnum = "map[string]" + param.dataType; + } else { + param.datatypeWithEnum = param.dataType; + } } } } diff --git a/modules/openapi-generator/src/main/resources/go-gin-server/model.mustache b/modules/openapi-generator/src/main/resources/go-gin-server/model.mustache index b1ba6e1c846..eb9dccb63c6 100644 --- a/modules/openapi-generator/src/main/resources/go-gin-server/model.mustache +++ b/modules/openapi-generator/src/main/resources/go-gin-server/model.mustache @@ -19,7 +19,7 @@ const ( type {{classname}} struct { {{#vars}}{{#description}} // {{{description}}}{{/description}} - {{name}} {{#isNullable}}*{{/isNullable}}{{#isEnum}}{{classname}}{{nameInCamelCase}}{{/isEnum}}{{^isEnum}}{{{datatype}}}{{/isEnum}} `json:"{{baseName}}{{^required}},omitempty{{/required}}"{{#vendorExtensions.x-go-custom-tag}} {{{.}}}{{/vendorExtensions.x-go-custom-tag}}` + {{name}} {{#isNullable}}*{{/isNullable}}{{#isEnum}}{{datatypeWithEnum}}{{/isEnum}}{{^isEnum}}{{{datatype}}}{{/isEnum}} `json:"{{baseName}}{{^required}},omitempty{{/required}}"{{#vendorExtensions.x-go-custom-tag}} {{{.}}}{{/vendorExtensions.x-go-custom-tag}}` {{/vars}} }{{/isEnum}} {{! Define any inline enums from above}} @@ -28,20 +28,22 @@ type {{classname}} struct { {{#isEnum}} {{#description}} -// {{{name}}} : {{{description}}} +// {{datatype}} : {{{description}}} {{/description}} -type {{classname}}{{nameInCamelCase}} {{^format}}{{datatype}}{{/format}}{{#format}}{{{format}}}{{/format}} +type {{datatype}} {{#items}}{{baseType}}{{/items}}{{^items}}{{baseType}}{{/items}} -// List of {{classname}}{{nameInCamelCase}} +// List of {{datatype}} const ( {{#allowableValues}} {{#enumVars}} {{^-first}} {{/-first}} - {{name}} {{classname}}{{nameInCamelCase}} = {{{value}}} + {{name}} {{datatype}} = {{{value}}} {{/enumVars}} {{/allowableValues}} ) {{/isEnum}} {{/vars}} -{{/hasEnums}}{{/model}}{{/models}} \ No newline at end of file +{{/hasEnums}} +{{/model}} +{{/models}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/go-server/model.mustache b/modules/openapi-generator/src/main/resources/go-server/model.mustache index b1ba6e1c846..eb9dccb63c6 100644 --- a/modules/openapi-generator/src/main/resources/go-server/model.mustache +++ b/modules/openapi-generator/src/main/resources/go-server/model.mustache @@ -19,7 +19,7 @@ const ( type {{classname}} struct { {{#vars}}{{#description}} // {{{description}}}{{/description}} - {{name}} {{#isNullable}}*{{/isNullable}}{{#isEnum}}{{classname}}{{nameInCamelCase}}{{/isEnum}}{{^isEnum}}{{{datatype}}}{{/isEnum}} `json:"{{baseName}}{{^required}},omitempty{{/required}}"{{#vendorExtensions.x-go-custom-tag}} {{{.}}}{{/vendorExtensions.x-go-custom-tag}}` + {{name}} {{#isNullable}}*{{/isNullable}}{{#isEnum}}{{datatypeWithEnum}}{{/isEnum}}{{^isEnum}}{{{datatype}}}{{/isEnum}} `json:"{{baseName}}{{^required}},omitempty{{/required}}"{{#vendorExtensions.x-go-custom-tag}} {{{.}}}{{/vendorExtensions.x-go-custom-tag}}` {{/vars}} }{{/isEnum}} {{! Define any inline enums from above}} @@ -28,20 +28,22 @@ type {{classname}} struct { {{#isEnum}} {{#description}} -// {{{name}}} : {{{description}}} +// {{datatype}} : {{{description}}} {{/description}} -type {{classname}}{{nameInCamelCase}} {{^format}}{{datatype}}{{/format}}{{#format}}{{{format}}}{{/format}} +type {{datatype}} {{#items}}{{baseType}}{{/items}}{{^items}}{{baseType}}{{/items}} -// List of {{classname}}{{nameInCamelCase}} +// List of {{datatype}} const ( {{#allowableValues}} {{#enumVars}} {{^-first}} {{/-first}} - {{name}} {{classname}}{{nameInCamelCase}} = {{{value}}} + {{name}} {{datatype}} = {{{value}}} {{/enumVars}} {{/allowableValues}} ) {{/isEnum}} {{/vars}} -{{/hasEnums}}{{/model}}{{/models}} \ No newline at end of file +{{/hasEnums}} +{{/model}} +{{/models}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/go/model.mustache b/modules/openapi-generator/src/main/resources/go/model.mustache index 660eec6943c..e6714b17c40 100644 --- a/modules/openapi-generator/src/main/resources/go/model.mustache +++ b/modules/openapi-generator/src/main/resources/go/model.mustache @@ -35,7 +35,7 @@ type {{classname}} struct { {{#description}} // {{{description}}} {{/description}} - {{name}} {{#isNullable}}*{{/isNullable}}{{#isEnum}}{{classname}}{{nameInCamelCase}}{{/isEnum}}{{^isEnum}}{{{datatype}}}{{/isEnum}} `json:"{{baseName}}{{^required}},omitempty{{/required}}"{{#withXml}} xml:"{{baseName}}{{#isXmlAttribute}},attr{{/isXmlAttribute}}"{{/withXml}}{{#vendorExtensions.x-go-custom-tag}} {{{.}}}{{/vendorExtensions.x-go-custom-tag}}` + {{name}} {{#isNullable}}*{{/isNullable}}{{#isEnum}}{{datatypeWithEnum}}{{/isEnum}}{{^isEnum}}{{{datatype}}}{{/isEnum}} `json:"{{baseName}}{{^required}},omitempty{{/required}}"{{#withXml}} xml:"{{baseName}}{{#isXmlAttribute}},attr{{/isXmlAttribute}}"{{/withXml}}{{#vendorExtensions.x-go-custom-tag}} {{{.}}}{{/vendorExtensions.x-go-custom-tag}}` {{/vars}} } {{/isEnum}} @@ -45,17 +45,17 @@ type {{classname}} struct { {{#isEnum}} {{#description}} -// {{{name}}} : {{{description}}} +// {{datatype}} : {{{description}}} {{/description}} -type {{classname}}{{nameInCamelCase}} {{^format}}{{datatype}}{{/format}}{{#format}}{{{format}}}{{/format}} +type {{datatype}} {{#items}}{{baseType}}{{/items}}{{^items}}{{baseType}}{{/items}} -// List of {{classname}}{{nameInCamelCase}} +// List of {{datatype}} const ( {{#allowableValues}} {{#enumVars}} {{^-first}} {{/-first}} - {{name}} {{classname}}{{nameInCamelCase}} = {{{value}}} + {{name}} {{datatype}} = {{{value}}} {{/enumVars}} {{/allowableValues}} ) diff --git a/samples/client/petstore/go/go-petstore/docs/EnumArrays.md b/samples/client/petstore/go/go-petstore/docs/EnumArrays.md index 9eca8b29032..6145b34e6ae 100644 --- a/samples/client/petstore/go/go-petstore/docs/EnumArrays.md +++ b/samples/client/petstore/go/go-petstore/docs/EnumArrays.md @@ -3,8 +3,8 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**JustSymbol** | **string** | | [optional] -**ArrayEnum** | **[]string** | | [optional] +**JustSymbol** | **EnumArraysJustSymbol** | | [optional] +**ArrayEnum** | **EnumArraysArrayEnum** | | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/samples/client/petstore/go/go-petstore/docs/EnumTest.md b/samples/client/petstore/go/go-petstore/docs/EnumTest.md index 85eab0e1d40..fc8e5dbb81f 100644 --- a/samples/client/petstore/go/go-petstore/docs/EnumTest.md +++ b/samples/client/petstore/go/go-petstore/docs/EnumTest.md @@ -3,10 +3,10 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**EnumString** | **string** | | [optional] -**EnumStringRequired** | **string** | | -**EnumInteger** | **int32** | | [optional] -**EnumNumber** | **float64** | | [optional] +**EnumString** | **EnumTestEnumString** | | [optional] +**EnumStringRequired** | **EnumTestEnumStringRequired** | | +**EnumInteger** | **EnumTestEnumInteger** | | [optional] +**EnumNumber** | **EnumTestEnumNumber** | | [optional] **OuterEnum** | [**OuterEnum**](OuterEnum.md) | | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/samples/client/petstore/go/go-petstore/docs/MapTest.md b/samples/client/petstore/go/go-petstore/docs/MapTest.md index 49381ec4b85..d7f04b0c823 100644 --- a/samples/client/petstore/go/go-petstore/docs/MapTest.md +++ b/samples/client/petstore/go/go-petstore/docs/MapTest.md @@ -4,7 +4,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **MapMapOfString** | [**map[string]map[string]string**](map.md) | | [optional] -**MapOfEnumString** | **map[string]string** | | [optional] +**MapOfEnumString** | **MapTestMapOfEnumString** | | [optional] **DirectMap** | **map[string]bool** | | [optional] **IndirectMap** | **map[string]bool** | | [optional] diff --git a/samples/client/petstore/go/go-petstore/docs/Order.md b/samples/client/petstore/go/go-petstore/docs/Order.md index befa9151a18..c872ed50484 100644 --- a/samples/client/petstore/go/go-petstore/docs/Order.md +++ b/samples/client/petstore/go/go-petstore/docs/Order.md @@ -7,7 +7,7 @@ Name | Type | Description | Notes **PetId** | **int64** | | [optional] **Quantity** | **int32** | | [optional] **ShipDate** | [**time.Time**](time.Time.md) | | [optional] -**Status** | **string** | Order Status | [optional] +**Status** | **OrderStatus** | Order Status | [optional] **Complete** | **bool** | | [optional] [default to false] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/samples/client/petstore/go/go-petstore/docs/Pet.md b/samples/client/petstore/go/go-petstore/docs/Pet.md index 049c82eb5a0..16bb4d6e9c5 100644 --- a/samples/client/petstore/go/go-petstore/docs/Pet.md +++ b/samples/client/petstore/go/go-petstore/docs/Pet.md @@ -8,7 +8,7 @@ Name | Type | Description | Notes **Name** | **string** | | **PhotoUrls** | **[]string** | | **Tags** | [**[]Tag**](Tag.md) | | [optional] -**Status** | **string** | pet status in the store | [optional] +**Status** | **PetStatus** | pet status in the store | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/samples/client/petstore/go/go-petstore/model_enum_arrays.go b/samples/client/petstore/go/go-petstore/model_enum_arrays.go index 641b4cc1644..833d10b68d4 100644 --- a/samples/client/petstore/go/go-petstore/model_enum_arrays.go +++ b/samples/client/petstore/go/go-petstore/model_enum_arrays.go @@ -11,7 +11,7 @@ package petstore type EnumArrays struct { JustSymbol EnumArraysJustSymbol `json:"just_symbol,omitempty"` - ArrayEnum EnumArraysArrayEnum `json:"array_enum,omitempty"` + ArrayEnum []EnumArraysArrayEnum `json:"array_enum,omitempty"` } type EnumArraysJustSymbol string @@ -22,7 +22,7 @@ const ( JUST_SYMBOL_DOLLAR EnumArraysJustSymbol = "$" ) -type EnumArraysArrayEnum []string +type EnumArraysArrayEnum string // List of EnumArraysArrayEnum const ( diff --git a/samples/client/petstore/go/go-petstore/model_map_test_.go b/samples/client/petstore/go/go-petstore/model_map_test_.go index 2241db381f2..8de771c11b1 100644 --- a/samples/client/petstore/go/go-petstore/model_map_test_.go +++ b/samples/client/petstore/go/go-petstore/model_map_test_.go @@ -11,12 +11,12 @@ package petstore type MapTest struct { MapMapOfString map[string]map[string]string `json:"map_map_of_string,omitempty"` - MapOfEnumString MapTestMapOfEnumString `json:"map_of_enum_string,omitempty"` + MapOfEnumString map[string]MapTestMapOfEnumString `json:"map_of_enum_string,omitempty"` DirectMap map[string]bool `json:"direct_map,omitempty"` IndirectMap map[string]bool `json:"indirect_map,omitempty"` } -type MapTestMapOfEnumString map[string]string +type MapTestMapOfEnumString string // List of MapTestMapOfEnumString const ( diff --git a/samples/client/petstore/go/go-petstore/model_order.go b/samples/client/petstore/go/go-petstore/model_order.go index b49a4a9b826..c343cf3b47e 100644 --- a/samples/client/petstore/go/go-petstore/model_order.go +++ b/samples/client/petstore/go/go-petstore/model_order.go @@ -22,7 +22,7 @@ type Order struct { Complete bool `json:"complete,omitempty"` } -// Status : Order Status +// OrderStatus : Order Status type OrderStatus string // List of OrderStatus diff --git a/samples/client/petstore/go/go-petstore/model_pet.go b/samples/client/petstore/go/go-petstore/model_pet.go index 827069390e1..16646391fc9 100644 --- a/samples/client/petstore/go/go-petstore/model_pet.go +++ b/samples/client/petstore/go/go-petstore/model_pet.go @@ -19,7 +19,7 @@ type Pet struct { Status PetStatus `json:"status,omitempty"` } -// Status : pet status in the store +// PetStatus : pet status in the store type PetStatus string // List of PetStatus diff --git a/samples/server/petstore/go-api-server/go/model_order.go b/samples/server/petstore/go-api-server/go/model_order.go index 437a58f53e8..ca056a34aae 100644 --- a/samples/server/petstore/go-api-server/go/model_order.go +++ b/samples/server/petstore/go-api-server/go/model_order.go @@ -30,7 +30,7 @@ type Order struct { Complete bool `json:"complete,omitempty"` } -// Status : Order Status +// OrderStatus : Order Status type OrderStatus string // List of OrderStatus diff --git a/samples/server/petstore/go-api-server/go/model_pet.go b/samples/server/petstore/go-api-server/go/model_pet.go index 0d3b9f40381..c2e6f6ac886 100644 --- a/samples/server/petstore/go-api-server/go/model_pet.go +++ b/samples/server/petstore/go-api-server/go/model_pet.go @@ -26,7 +26,7 @@ type Pet struct { Status PetStatus `json:"status,omitempty"` } -// Status : pet status in the store +// PetStatus : pet status in the store type PetStatus string // List of PetStatus diff --git a/samples/server/petstore/go-gin-api-server/go/model_order.go b/samples/server/petstore/go-gin-api-server/go/model_order.go index 437a58f53e8..ca056a34aae 100644 --- a/samples/server/petstore/go-gin-api-server/go/model_order.go +++ b/samples/server/petstore/go-gin-api-server/go/model_order.go @@ -30,7 +30,7 @@ type Order struct { Complete bool `json:"complete,omitempty"` } -// Status : Order Status +// OrderStatus : Order Status type OrderStatus string // List of OrderStatus diff --git a/samples/server/petstore/go-gin-api-server/go/model_pet.go b/samples/server/petstore/go-gin-api-server/go/model_pet.go index 0d3b9f40381..c2e6f6ac886 100644 --- a/samples/server/petstore/go-gin-api-server/go/model_pet.go +++ b/samples/server/petstore/go-gin-api-server/go/model_pet.go @@ -26,7 +26,7 @@ type Pet struct { Status PetStatus `json:"status,omitempty"` } -// Status : pet status in the store +// PetStatus : pet status in the store type PetStatus string // List of PetStatus -- GitLab