diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/OpenAPINormalizer.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/OpenAPINormalizer.java index b71ca5b96808..8e4994dd96be 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/OpenAPINormalizer.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/OpenAPINormalizer.java @@ -1510,10 +1510,12 @@ protected Schema processSimplifyOneOf(Schema schema) { } schema = simplifyOneOfAnyOfWithOnlyOneNonNullSubSchema(openAPI, schema, oneOfSchemas); - if (ModelUtils.isIntegerSchema(schema) || ModelUtils.isNumberSchema(schema) || ModelUtils.isStringSchema(schema)) { - // TODO convert oneOf const to enum - schema.setOneOf(null); + if (schema.getSpecVersion().equals(SpecVersion.V30)) { + schema.setOneOf(null); + } //else { + // TODO convert oneOf const/deprecated to enum + // } } } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/OpenAPINormalizerTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/OpenAPINormalizerTest.java index eb85fed62eab..54553ca96a71 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/OpenAPINormalizerTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/OpenAPINormalizerTest.java @@ -1101,8 +1101,9 @@ public void testOpenAPINormalizerSimplifyOneOfAnyOf31Spec() { assertEquals(schema14.getType(), null); Schema schema16 = openAPI.getComponents().getSchemas().get("TypeIntegerWithOneOf"); - // oneOf should have been removed as the schema is essentially a primitive type - assertEquals(schema16.getOneOf(), null); + assertEquals(schema16.getOneOf().size(),3); + assertEquals(((Schema) schema16.getOneOf().get(0)).getConst(), 1); + assertEquals(((Schema) schema16.getOneOf().get(0)).getDeprecated(), true); Schema schema18 = openAPI.getComponents().getSchemas().get("OneOfNullAndRef3"); // original oneOf removed and simplified to just $ref (oneOf sub-schema) instead diff --git a/modules/openapi-generator/src/test/resources/3_1/simplifyOneOfAnyOf_test.yaml b/modules/openapi-generator/src/test/resources/3_1/simplifyOneOfAnyOf_test.yaml index d093a7efc4de..bf8dc407b9ef 100644 --- a/modules/openapi-generator/src/test/resources/3_1/simplifyOneOfAnyOf_test.yaml +++ b/modules/openapi-generator/src/test/resources/3_1/simplifyOneOfAnyOf_test.yaml @@ -130,6 +130,7 @@ components: - title: ITEM A description: This permission is for item A. const: 1 + deprecated: true - title: ITEM B description: This permission is for item B. const: 2