Make OpenAPI YAML more compliant with the standards 12/142012/3
authorBen Zelleröhr <ben.zelleroehr@telekom.de>
Tue, 9 Sep 2025 06:16:03 +0000 (08:16 +0200)
committerBen Zelleröhr <ben.zelleroehr@telekom.de>
Wed, 10 Sep 2025 05:53:49 +0000 (07:53 +0200)
- remove colon after list entries
- remove 'type: object' next to '$ref: '
- wrap array in object

Issue-ID: AAI-4203
Change-Id: I75b5a46a34fb49ea5ba7e17a758b7f47b3cce144
Signed-off-by: Ben Zelleröhr <ben.zelleroehr@telekom.de>
aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/NodesYAMLfromOXM.java
aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/YAMLfromOXM.java
aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/NodesYAMLfromOXMTest.java
aai-schema-gen/src/test/java/org/onap/aai/schemagen/genxsd/YAMLfromOXMTest.java

index f4d15b2..8075c92 100644 (file)
@@ -361,7 +361,7 @@ public class NodesYAMLfromOXM extends OxmFileProcessor {
                 } else {
                     for (int k = 0; k < addTypeV.size(); ++k) {
                         sbRequired.append("    - ")
-                            .append(getXmlRootElementName(addTypeV.elementAt(k))).append(":\n");
+                            .append(getXmlRootElementName(addTypeV.elementAt(k))).append("\n");
                     }
                 }
             }
