From e49ad1c53b6fc0a406a59562d071ab3af5409575 Mon Sep 17 00:00:00 2001 From: themooks Date: Tue, 13 Jan 2026 14:31:20 +0100 Subject: [PATCH] Adding support for year-month swagger string format for Java, Javascript and Python SDK --- .../main/java/org/openapitools/codegen/DefaultCodegen.java | 5 +++++ .../codegen/languages/PureCloudDotNetClientCodegen.java | 1 + .../codegen/languages/PureCloudGoClientCodegen.java | 1 + .../codegen/languages/PureCloudJavaClientCodegen.java | 1 + .../codegen/languages/PureCloudJavaScriptClientCodegen.java | 1 + .../codegen/languages/PureCloudSwift4ClientCodegen.java | 1 + 6 files changed, 10 insertions(+) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java index 1961a9beb78c..ef43e3552940 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java @@ -2125,6 +2125,11 @@ protected String getPrimitiveType(Schema schema) { // This is a datatype that contains a date and time, but no timezone return "LocalDateTime"; } + if ("year-month".equals(schema.getFormat())) { + // Override for custom swagger format: year-month + // This is a datatype that contains a year and month, but no day + return "YearMonth"; + } return "string"; } else if (isFreeFormObject(schema)) { // Note: the value of a free-form object cannot be an arbitrary type. Per OAS specification, diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PureCloudDotNetClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PureCloudDotNetClientCodegen.java index 77080af252aa..8f1f54a80efe 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PureCloudDotNetClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PureCloudDotNetClientCodegen.java @@ -26,6 +26,7 @@ public PureCloudDotNetClientCodegen() { typeMapping.put("date", "String" ); typeMapping.put("LocalDateTime", "DateTime?"); typeMapping.put("LocalTime", "DateTime?"); + typeMapping.put("YearMonth", "String" ); typeMapping.put("Dictionary", "Object"); typeMapping.put("decimal", "double"); typeMapping.put("decimal?", "double?"); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PureCloudGoClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PureCloudGoClientCodegen.java index 450198463928..8a2c685c6ca4 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PureCloudGoClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PureCloudGoClientCodegen.java @@ -28,6 +28,7 @@ public PureCloudGoClientCodegen() { // Mainly used for API types of Map, which are objects with additional properties of type object typeMapping.put("object", "interface{}"); typeMapping.put("local-date-time", "time.Time"); + typeMapping.put("year-month", "string"); apiDocTemplateFiles.put("api_json.mustache", ".json"); operationTemplateFiles.put("operation_example.mustache", "-example.txt"); // Add special reserved words diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PureCloudJavaClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PureCloudJavaClientCodegen.java index 6d5dc2390616..95b2c0b90f20 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PureCloudJavaClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PureCloudJavaClientCodegen.java @@ -34,6 +34,7 @@ public PureCloudJavaClientCodegen() { // Custom mappings for swagger type -> java type importMapping.put("LocalDateTime", "org.joda.time.LocalDateTime"); + importMapping.put("YearMonth", "java.time.YearMonth"); importMapping.put("PagedResource", "com.mypurecloud.sdk.v2.PagedResource"); importMapping.put("ArrayNode", "com.fasterxml.jackson.databind.node.ArrayNode"); importMapping.put("LocalDate", "java.time.LocalDate"); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PureCloudJavaScriptClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PureCloudJavaScriptClientCodegen.java index 5e3e5ee5c8cf..7d5b67ccf48a 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PureCloudJavaScriptClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PureCloudJavaScriptClientCodegen.java @@ -97,6 +97,7 @@ public PureCloudJavaScriptClientCodegen() { typeMapping.put("number", "Number"); typeMapping.put("DateTime", "Date"); typeMapping.put("LocalDateTime", "Date"); + typeMapping.put("YearMonth", "Date"); typeMapping.put("date", "String"); typeMapping.put("long", "Number"); typeMapping.put("short", "Number"); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PureCloudSwift4ClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PureCloudSwift4ClientCodegen.java index 79e958172606..3365fa9923bf 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PureCloudSwift4ClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PureCloudSwift4ClientCodegen.java @@ -33,6 +33,7 @@ public PureCloudSwift4ClientCodegen() { // Custom mappings and overrides for swagger type -> swift type typeMapping.put("object", "JSON"); typeMapping.put("LocalDateTime", "String"); + typeMapping.put("YearMonth", "String"); typeMapping.put("URI", "String"); typeMapping.put("uri", "String"); typeMapping.put("Dictionary", "String:JSON");