Openapi file is incorrect for array fields 08/139808/3
authorvani.kv <vani.kv@accenture.com>
Sun, 5 Jan 2025 16:09:05 +0000 (21:39 +0530)
committerVani KV <vani.kv@accenture.com>
Mon, 6 Jan 2025 04:29:05 +0000 (04:29 +0000)
Issue-ID: AAI-4038
Change-Id: Ifc686c1afdadd13771ff0c95910bd9639c65459c
Signed-off-by: vani.kv <vani.kv@accenture.com>
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

index f4d15b2..8a06c37 100644 (file)
@@ -412,8 +412,11 @@ public class NodesYAMLfromOXM extends OxmFileProcessor {
                             sbProperties.append("        $ref: \"#/definitions/").append(itemName)
                                 .append("\"\n");
                         } else {
-                            sbProperties.append("        type: array\n        items:\n");
-                            sbProperties.append("          $ref: \"#/definitions/")
+                            // Open API Schema definition changes
+                            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");
                         }
index 577846c..1b746d5 100644 (file)
@@ -451,13 +451,6 @@ public class YAMLfromOXM extends OxmFileProcessor {
                                 System.out.println(
                                     v + "-relationship added as array for getItemName null");
                             }
-                            // https://gitlab.devops.telekom.de/tnap/development/tesla-team/portal-tnap/portal-bff/-/merge_requests/542/diffs#c00bf90500eca6b5dfcf2b014e51dace6aafeeba
-                            // type: object
-                            // properties:
-                            //   itemName:
-                            //     type: array
-                            //     items:
-                            //       $ref: "#/definitions/itemName"
                             sbProperties.append("        type: object\n        properties:\n");
                             sbProperties.append("          " + itemName + ":\n");
                             sbProperties.append("            type: array\n            items:\n");
index 87e967e..7139b43 100644 (file)
@@ -412,9 +412,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");
@@ -445,9 +448,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(