@@ -408,12 +408,13 @@ public class NodesYAMLfromOXM extends OxmFileProcessor {
                         sbProperties.append("      ").append(getXmlRootElementName(addType))
                             .append(":\n");
                         if ("RelationshipList".equals(addType)) {
-                            sbProperties.append("        type: object\n");
                             sbProperties.append("        $ref: \"#/definitions/").append(itemName)
                                 .append("\"\n");
                         } else {
-                            sbProperties.append("        type: array\n        items:\n");
-                            sbProperties.append("          $ref: \"#/definitions/")
+                            sbProperties.append("        type: object\n        properties:\n");
+                            sbProperties.append("          " + itemName + ":\n");
+                            sbProperties.append("            type: array\n            items:\n");
+                            sbProperties.append("              $ref: \"#/definitions/")
                                 .append("".equals(itemName) ? "aai-internal" : itemName)
                                 .append("\"\n");
                         }
@@ -440,7 +441,6 @@ public class NodesYAMLfromOXM extends OxmFileProcessor {
                         useName = getXmlRootElementName(addType);
                         sbProperties.append("      ").append(useName).append(":\n");
                         if ("relationship".equals(useName)) {
-                            sbProperties.append("        type: object\n");
                             sbProperties.append("        $ref: \"#/definitions/relationship\"\n");
                         } else {
                             sbProperties.append("        type: array\n        items:          \n");
@@ -457,7 +457,6 @@ public class NodesYAMLfromOXM extends OxmFileProcessor {
                         if (!nodeFilter.contains(getXmlRootElementName(addType))) {
                             sbProperties.append("      ").append(getXmlRootElementName(addType))
                                 .append(":\n");
-                            sbProperties.append("        type: object\n");
                             sbProperties.append("        $ref: \"#/definitions/")
                                 .append(getXmlRootElementName(addType)).append("\"\n");
                         }
index 71baa9c..f452e1b 100644 (file)
@@ -390,7 +390,7 @@ public class YAMLfromOXM extends OxmFileProcessor {
                 } else {
                     for (int k = 0; k < addTypeV.size(); ++k) {
                         sbRequired.append("    - ")
-                            .append(getXmlRootElementName(addTypeV.elementAt(k))).append(":\n");
+                            .append(getXmlRootElementName(addTypeV.elementAt(k))).append("\n");
                     }
                 }
             }
@@ -441,7 +441,6 @@ public class YAMLfromOXM extends OxmFileProcessor {
                                 .append("\"\n");
                             sbPropertiesPatch.append("      ")
                                 .append(getXmlRootElementName(addType)).append(":\n");
-                            sbPropertiesPatch.append("        type: object\n");
                             sbPropertiesPatch.append("        $ref: \"#/definitions/")
                                 .append(itemName).append("\"\n");
                             ++patchPropertyCnt;
@@ -475,9 +474,7 @@ public class YAMLfromOXM extends OxmFileProcessor {
                         useName = getXmlRootElementName(addType);
                         sbProperties.append("      ").append(useName).append(":\n");
                         if ("relationship".equals(useName)) {
-                            sbProperties.append("        type: object\n");
                             sbProperties.append("        $ref: \"#/definitions/relationship\"\n");
-                            sbPropertiesPatch.append("        type: object\n");
                             sbPropertiesPatch
                                 .append("        $ref: \"#/definitions/relationship\"\n");
                             ++patchPropertyCnt;
@@ -496,7 +493,6 @@ public class YAMLfromOXM extends OxmFileProcessor {
                         if (!nodeFilter.contains(getXmlRootElementName(addType))) {
                             sbProperties.append("      ").append(getXmlRootElementName(addType))
                                 .append(":\n");
-                            sbProperties.append("        type: object\n");
                             sbProperties.append("        $ref: \"#/definitions/")
                                 .append(getXmlRootElementName(addType)).append("\"\n");
                         }
index da01cf0..238d48c 100644 (file)
@@ -420,9 +420,12 @@ public class NodesYAMLfromOXMTest {
         sb.append("      Namespace for business related constructs\n");
         sb.append("    properties:\n");
         sb.append("      customers:\n");
-        sb.append("        type: array\n");
-        sb.append("        items:\n");
-        sb.append("          $ref: \"#/definitions/customer\"\n");
+        sb.append("        type: object\n");
+        sb.append("        properties:\n");
+        sb.append("          customer:\n");
+        sb.append("            type: array\n");
+        sb.append("            items:\n");
+        sb.append("              $ref: \"#/definitions/customer\"\n");
         sb.append("  customer:\n");
         sb.append("    description: |\n");
         sb.append("      customer identifiers to provide linkage back to BSS information.\n");
@@ -453,9 +456,12 @@ public class NodesYAMLfromOXMTest {
         sb.append(
             "        description: Used for optimistic concurrency.  Must be empty on create, valid on update and delete.\n");
         sb.append("      service-subscriptions:\n");
-        sb.append("        type: array\n");
-        sb.append("        items:\n");
-        sb.append("          $ref: \"#/definitions/service-subscription\"\n");
+        sb.append("        type: object\n");
+        sb.append("        properties:\n");
+        sb.append("          service-subscription:\n");
+        sb.append("            type: array\n");
+        sb.append("            items:\n");
+        sb.append("              $ref: \"#/definitions/service-subscription\"\n");
         sb.append("  customers:\n");
         sb.append("    description: |\n");
         sb.append(
@@ -468,7 +474,6 @@ public class NodesYAMLfromOXMTest {
         sb.append("  inventory:\n");
         sb.append("    properties:\n");
         sb.append("      business:\n");
-        sb.append("        type: object\n");
         sb.append("        $ref: \"#/definitions/business\"\n");
         sb.append("  nodes:" + OxmFileProcessor.LINE_SEPARATOR);
         sb.append("    properties:" + OxmFileProcessor.LINE_SEPARATOR);
index eb21fbc..1be6ff6 100644 (file)
@@ -770,7 +770,6 @@ public class YAMLfromOXMTest {
         sb.append("  inventory:\n");
         sb.append("    properties:\n");
         sb.append("      business:\n");
-        sb.append("        type: object\n");
         sb.append("        $ref: \"#/definitions/business\"\n");
         sb.append("  nodes:" + OxmFileProcessor.LINE_SEPARATOR);
         sb.append("    properties:" + OxmFileProcessor.LINE_SEPARATOR);
@@ -873,7 +872,6 @@ public class YAMLfromOXMTest {
         sb.append("  relationship-list:\n");
         sb.append("    properties:\n");
         sb.append("      relationship:\n");
-        sb.append("        type: object\n");
         sb.append("        $ref: \"#/definitions/relationship\"\n");
         return sb.toString();
     }