diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractTypeScriptClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractTypeScriptClientCodegen.java
index 69a5a6240a22..9f09d9c5cb14 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractTypeScriptClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractTypeScriptClientCodegen.java
@@ -17,39 +17,65 @@
package org.openapitools.codegen.languages;
-import io.swagger.v3.oas.models.OpenAPI;
-import io.swagger.v3.oas.models.media.Schema;
-import io.swagger.v3.oas.models.parameters.Parameter;
-import lombok.Getter;
-import lombok.Setter;
-import org.apache.commons.io.FilenameUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.checkerframework.checker.nullness.qual.Nullable;
-import org.openapitools.codegen.*;
-import org.openapitools.codegen.CodegenConstants.ENUM_PROPERTY_NAMING_TYPE;
-import org.openapitools.codegen.CodegenConstants.MODEL_PROPERTY_NAMING_TYPE;
-import org.openapitools.codegen.CodegenConstants.PARAM_NAMING_TYPE;
-import org.openapitools.codegen.meta.features.*;
-import org.openapitools.codegen.model.ModelMap;
-import org.openapitools.codegen.model.ModelsMap;
-import org.openapitools.codegen.utils.ModelUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import static org.openapitools.codegen.languages.AbstractTypeScriptClientCodegen.ParameterExpander.ParamStyle.form;
+import static org.openapitools.codegen.languages.AbstractTypeScriptClientCodegen.ParameterExpander.ParamStyle.simple;
+import static org.openapitools.codegen.utils.CamelizeOption.LOWERCASE_FIRST_LETTER;
+import static org.openapitools.codegen.utils.StringUtils.camelize;
+import static org.openapitools.codegen.utils.StringUtils.underscore;
import java.io.File;
import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Date;
+import java.util.EnumSet;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
import java.util.function.BiPredicate;
import java.util.function.Function;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import static org.openapitools.codegen.languages.AbstractTypeScriptClientCodegen.ParameterExpander.ParamStyle.form;
-import static org.openapitools.codegen.languages.AbstractTypeScriptClientCodegen.ParameterExpander.ParamStyle.simple;
-import static org.openapitools.codegen.utils.CamelizeOption.LOWERCASE_FIRST_LETTER;
-import static org.openapitools.codegen.utils.StringUtils.camelize;
-import static org.openapitools.codegen.utils.StringUtils.underscore;
+import org.apache.commons.io.FilenameUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.checkerframework.checker.nullness.qual.Nullable;
+import org.openapitools.codegen.CliOption;
+import org.openapitools.codegen.CodegenConfig;
+import org.openapitools.codegen.CodegenConstants;
+import org.openapitools.codegen.CodegenConstants.ENUM_PROPERTY_NAMING_TYPE;
+import org.openapitools.codegen.CodegenConstants.MODEL_PROPERTY_NAMING_TYPE;
+import org.openapitools.codegen.CodegenConstants.PARAM_NAMING_TYPE;
+import org.openapitools.codegen.CodegenModel;
+import org.openapitools.codegen.CodegenOperation;
+import org.openapitools.codegen.CodegenParameter;
+import org.openapitools.codegen.CodegenProperty;
+import org.openapitools.codegen.CodegenType;
+import org.openapitools.codegen.DefaultCodegen;
+import org.openapitools.codegen.GeneratorLanguage;
+import org.openapitools.codegen.meta.features.ClientModificationFeature;
+import org.openapitools.codegen.meta.features.DocumentationFeature;
+import org.openapitools.codegen.meta.features.GlobalFeature;
+import org.openapitools.codegen.meta.features.SchemaSupportFeature;
+import org.openapitools.codegen.meta.features.SecurityFeature;
+import org.openapitools.codegen.meta.features.WireFormatFeature;
+import org.openapitools.codegen.model.ModelMap;
+import org.openapitools.codegen.model.ModelsMap;
+import org.openapitools.codegen.utils.ModelUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.oas.models.media.Schema;
+import io.swagger.v3.oas.models.parameters.Parameter;
+import lombok.Getter;
+import lombok.Setter;
public abstract class AbstractTypeScriptClientCodegen extends DefaultCodegen implements CodegenConfig {
@@ -1023,6 +1049,85 @@ public abstract class AbstractTypeScriptClientCodegen extends DefaultCodegen imp
}
}
+ /**
+ * Override to fix the inner enum naming issue for maps/arrays of enums.
+ *
+ * The parent implementation uses toEnumName(baseItem) which produces a generic name
+ * like "InnerEnum" based on the inner item's name. This override first calculates
+ * the correct property.enumName, then uses it in the datatypeWithEnum replacement.
+ *
+ *
+ * @param property Codegen property
+ */
+ @Override
+ protected void updateDataTypeWithEnumForArray(CodegenProperty property) {
+ CodegenProperty baseItem = property.items;
+ while (baseItem != null && (Boolean.TRUE.equals(baseItem.isMap)
+ || Boolean.TRUE.equals(baseItem.isArray))) {
+ baseItem = baseItem.items;
+ }
+
+ if (baseItem != null) {
+ // First, set the property's enumName using the property itself (not the inner item)
+ // This ensures the correct enum name (e.g., "OptionsEnum") is used
+ // instead of the generic inner item name (e.g., "InnerEnum")
+ property.enumName = toEnumName(property);
+
+ // Now use property.enumName for datatypeWithEnum
+ property.datatypeWithEnum = property.datatypeWithEnum.replace(baseItem.baseType, property.enumName);
+
+ // set default value for variable with inner enum
+ if (property.defaultValue != null) {
+ property.defaultValue = property.defaultValue.replace(baseItem.baseType, property.enumName);
+ }
+
+ updateCodegenPropertyEnum(property);
+ }
+ }
+
+ /**
+ * Override to fix the inner enum naming issue for map properties.
+ *
+ * The parent implementation uses {@code toEnumName(baseItem)} which produces "InnerEnum"
+ * for properties whose inner item has a generic name like "inner". We instead
+ * calculate the enumName from the property itself first, then use it in the replacement.
+ *
+ *
+ * @param property Codegen property
+ */
+ @Override
+ protected void updateDataTypeWithEnumForMap(CodegenProperty property) {
+ CodegenProperty baseItem = property.items;
+ while (baseItem != null && (Boolean.TRUE.equals(baseItem.isMap)
+ || Boolean.TRUE.equals(baseItem.isArray))) {
+ baseItem = baseItem.items;
+ }
+
+ if (baseItem != null) {
+ // First, set the property's enumName using the property itself (not the inner item)
+ property.enumName = toEnumName(property);
+
+ // Replace only the LAST occurrence of baseType with enumName.
+ // In map types, the value type appears last (after the key type),
+ // so this approach is template-agnostic.
+ String datatypeWithEnum = property.datatypeWithEnum;
+ int lastIndex = datatypeWithEnum.lastIndexOf(baseItem.baseType);
+ if (lastIndex >= 0) {
+ property.datatypeWithEnum = datatypeWithEnum.substring(0, lastIndex)
+ + property.enumName
+ + datatypeWithEnum.substring(lastIndex + baseItem.baseType.length());
+ }
+ LOGGER.info("Updated datatypeWithEnum for map property '{}': {}", property.name, property.datatypeWithEnum);
+
+ // set default value for variable with inner enum
+ if (property.defaultValue != null) {
+ property.defaultValue = property.defaultValue.replace(baseItem.baseType, property.enumName);
+ }
+
+ updateCodegenPropertyEnum(property);
+ }
+ }
+
@Override
public ModelsMap postProcessModels(ModelsMap objs) {
// process enum in models
@@ -1030,15 +1135,18 @@ public abstract class AbstractTypeScriptClientCodegen extends DefaultCodegen imp
for (ModelMap mo : models) {
CodegenModel cm = mo.getModel();
cm.imports = new TreeSet<>(cm.imports);
+
// name enum with model name, e.g. StatusEnum => Pet.StatusEnum
+ // This applies to both direct enum properties (isEnum) and properties containing
+ // inner enums (isInnerEnum) like maps or arrays of enums.
for (CodegenProperty var : cm.vars) {
- if (Boolean.TRUE.equals(var.isEnum)) {
+ if (Boolean.TRUE.equals(var.isEnum) || Boolean.TRUE.equals(var.isInnerEnum)) {
var.datatypeWithEnum = var.datatypeWithEnum.replace(var.enumName, cm.classname + classEnumSeparator + var.enumName);
}
}
if (cm.parent != null) {
for (CodegenProperty var : cm.allVars) {
- if (Boolean.TRUE.equals(var.isEnum)) {
+ if (Boolean.TRUE.equals(var.isEnum) || Boolean.TRUE.equals(var.isInnerEnum)) {
var.datatypeWithEnum = var.datatypeWithEnum
.replace(var.enumName, cm.classname + classEnumSeparator + var.enumName);
}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptFetchClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptFetchClientCodegen.java
index af313325c949..482c286927c7 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptFetchClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptFetchClientCodegen.java
@@ -383,6 +383,7 @@ public class TypeScriptFetchClientCodegen extends AbstractTypeScriptClientCodege
@Override
public ModelsMap postProcessModels(ModelsMap objs) {
+ // postProcessModelsEnum applies inner enum fixes via the parent class override
List models = postProcessModelsEnum(objs).getModels();
// process enum and custom properties in models
@@ -800,7 +801,8 @@ public class TypeScriptFetchClientCodegen extends AbstractTypeScriptClientCodege
for (CodegenProperty cpVar : cm.allVars) {
ExtendedCodegenProperty var = (ExtendedCodegenProperty) cpVar;
- if (Boolean.TRUE.equals(var.isEnum)) {
+ // Handle both direct enum properties and inner enums (maps/arrays of enums)
+ if (Boolean.TRUE.equals(var.isEnum) || Boolean.TRUE.equals(var.isInnerEnum)) {
var.datatypeWithEnum = var.datatypeWithEnum
.replace(var.enumName, cm.classname + var.enumName);
}
@@ -845,7 +847,9 @@ public class TypeScriptFetchClientCodegen extends AbstractTypeScriptClientCodege
private boolean processCodegenProperty(ExtendedCodegenProperty var, String parentClassName, Object xEntityId) {
// name enum with model name, e.g. StatusEnum => PetStatusEnum
- if (Boolean.TRUE.equals(var.isEnum)) {
+ // This applies to both direct enum properties (isEnum) and properties containing
+ // inner enums (isInnerEnum) like maps or arrays of enums.
+ if (Boolean.TRUE.equals(var.isEnum) || Boolean.TRUE.equals(var.isInnerEnum)) {
// behaviour for enum names is specific for Typescript Fetch, not using namespaces
var.datatypeWithEnum = var.datatypeWithEnum.replace(var.enumName, parentClassName + var.enumName);
@@ -1525,11 +1529,11 @@ public class TypeScriptFetchClientCodegen extends AbstractTypeScriptClientCodege
public Set oneOfPrimitives = new HashSet<>();
@Getter @Setter
public CodegenDiscriminator.MappedModel selfReferencingDiscriminatorMapping;
-
+
public boolean isEntity; // Is a model containing an "id" property marked as isUniqueId
public String returnPassthrough;
public boolean hasReturnPassthroughVoid;
-
+
public boolean hasSelfReferencingDiscriminatorMapping(){
return selfReferencingDiscriminatorMapping != null;
}
diff --git a/modules/openapi-generator/src/main/resources/typescript-fetch/modelGenericInterfaces.mustache b/modules/openapi-generator/src/main/resources/typescript-fetch/modelGenericInterfaces.mustache
index 68e5747598a9..a1a115440821 100644
--- a/modules/openapi-generator/src/main/resources/typescript-fetch/modelGenericInterfaces.mustache
+++ b/modules/openapi-generator/src/main/resources/typescript-fetch/modelGenericInterfaces.mustache
@@ -10,13 +10,13 @@ export interface {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{
{{#vars}}
/**
* {{#lambda.indented_star_4}}{{{unescapedDescription}}}{{/lambda.indented_star_4}}
- * @type {{=<% %>=}}{<%&datatype%>}<%={{ }}=%>
+ * @type {{=<% %>=}}{<%&datatypeWithEnum%>}<%={{ }}=%>
* @memberof {{classname}}
{{#deprecated}}
* @deprecated
{{/deprecated}}
*/
- {{#isReadOnly}}readonly {{/isReadOnly}}{{name}}{{^required}}?{{/required}}: {{#isEnum}}{{{datatypeWithEnum}}}{{#isNullable}} | null{{/isNullable}}{{/isEnum}}{{^isEnum}}{{{datatype}}}{{#isNullable}} | null{{/isNullable}}{{/isEnum}};
+ {{#isReadOnly}}readonly {{/isReadOnly}}{{name}}{{^required}}?{{/required}}: {{{datatypeWithEnum}}}{{#isNullable}} | null{{/isNullable}};
{{/vars}}
}{{#hasEnums}}
diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/SharedTypeScriptTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/SharedTypeScriptTest.java
index cfc293b36621..283b3932b5bc 100644
--- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/SharedTypeScriptTest.java
+++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/typescript/SharedTypeScriptTest.java
@@ -1,5 +1,19 @@
package org.openapitools.codegen.typescript;
+import static org.openapitools.codegen.typescript.TypeScriptGroups.TYPESCRIPT;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Pattern;
+import java.util.stream.Stream;
+
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.openapitools.codegen.ClientOptInput;
@@ -12,18 +26,6 @@ import org.openapitools.codegen.languages.TypeScriptFetchClientCodegen;
import org.testng.Assert;
import org.testng.annotations.Test;
-import java.io.File;
-import java.io.IOException;
-import java.nio.charset.StandardCharsets;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import static org.openapitools.codegen.typescript.TypeScriptGroups.TYPESCRIPT;
-
@Test(groups = {TYPESCRIPT})
public class SharedTypeScriptTest {
@@ -67,6 +69,24 @@ public class SharedTypeScriptTest {
Assert.assertEquals(StringUtils.countMatches(apiFileContent, "import { GetCustomer200Response }"), 1);
}
+ private Path findModelDefinitionFile(Path root, Pattern modelPattern) throws IOException {
+ try (Stream paths = Files.walk(root)) {
+ return paths
+ .filter(Files::isRegularFile)
+ .filter(path -> path.toString().endsWith(".ts"))
+ .filter(path -> {
+ try {
+ String content = Files.readString(path);
+ return modelPattern.matcher(content).find();
+ } catch (IOException e) {
+ return false;
+ }
+ })
+ .findFirst()
+ .orElseThrow(() -> new IOException("Unable to locate model definition in " + root));
+ }
+ }
+
@Test
public void oldImportsStillPresentTest() throws IOException {
Path output = Files.createTempDirectory("test");
@@ -184,4 +204,110 @@ public class SharedTypeScriptTest {
TestUtils.assertFileNotContains(axiosApiFile.toPath(), "AxiosPromise");
}
+ @Test(description = "Issue #20877, #22747 - Maps/arrays of inner enums should use correct enum name")
+ public void givenMapWithArrayOfEnumsThenCorrectEnumNameIsUsed() throws Exception {
+ // This tests the fix for the issue where maps with array of enums generated
+ // "InnerEnum" type reference instead of the correct qualified enum name.
+ // The fix is in AbstractTypeScriptClientCodegen and applies to all TypeScript generators.
+ final String specPath = "src/test/resources/3_0/issue_19393_map_of_inner_enum.yaml";
+
+ List generators = Arrays.asList(
+ "typescript",
+ "typescript-angular",
+ "typescript-axios",
+ "typescript-aurelia",
+ "typescript-fetch",
+ "typescript-inversify",
+ "typescript-jquery",
+ "typescript-nestjs",
+ "typescript-nestjs-server",
+ "typescript-node",
+ "typescript-redux-query",
+ "typescript-rxjs"
+ );
+
+ // Patterns for EmployeeWithMultiMapOfEnum (map of array of enums)
+ Pattern multiMapModelDefinition = Pattern.compile("\\b(interface|type|class)\\s+EmployeeWithMultiMapOfEnum\\b");
+ Pattern multiMapNamespacedEnumRef = Pattern.compile("projectRoles[^\\n]*ProjectRolesEnum");
+ Pattern multiMapFlatEnumRef = Pattern.compile("projectRoles[^\\n]*EmployeeWithMultiMapOfEnumProjectRolesEnum");
+
+ // Patterns for EmployeeWithMapOfEnum (simple map of enums)
+ Pattern simpleMapModelDefinition = Pattern.compile("\\b(interface|type|class)\\s+EmployeeWithMapOfEnum\\b");
+ Pattern simpleMapNamespacedEnumRef = Pattern.compile("projectRole[^s][^\\n]*ProjectRoleEnum");
+ Pattern simpleMapFlatEnumRef = Pattern.compile("projectRole[^s][^\\n]*EmployeeWithMapOfEnumProjectRoleEnum");
+
+ for (String generatorName : generators) {
+ File output = Files.createTempDirectory("test").toFile().getCanonicalFile();
+ output.deleteOnExit();
+
+ CodegenConfigurator configurator = new CodegenConfigurator()
+ .setGeneratorName(generatorName)
+ .setInputSpec(specPath)
+ .setOutputDir(output.getAbsolutePath());
+
+ Generator generator = new DefaultGenerator();
+ generator.opts(configurator.toClientOptInput()).generate();
+
+ // Test EmployeeWithMultiMapOfEnum (map of array of enums)
+ Path multiMapModelFile = findModelDefinitionFile(output.toPath(), multiMapModelDefinition);
+ String multiMapFileContents = Files.readString(multiMapModelFile);
+
+ Assert.assertFalse(multiMapFileContents.contains("InnerEnum"),
+ generatorName + ": Should not contain 'InnerEnum' reference in " + multiMapModelFile);
+
+ boolean hasMultiMapEnumRef = multiMapNamespacedEnumRef.matcher(multiMapFileContents).find()
+ || multiMapFlatEnumRef.matcher(multiMapFileContents).find();
+ Assert.assertTrue(hasMultiMapEnumRef,
+ generatorName + ": Expected enum reference not found in " + multiMapModelFile);
+
+ // Test EmployeeWithMapOfEnum (simple map of enums)
+ Path simpleMapModelFile = findModelDefinitionFile(output.toPath(), simpleMapModelDefinition);
+ String simpleMapFileContents = Files.readString(simpleMapModelFile);
+
+ Assert.assertFalse(simpleMapFileContents.contains("InnerEnum"),
+ generatorName + ": Should not contain 'InnerEnum' reference in " + simpleMapModelFile);
+
+ boolean hasSimpleMapEnumRef = simpleMapNamespacedEnumRef.matcher(simpleMapFileContents).find()
+ || simpleMapFlatEnumRef.matcher(simpleMapFileContents).find();
+ Assert.assertTrue(hasSimpleMapEnumRef,
+ generatorName + ": Expected enum reference for simple map not found in " + simpleMapModelFile);
+ }
+ }
+
+ @Test(description = "Issue #22748 - Inner enums should not be double-prefixed when model has parent")
+ public void givenChildModelWithInheritedInnerEnumThenEnumNameIsNotDoublePrefixed() throws Exception {
+ // This tests that when a child model inherits from a parent that has an inner enum property,
+ // the enum name is not double-prefixed (e.g., Employee.Employee.ProjectRolesEnum instead of
+ // Employee.ProjectRolesEnum).
+ //
+ // We use typescript-angular because it sets supportsMultipleInheritance=true,
+ // which means cm.parent will be set for child models using allOf.
+ // typescript-fetch does NOT support inheritance, so cm.parent is always null there.
+ final String specPath = "src/test/resources/3_0/issue_22748_inherited_inner_enum.yaml";
+
+ File output = Files.createTempDirectory("test").toFile().getCanonicalFile();
+ output.deleteOnExit();
+
+ CodegenConfigurator configurator = new CodegenConfigurator()
+ .setGeneratorName("typescript-angular")
+ .setInputSpec(specPath)
+ .setOutputDir(output.getAbsolutePath());
+
+ Generator generator = new DefaultGenerator();
+ generator.opts(configurator.toClientOptInput()).generate();
+
+ // Find the Employee model file (the child model)
+ Pattern modelDefinition = Pattern.compile("\\b(interface|type|class)\\s+Employee\\b");
+ Path modelFile = findModelDefinitionFile(output.toPath(), modelDefinition);
+ String fileContents = Files.readString(modelFile);
+
+ // Should NOT contain double-prefixed enum name (typescript-angular uses "." separator)
+ Assert.assertFalse(fileContents.contains("Employee.Employee.ProjectRolesEnum"),
+ "typescript-angular: Should not contain double-prefixed 'Employee.Employee.ProjectRolesEnum' in " + modelFile);
+
+ // Should contain correctly prefixed enum name (single prefix with "." separator)
+ Assert.assertTrue(fileContents.contains("Employee.ProjectRolesEnum"),
+ "typescript-angular: Should contain 'Employee.ProjectRolesEnum' in " + modelFile);
+ }
+
}
diff --git a/modules/openapi-generator/src/test/resources/3_0/issue_22748_inherited_inner_enum.yaml b/modules/openapi-generator/src/test/resources/3_0/issue_22748_inherited_inner_enum.yaml
new file mode 100644
index 000000000000..016088e017c4
--- /dev/null
+++ b/modules/openapi-generator/src/test/resources/3_0/issue_22748_inherited_inner_enum.yaml
@@ -0,0 +1,53 @@
+openapi: 3.0.0
+info:
+ version: 1.0.0
+ title: OpenAPI Test API - Inherited Inner Enum
+ description: Test case for inner enum in child model with inheritance
+ license:
+ name: Apache-2.0
+ url: 'https://www.apache.org/licenses/LICENSE-2.0.html'
+paths:
+ /employees:
+ get:
+ operationId: getEmployees
+ responses:
+ '200':
+ description: List of employees
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Employee'
+components:
+ schemas:
+ # Parent model with discriminator - this is needed for cm.parent to be set
+ BaseEmployee:
+ type: object
+ discriminator:
+ propertyName: employeeType
+ properties:
+ employeeType:
+ type: string
+ name:
+ type: string
+ # Child model that has its OWN inner enum property (map of array of enums)
+ # This tests that when cm.parent != null, the child's own properties
+ # don't get double-prefixed (first in cm.vars loop, then in cm.allVars loop)
+ Employee:
+ allOf:
+ - $ref: '#/components/schemas/BaseEmployee'
+ - type: object
+ properties:
+ employeeId:
+ type: integer
+ projectRoles:
+ type: object
+ additionalProperties:
+ type: array
+ items:
+ type: string
+ enum:
+ - DEVELOPER
+ - TESTER
+ - OWNER
diff --git a/samples/client/petstore/typescript-axios/builds/test-petstore/api.ts b/samples/client/petstore/typescript-axios/builds/test-petstore/api.ts
index aefaae4e861c..ec42b08ab36f 100644
--- a/samples/client/petstore/typescript-axios/builds/test-petstore/api.ts
+++ b/samples/client/petstore/typescript-axios/builds/test-petstore/api.ts
@@ -329,7 +329,7 @@ export type MammalAnyofTypeEnum = typeof MammalAnyofTypeEnum[keyof typeof Mammal
export interface MapTest {
'map_map_of_string'?: { [key: string]: { [key: string]: string; }; };
- 'map_of_enum_string'?: { [key: string]: string; };
+ 'map_of_enum_string'?: { [key: string]: MapTestMapOfEnumStringEnum; };
'direct_map'?: { [key: string]: boolean; };
'indirect_map'?: { [key: string]: boolean; };
}
diff --git a/samples/client/petstore/typescript-axios/builds/with-fake-endpoints-models-for-testing-with-http-signature/api.ts b/samples/client/petstore/typescript-axios/builds/with-fake-endpoints-models-for-testing-with-http-signature/api.ts
index 5e5e3763acec..5eed4da6f370 100644
--- a/samples/client/petstore/typescript-axios/builds/with-fake-endpoints-models-for-testing-with-http-signature/api.ts
+++ b/samples/client/petstore/typescript-axios/builds/with-fake-endpoints-models-for-testing-with-http-signature/api.ts
@@ -227,7 +227,7 @@ export type Mammal = { className: 'whale' } & Whale | { className: 'zebra' } & Z
export interface MapTest {
'map_map_of_string'?: { [key: string]: { [key: string]: string; }; };
- 'map_of_enum_string'?: { [key: string]: string; };
+ 'map_of_enum_string'?: { [key: string]: MapTestMapOfEnumStringEnum; };
'direct_map'?: { [key: string]: boolean; };
'indirect_map'?: { [key: string]: boolean; };
}
diff --git a/samples/client/petstore/typescript-fetch/builds/default-v3.0/models/EnumArrays.ts b/samples/client/petstore/typescript-fetch/builds/default-v3.0/models/EnumArrays.ts
index b30860b8e8bb..b56bf8dc1baa 100644
--- a/samples/client/petstore/typescript-fetch/builds/default-v3.0/models/EnumArrays.ts
+++ b/samples/client/petstore/typescript-fetch/builds/default-v3.0/models/EnumArrays.ts
@@ -21,13 +21,13 @@ import { mapValues } from '../runtime';
export interface EnumArrays {
/**
*
- * @type {string}
+ * @type {EnumArraysJustSymbolEnum}
* @memberof EnumArrays
*/
justSymbol?: EnumArraysJustSymbolEnum;
/**
*
- * @type {Array}
+ * @type {Array}
* @memberof EnumArrays
*/
arrayEnum?: Array;
diff --git a/samples/client/petstore/typescript-fetch/builds/default-v3.0/models/EnumTest.ts b/samples/client/petstore/typescript-fetch/builds/default-v3.0/models/EnumTest.ts
index 0097912a9561..a5eecc180343 100644
--- a/samples/client/petstore/typescript-fetch/builds/default-v3.0/models/EnumTest.ts
+++ b/samples/client/petstore/typescript-fetch/builds/default-v3.0/models/EnumTest.ts
@@ -50,25 +50,25 @@ import {
export interface EnumTest {
/**
*
- * @type {string}
+ * @type {EnumTestEnumStringEnum}
* @memberof EnumTest
*/
enumString?: EnumTestEnumStringEnum;
/**
*
- * @type {string}
+ * @type {EnumTestEnumStringRequiredEnum}
* @memberof EnumTest
*/
enumStringRequired: EnumTestEnumStringRequiredEnum;
/**
*
- * @type {number}
+ * @type {EnumTestEnumIntegerEnum}
* @memberof EnumTest
*/
enumInteger?: EnumTestEnumIntegerEnum;
/**
*
- * @type {number}
+ * @type {EnumTestEnumNumberEnum}
* @memberof EnumTest
*/
enumNumber?: EnumTestEnumNumberEnum;
diff --git a/samples/client/petstore/typescript-fetch/builds/default-v3.0/models/MapTest.ts b/samples/client/petstore/typescript-fetch/builds/default-v3.0/models/MapTest.ts
index 753c30a6cf93..c968578beb33 100644
--- a/samples/client/petstore/typescript-fetch/builds/default-v3.0/models/MapTest.ts
+++ b/samples/client/petstore/typescript-fetch/builds/default-v3.0/models/MapTest.ts
@@ -27,10 +27,10 @@ export interface MapTest {
mapMapOfString?: { [key: string]: { [key: string]: string; }; };
/**
*
- * @type {{ [key: string]: string; }}
+ * @type {{ [key: string]: MapTestMapOfEnumStringEnum; }}
* @memberof MapTest
*/
- mapOfEnumString?: { [key: string]: string; };
+ mapOfEnumString?: { [key: string]: MapTestMapOfEnumStringEnum; };
/**
*
* @type {{ [key: string]: boolean; }}
diff --git a/samples/client/petstore/typescript-fetch/builds/default-v3.0/models/Order.ts b/samples/client/petstore/typescript-fetch/builds/default-v3.0/models/Order.ts
index 9444d5346722..e4e905c98d1c 100644
--- a/samples/client/petstore/typescript-fetch/builds/default-v3.0/models/Order.ts
+++ b/samples/client/petstore/typescript-fetch/builds/default-v3.0/models/Order.ts
@@ -45,7 +45,7 @@ export interface Order {
shipDate?: Date;
/**
* Order Status
- * @type {string}
+ * @type {OrderStatusEnum}
* @memberof Order
*/
status?: OrderStatusEnum;
diff --git a/samples/client/petstore/typescript-fetch/builds/default-v3.0/models/ParentWithNullable.ts b/samples/client/petstore/typescript-fetch/builds/default-v3.0/models/ParentWithNullable.ts
index fc3b7e90825e..b642ba20f314 100644
--- a/samples/client/petstore/typescript-fetch/builds/default-v3.0/models/ParentWithNullable.ts
+++ b/samples/client/petstore/typescript-fetch/builds/default-v3.0/models/ParentWithNullable.ts
@@ -22,7 +22,7 @@ import { type ChildWithNullable, ChildWithNullableFromJSONTyped, ChildWithNullab
export interface ParentWithNullable {
/**
*
- * @type {string}
+ * @type {ParentWithNullableTypeEnum}
* @memberof ParentWithNullable
*/
type?: ParentWithNullableTypeEnum;
diff --git a/samples/client/petstore/typescript-fetch/builds/default-v3.0/models/Pet.ts b/samples/client/petstore/typescript-fetch/builds/default-v3.0/models/Pet.ts
index d45f8d2b64bc..e998ec0c4069 100644
--- a/samples/client/petstore/typescript-fetch/builds/default-v3.0/models/Pet.ts
+++ b/samples/client/petstore/typescript-fetch/builds/default-v3.0/models/Pet.ts
@@ -66,7 +66,7 @@ export interface Pet {
tags?: Array;
/**
* pet status in the store
- * @type {string}
+ * @type {PetStatusEnum}
* @memberof Pet
*/
status?: PetStatusEnum;
diff --git a/samples/client/petstore/typescript-fetch/builds/default/models/Order.ts b/samples/client/petstore/typescript-fetch/builds/default/models/Order.ts
index 42f520745eb0..7055ef2ef79a 100644
--- a/samples/client/petstore/typescript-fetch/builds/default/models/Order.ts
+++ b/samples/client/petstore/typescript-fetch/builds/default/models/Order.ts
@@ -45,7 +45,7 @@ export interface Order {
shipDate?: Date;
/**
* Order Status
- * @type {string}
+ * @type {OrderStatusEnum}
* @memberof Order
*/
status?: OrderStatusEnum;
diff --git a/samples/client/petstore/typescript-fetch/builds/default/models/Pet.ts b/samples/client/petstore/typescript-fetch/builds/default/models/Pet.ts
index 981d00a85076..5d9a7ccf0d2f 100644
--- a/samples/client/petstore/typescript-fetch/builds/default/models/Pet.ts
+++ b/samples/client/petstore/typescript-fetch/builds/default/models/Pet.ts
@@ -66,7 +66,7 @@ export interface Pet {
tags?: Array;
/**
* pet status in the store
- * @type {string}
+ * @type {PetStatusEnum}
* @memberof Pet
*/
status?: PetStatusEnum;
diff --git a/samples/client/petstore/typescript-fetch/builds/enum/models/FakeEnumRequestGetInline200Response.ts b/samples/client/petstore/typescript-fetch/builds/enum/models/FakeEnumRequestGetInline200Response.ts
index 23aca822ea66..c0bba4a7139f 100644
--- a/samples/client/petstore/typescript-fetch/builds/enum/models/FakeEnumRequestGetInline200Response.ts
+++ b/samples/client/petstore/typescript-fetch/builds/enum/models/FakeEnumRequestGetInline200Response.ts
@@ -21,25 +21,25 @@ import { mapValues } from '../runtime';
export interface FakeEnumRequestGetInline200Response {
/**
*
- * @type {string}
+ * @type {FakeEnumRequestGetInline200ResponseStringEnumEnum}
* @memberof FakeEnumRequestGetInline200Response
*/
stringEnum?: FakeEnumRequestGetInline200ResponseStringEnumEnum;
/**
*
- * @type {string}
+ * @type {FakeEnumRequestGetInline200ResponseNullableStringEnumEnum}
* @memberof FakeEnumRequestGetInline200Response
*/
nullableStringEnum?: FakeEnumRequestGetInline200ResponseNullableStringEnumEnum;
/**
*
- * @type {number}
+ * @type {FakeEnumRequestGetInline200ResponseNumberEnumEnum}
* @memberof FakeEnumRequestGetInline200Response
*/
numberEnum?: FakeEnumRequestGetInline200ResponseNumberEnumEnum;
/**
*
- * @type {number}
+ * @type {FakeEnumRequestGetInline200ResponseNullableNumberEnumEnum}
* @memberof FakeEnumRequestGetInline200Response
*/
nullableNumberEnum?: FakeEnumRequestGetInline200ResponseNullableNumberEnumEnum;
diff --git a/samples/client/petstore/typescript-fetch/builds/es6-target/src/models/Order.ts b/samples/client/petstore/typescript-fetch/builds/es6-target/src/models/Order.ts
index 42f520745eb0..7055ef2ef79a 100644
--- a/samples/client/petstore/typescript-fetch/builds/es6-target/src/models/Order.ts
+++ b/samples/client/petstore/typescript-fetch/builds/es6-target/src/models/Order.ts
@@ -45,7 +45,7 @@ export interface Order {
shipDate?: Date;
/**
* Order Status
- * @type {string}
+ * @type {OrderStatusEnum}
* @memberof Order
*/
status?: OrderStatusEnum;
diff --git a/samples/client/petstore/typescript-fetch/builds/es6-target/src/models/Pet.ts b/samples/client/petstore/typescript-fetch/builds/es6-target/src/models/Pet.ts
index 981d00a85076..5d9a7ccf0d2f 100644
--- a/samples/client/petstore/typescript-fetch/builds/es6-target/src/models/Pet.ts
+++ b/samples/client/petstore/typescript-fetch/builds/es6-target/src/models/Pet.ts
@@ -66,7 +66,7 @@ export interface Pet {
tags?: Array;
/**
* pet status in the store
- * @type {string}
+ * @type {PetStatusEnum}
* @memberof Pet
*/
status?: PetStatusEnum;
diff --git a/samples/client/petstore/typescript-fetch/builds/multiple-parameters/models/Order.ts b/samples/client/petstore/typescript-fetch/builds/multiple-parameters/models/Order.ts
index 42f520745eb0..7055ef2ef79a 100644
--- a/samples/client/petstore/typescript-fetch/builds/multiple-parameters/models/Order.ts
+++ b/samples/client/petstore/typescript-fetch/builds/multiple-parameters/models/Order.ts
@@ -45,7 +45,7 @@ export interface Order {
shipDate?: Date;
/**
* Order Status
- * @type {string}
+ * @type {OrderStatusEnum}
* @memberof Order
*/
status?: OrderStatusEnum;
diff --git a/samples/client/petstore/typescript-fetch/builds/multiple-parameters/models/Pet.ts b/samples/client/petstore/typescript-fetch/builds/multiple-parameters/models/Pet.ts
index 981d00a85076..5d9a7ccf0d2f 100644
--- a/samples/client/petstore/typescript-fetch/builds/multiple-parameters/models/Pet.ts
+++ b/samples/client/petstore/typescript-fetch/builds/multiple-parameters/models/Pet.ts
@@ -66,7 +66,7 @@ export interface Pet {
tags?: Array;
/**
* pet status in the store
- * @type {string}
+ * @type {PetStatusEnum}
* @memberof Pet
*/
status?: PetStatusEnum;
diff --git a/samples/client/petstore/typescript-fetch/builds/oneOf/models/OptionOne.ts b/samples/client/petstore/typescript-fetch/builds/oneOf/models/OptionOne.ts
index 3c0c832ab9ca..11203f329df9 100644
--- a/samples/client/petstore/typescript-fetch/builds/oneOf/models/OptionOne.ts
+++ b/samples/client/petstore/typescript-fetch/builds/oneOf/models/OptionOne.ts
@@ -21,7 +21,7 @@ import { mapValues } from '../runtime';
export interface OptionOne {
/**
*
- * @type {string}
+ * @type {OptionOneDiscriminatorFieldEnum}
* @memberof OptionOne
*/
discriminatorField: OptionOneDiscriminatorFieldEnum;
diff --git a/samples/client/petstore/typescript-fetch/builds/oneOf/models/OptionTwo.ts b/samples/client/petstore/typescript-fetch/builds/oneOf/models/OptionTwo.ts
index a6cafacf2ada..67fb9241746f 100644
--- a/samples/client/petstore/typescript-fetch/builds/oneOf/models/OptionTwo.ts
+++ b/samples/client/petstore/typescript-fetch/builds/oneOf/models/OptionTwo.ts
@@ -21,7 +21,7 @@ import { mapValues } from '../runtime';
export interface OptionTwo {
/**
*
- * @type {string}
+ * @type {OptionTwoDiscriminatorFieldEnum}
* @memberof OptionTwo
*/
discriminatorField: OptionTwoDiscriminatorFieldEnum;
diff --git a/samples/client/petstore/typescript-fetch/builds/prefix-parameter-interfaces/src/models/Order.ts b/samples/client/petstore/typescript-fetch/builds/prefix-parameter-interfaces/src/models/Order.ts
index 42f520745eb0..7055ef2ef79a 100644
--- a/samples/client/petstore/typescript-fetch/builds/prefix-parameter-interfaces/src/models/Order.ts
+++ b/samples/client/petstore/typescript-fetch/builds/prefix-parameter-interfaces/src/models/Order.ts
@@ -45,7 +45,7 @@ export interface Order {
shipDate?: Date;
/**
* Order Status
- * @type {string}
+ * @type {OrderStatusEnum}
* @memberof Order
*/
status?: OrderStatusEnum;
diff --git a/samples/client/petstore/typescript-fetch/builds/prefix-parameter-interfaces/src/models/Pet.ts b/samples/client/petstore/typescript-fetch/builds/prefix-parameter-interfaces/src/models/Pet.ts
index 981d00a85076..5d9a7ccf0d2f 100644
--- a/samples/client/petstore/typescript-fetch/builds/prefix-parameter-interfaces/src/models/Pet.ts
+++ b/samples/client/petstore/typescript-fetch/builds/prefix-parameter-interfaces/src/models/Pet.ts
@@ -66,7 +66,7 @@ export interface Pet {
tags?: Array;
/**
* pet status in the store
- * @type {string}
+ * @type {PetStatusEnum}
* @memberof Pet
*/
status?: PetStatusEnum;
diff --git a/samples/client/petstore/typescript-fetch/builds/sagas-and-records/src/models/Order.ts b/samples/client/petstore/typescript-fetch/builds/sagas-and-records/src/models/Order.ts
index 42f520745eb0..7055ef2ef79a 100644
--- a/samples/client/petstore/typescript-fetch/builds/sagas-and-records/src/models/Order.ts
+++ b/samples/client/petstore/typescript-fetch/builds/sagas-and-records/src/models/Order.ts
@@ -45,7 +45,7 @@ export interface Order {
shipDate?: Date;
/**
* Order Status
- * @type {string}
+ * @type {OrderStatusEnum}
* @memberof Order
*/
status?: OrderStatusEnum;
diff --git a/samples/client/petstore/typescript-fetch/builds/sagas-and-records/src/models/Pet.ts b/samples/client/petstore/typescript-fetch/builds/sagas-and-records/src/models/Pet.ts
index bdc19f7dd1df..b3b2336edc4a 100644
--- a/samples/client/petstore/typescript-fetch/builds/sagas-and-records/src/models/Pet.ts
+++ b/samples/client/petstore/typescript-fetch/builds/sagas-and-records/src/models/Pet.ts
@@ -164,7 +164,7 @@ export interface Pet {
optionalTags?: Array;
/**
* pet status in the store
- * @type {string}
+ * @type {PetStatusEnum}
* @memberof Pet
*/
status: PetStatusEnum;
diff --git a/samples/client/petstore/typescript-fetch/builds/sagas-and-records/src/models/ResponseMeta.ts b/samples/client/petstore/typescript-fetch/builds/sagas-and-records/src/models/ResponseMeta.ts
index 97b93cb70d1e..80a3a03ce3f4 100644
--- a/samples/client/petstore/typescript-fetch/builds/sagas-and-records/src/models/ResponseMeta.ts
+++ b/samples/client/petstore/typescript-fetch/builds/sagas-and-records/src/models/ResponseMeta.ts
@@ -29,7 +29,7 @@ import {
export interface ResponseMeta {
/**
* Code returned by the function
- * @type {string}
+ * @type {ResponseMetaCodeEnum}
* @memberof ResponseMeta
*/
code: ResponseMetaCodeEnum;
diff --git a/samples/client/petstore/typescript-fetch/builds/snakecase-discriminator/models/EnumArrays.ts b/samples/client/petstore/typescript-fetch/builds/snakecase-discriminator/models/EnumArrays.ts
index b30860b8e8bb..b56bf8dc1baa 100644
--- a/samples/client/petstore/typescript-fetch/builds/snakecase-discriminator/models/EnumArrays.ts
+++ b/samples/client/petstore/typescript-fetch/builds/snakecase-discriminator/models/EnumArrays.ts
@@ -21,13 +21,13 @@ import { mapValues } from '../runtime';
export interface EnumArrays {
/**
*
- * @type {string}
+ * @type {EnumArraysJustSymbolEnum}
* @memberof EnumArrays
*/
justSymbol?: EnumArraysJustSymbolEnum;
/**
*
- * @type {Array}
+ * @type {Array}
* @memberof EnumArrays
*/
arrayEnum?: Array;
diff --git a/samples/client/petstore/typescript-fetch/builds/snakecase-discriminator/models/EnumTest.ts b/samples/client/petstore/typescript-fetch/builds/snakecase-discriminator/models/EnumTest.ts
index 0097912a9561..a5eecc180343 100644
--- a/samples/client/petstore/typescript-fetch/builds/snakecase-discriminator/models/EnumTest.ts
+++ b/samples/client/petstore/typescript-fetch/builds/snakecase-discriminator/models/EnumTest.ts
@@ -50,25 +50,25 @@ import {
export interface EnumTest {
/**
*
- * @type {string}
+ * @type {EnumTestEnumStringEnum}
* @memberof EnumTest
*/
enumString?: EnumTestEnumStringEnum;
/**
*
- * @type {string}
+ * @type {EnumTestEnumStringRequiredEnum}
* @memberof EnumTest
*/
enumStringRequired: EnumTestEnumStringRequiredEnum;
/**
*
- * @type {number}
+ * @type {EnumTestEnumIntegerEnum}
* @memberof EnumTest
*/
enumInteger?: EnumTestEnumIntegerEnum;
/**
*
- * @type {number}
+ * @type {EnumTestEnumNumberEnum}
* @memberof EnumTest
*/
enumNumber?: EnumTestEnumNumberEnum;
diff --git a/samples/client/petstore/typescript-fetch/builds/snakecase-discriminator/models/MapTest.ts b/samples/client/petstore/typescript-fetch/builds/snakecase-discriminator/models/MapTest.ts
index 753c30a6cf93..c968578beb33 100644
--- a/samples/client/petstore/typescript-fetch/builds/snakecase-discriminator/models/MapTest.ts
+++ b/samples/client/petstore/typescript-fetch/builds/snakecase-discriminator/models/MapTest.ts
@@ -27,10 +27,10 @@ export interface MapTest {
mapMapOfString?: { [key: string]: { [key: string]: string; }; };
/**
*
- * @type {{ [key: string]: string; }}
+ * @type {{ [key: string]: MapTestMapOfEnumStringEnum; }}
* @memberof MapTest
*/
- mapOfEnumString?: { [key: string]: string; };
+ mapOfEnumString?: { [key: string]: MapTestMapOfEnumStringEnum; };
/**
*
* @type {{ [key: string]: boolean; }}
diff --git a/samples/client/petstore/typescript-fetch/builds/snakecase-discriminator/models/Order.ts b/samples/client/petstore/typescript-fetch/builds/snakecase-discriminator/models/Order.ts
index 9444d5346722..e4e905c98d1c 100644
--- a/samples/client/petstore/typescript-fetch/builds/snakecase-discriminator/models/Order.ts
+++ b/samples/client/petstore/typescript-fetch/builds/snakecase-discriminator/models/Order.ts
@@ -45,7 +45,7 @@ export interface Order {
shipDate?: Date;
/**
* Order Status
- * @type {string}
+ * @type {OrderStatusEnum}
* @memberof Order
*/
status?: OrderStatusEnum;
diff --git a/samples/client/petstore/typescript-fetch/builds/snakecase-discriminator/models/Pet.ts b/samples/client/petstore/typescript-fetch/builds/snakecase-discriminator/models/Pet.ts
index d45f8d2b64bc..e998ec0c4069 100644
--- a/samples/client/petstore/typescript-fetch/builds/snakecase-discriminator/models/Pet.ts
+++ b/samples/client/petstore/typescript-fetch/builds/snakecase-discriminator/models/Pet.ts
@@ -66,7 +66,7 @@ export interface Pet {
tags?: Array;
/**
* pet status in the store
- * @type {string}
+ * @type {PetStatusEnum}
* @memberof Pet
*/
status?: PetStatusEnum;
diff --git a/samples/client/petstore/typescript-fetch/builds/validation-attributes/models/Order.ts b/samples/client/petstore/typescript-fetch/builds/validation-attributes/models/Order.ts
index 097b74d85c79..d0d6bb018ae9 100644
--- a/samples/client/petstore/typescript-fetch/builds/validation-attributes/models/Order.ts
+++ b/samples/client/petstore/typescript-fetch/builds/validation-attributes/models/Order.ts
@@ -46,7 +46,7 @@ export interface Order {
shipDate?: Date;
/**
* Order Status
- * @type {string}
+ * @type {OrderStatusEnum}
* @memberof Order
*/
status?: OrderStatusEnum;
diff --git a/samples/client/petstore/typescript-fetch/builds/validation-attributes/models/Pet.ts b/samples/client/petstore/typescript-fetch/builds/validation-attributes/models/Pet.ts
index 0af0ffab39d1..ec7832cc4856 100644
--- a/samples/client/petstore/typescript-fetch/builds/validation-attributes/models/Pet.ts
+++ b/samples/client/petstore/typescript-fetch/builds/validation-attributes/models/Pet.ts
@@ -66,7 +66,7 @@ export interface Pet {
tags?: Array;
/**
* pet status in the store
- * @type {string}
+ * @type {PetStatusEnum}
* @memberof Pet
* @deprecated
*/
diff --git a/samples/client/petstore/typescript-fetch/builds/with-interfaces/models/Order.ts b/samples/client/petstore/typescript-fetch/builds/with-interfaces/models/Order.ts
index 42f520745eb0..7055ef2ef79a 100644
--- a/samples/client/petstore/typescript-fetch/builds/with-interfaces/models/Order.ts
+++ b/samples/client/petstore/typescript-fetch/builds/with-interfaces/models/Order.ts
@@ -45,7 +45,7 @@ export interface Order {
shipDate?: Date;
/**
* Order Status
- * @type {string}
+ * @type {OrderStatusEnum}
* @memberof Order
*/
status?: OrderStatusEnum;
diff --git a/samples/client/petstore/typescript-fetch/builds/with-interfaces/models/Pet.ts b/samples/client/petstore/typescript-fetch/builds/with-interfaces/models/Pet.ts
index 981d00a85076..5d9a7ccf0d2f 100644
--- a/samples/client/petstore/typescript-fetch/builds/with-interfaces/models/Pet.ts
+++ b/samples/client/petstore/typescript-fetch/builds/with-interfaces/models/Pet.ts
@@ -66,7 +66,7 @@ export interface Pet {
tags?: Array;
/**
* pet status in the store
- * @type {string}
+ * @type {PetStatusEnum}
* @memberof Pet
*/
status?: PetStatusEnum;
diff --git a/samples/client/petstore/typescript-fetch/builds/with-npm-version/src/models/Order.ts b/samples/client/petstore/typescript-fetch/builds/with-npm-version/src/models/Order.ts
index 42f520745eb0..7055ef2ef79a 100644
--- a/samples/client/petstore/typescript-fetch/builds/with-npm-version/src/models/Order.ts
+++ b/samples/client/petstore/typescript-fetch/builds/with-npm-version/src/models/Order.ts
@@ -45,7 +45,7 @@ export interface Order {
shipDate?: Date;
/**
* Order Status
- * @type {string}
+ * @type {OrderStatusEnum}
* @memberof Order
*/
status?: OrderStatusEnum;
diff --git a/samples/client/petstore/typescript-fetch/builds/with-npm-version/src/models/Pet.ts b/samples/client/petstore/typescript-fetch/builds/with-npm-version/src/models/Pet.ts
index 981d00a85076..5d9a7ccf0d2f 100644
--- a/samples/client/petstore/typescript-fetch/builds/with-npm-version/src/models/Pet.ts
+++ b/samples/client/petstore/typescript-fetch/builds/with-npm-version/src/models/Pet.ts
@@ -66,7 +66,7 @@ export interface Pet {
tags?: Array;
/**
* pet status in the store
- * @type {string}
+ * @type {PetStatusEnum}
* @memberof Pet
*/
status?: PetStatusEnum;
diff --git a/samples/client/petstore/typescript-fetch/builds/with-string-enums/models/FakeEnumRequestGetInline200Response.ts b/samples/client/petstore/typescript-fetch/builds/with-string-enums/models/FakeEnumRequestGetInline200Response.ts
index aef815c9e004..e9ea2aa522ef 100644
--- a/samples/client/petstore/typescript-fetch/builds/with-string-enums/models/FakeEnumRequestGetInline200Response.ts
+++ b/samples/client/petstore/typescript-fetch/builds/with-string-enums/models/FakeEnumRequestGetInline200Response.ts
@@ -21,25 +21,25 @@ import { mapValues } from '../runtime';
export interface FakeEnumRequestGetInline200Response {
/**
*
- * @type {string}
+ * @type {FakeEnumRequestGetInline200ResponseStringEnumEnum}
* @memberof FakeEnumRequestGetInline200Response
*/
stringEnum?: FakeEnumRequestGetInline200ResponseStringEnumEnum;
/**
*
- * @type {string}
+ * @type {FakeEnumRequestGetInline200ResponseNullableStringEnumEnum}
* @memberof FakeEnumRequestGetInline200Response
*/
nullableStringEnum?: FakeEnumRequestGetInline200ResponseNullableStringEnumEnum;
/**
*
- * @type {number}
+ * @type {FakeEnumRequestGetInline200ResponseNumberEnumEnum}
* @memberof FakeEnumRequestGetInline200Response
*/
numberEnum?: FakeEnumRequestGetInline200ResponseNumberEnumEnum;
/**
*
- * @type {number}
+ * @type {FakeEnumRequestGetInline200ResponseNullableNumberEnumEnum}
* @memberof FakeEnumRequestGetInline200Response
*/
nullableNumberEnum?: FakeEnumRequestGetInline200ResponseNullableNumberEnumEnum;
diff --git a/samples/client/petstore/typescript-fetch/builds/without-runtime-checks/src/models/index.ts b/samples/client/petstore/typescript-fetch/builds/without-runtime-checks/src/models/index.ts
index ab1529f795f4..806093189e76 100644
--- a/samples/client/petstore/typescript-fetch/builds/without-runtime-checks/src/models/index.ts
+++ b/samples/client/petstore/typescript-fetch/builds/without-runtime-checks/src/models/index.ts
@@ -76,7 +76,7 @@ export interface Order {
shipDate?: string;
/**
* Order Status
- * @type {string}
+ * @type {OrderStatusEnum}
* @memberof Order
*/
status?: OrderStatusEnum;
@@ -137,7 +137,7 @@ export interface Pet {
tags?: Array;
/**
* pet status in the store
- * @type {string}
+ * @type {PetStatusEnum}
* @memberof Pet
*/
status?: PetStatusEnum;
diff --git a/samples/openapi3/client/petstore/typescript/builds/explode-query/models/MapTest.ts b/samples/openapi3/client/petstore/typescript/builds/explode-query/models/MapTest.ts
index 512fae304c86..d48fa6f05cca 100644
--- a/samples/openapi3/client/petstore/typescript/builds/explode-query/models/MapTest.ts
+++ b/samples/openapi3/client/petstore/typescript/builds/explode-query/models/MapTest.ts
@@ -14,7 +14,7 @@ import { HttpFile } from '../http/http';
export class MapTest {
'mapMapOfString'?: { [key: string]: { [key: string]: string; }; };
- 'mapOfEnumString'?: { [key: string]: string; };
+ 'mapOfEnumString'?: { [key: string]: MapTestMapOfEnumStringEnum; };
'directMap'?: { [key: string]: boolean; };
'indirectMap'?: { [key: string]: boolean; };
@@ -32,7 +32,7 @@ export class MapTest {
{
"name": "mapOfEnumString",
"baseName": "map_of_enum_string",
- "type": "{ [key: string]: string; }",
+ "type": "{ [key: string]: MapTestMapOfEnumStringEnum; }",
"format": ""
},
{