OpenAPI: netopeer2 wrong schemas for actions 04/110404/14
authorlubos-cicut <lubos.cicut@pantheon.tech>
Thu, 29 Feb 2024 14:32:28 +0000 (15:32 +0100)
committerIvan Hrasko <ivan.hrasko@pantheon.tech>
Tue, 12 Mar 2024 13:36:36 +0000 (14:36 +0100)
Schemas for actions weren't generated correctly. There were
missing parent node name. In path ref if action was nested in more
containers were missing all parent nodes.

Edit of expected documents was necessary due to changes.

JIRA: NETCONF-1259
Change-Id: I0cf4769122ab00e62687ec01399d5de1b3bb3baf
Signed-off-by: lubos-cicut <lubos.cicut@pantheon.tech>
Signed-off-by: Ivan Hrasko <ivan.hrasko@pantheon.tech>
restconf/restconf-openapi/src/main/java/org/opendaylight/restconf/openapi/impl/PathsStream.java
restconf/restconf-openapi/src/main/java/org/opendaylight/restconf/openapi/impl/SchemasStream.java
restconf/restconf-openapi/src/main/java/org/opendaylight/restconf/openapi/model/PostEntity.java
restconf/restconf-openapi/src/test/resources/operational-document/controller-action-types.json
restconf/restconf-openapi/src/test/resources/operational-document/controller-all.json
restconf/restconf-openapi/src/test/resources/operational-document/device-action-types.json
restconf/restconf-openapi/src/test/resources/operational-document/device-all.json
restconf/restconf-openapi/src/test/resources/yang-document/controller-action-types.json
restconf/restconf-openapi/src/test/resources/yang-document/controller-all.json
restconf/restconf-openapi/src/test/resources/yang-document/device-action-types.json
restconf/restconf-openapi/src/test/resources/yang-document/device-all.json

index 8382614ad52948e15b5d3348de513497e5f825cb..21e45bd851cb231ba8e3eaf0deb6c009a675d922 100644 (file)
@@ -169,7 +169,8 @@ public final class PathsStream extends InputStream {
         // RPC operations (via post) - RPCs have their own path
         for (final var rpc : module.getRpcs()) {
             final var localName = rpc.getQName().getLocalName();
-            final var post = new PostEntity(rpc, deviceName, module.getName(), new ArrayList<>(), localName, null);
+            final var post = new PostEntity(rpc, deviceName, module.getName(), List.of(), localName, null,
+                List.of());
             final var resolvedPath = basePath + OPERATIONS + urlPrefix + "/" + module.getName() + ":" + localName;
             final var entity = new PathEntity(resolvedPath, post);
             result.add(entity);
@@ -183,7 +184,7 @@ public final class PathsStream extends InputStream {
                 if (isConfig && !hasRootPostLink && isForSingleModule) {
                     final var resolvedPath = basePath + DATA + urlPrefix;
                     result.add(new PathEntity(resolvedPath,
-                        new PostEntity(node, deviceName, moduleName, new ArrayList<>(), nodeLocalName, module)));
+                        new PostEntity(node, deviceName, moduleName, List.of(), nodeLocalName, module, List.of())));
                     hasRootPostLink = true;
                 }
                 //process first node
@@ -191,7 +192,7 @@ public final class PathsStream extends InputStream {
                 final var localName = moduleName + ":" + nodeLocalName;
                 final var path = urlPrefix + "/" + processPath(node, pathParams, localName);
                 processChildNode(node, pathParams, moduleName, result, path, nodeLocalName, isConfig, schemaContext,
-                    deviceName, basePath, null);
+                    deviceName, basePath, null, List.of());
             }
         }
         return result;
@@ -200,7 +201,7 @@ public final class PathsStream extends InputStream {
     private static void processChildNode(final DataSchemaNode node, final List<ParameterEntity> pathParams,
             final String moduleName, final Deque<PathEntity> result, final String path, final String refPath,
             final boolean isConfig, final EffectiveModelContext schemaContext, final String deviceName,
-            final String basePath, final SchemaNode parentNode) {
+            final String basePath, final SchemaNode parentNode, final List<SchemaNode> parentNodes) {
         final var resourcePath = basePath + DATA + path;
         final var fullName = resolveFullNameFromNode(node.getQName(), schemaContext);
         final var firstChild = getListOrContainerChildNode((DataNodeContainer) node);
@@ -212,25 +213,31 @@ public final class PathsStream extends InputStream {
                 isConfig, fullName, deviceName));
         }
         final var childNodes = ((DataNodeContainer) node).getChildNodes();
+        final var listOfParents = new ArrayList<>(parentNodes);
+        if (parentNode != null) {
+            listOfParents.add(parentNode);
+        }
         if (node instanceof ActionNodeContainer actionContainer) {
+            final var listOfParentsForActions = new ArrayList<>(listOfParents);
+            listOfParentsForActions.add(node);
             final var actionParams = new ArrayList<>(pathParams);
             actionContainer.getActions().forEach(actionDef -> {
                 final var resourceActionPath = path + "/" + resolvePathArgumentsName(actionDef.getQName(),
                     node.getQName(), schemaContext);
                 final var childPath = basePath + OPERATIONS + resourceActionPath;
                 result.add(processActionPathEntity(actionDef, childPath, actionParams, moduleName,
-                    refPath, deviceName, parentNode));
+                    refPath, deviceName, parentNode, listOfParentsForActions));
             });
         }
         for (final var childNode : childNodes) {
-            final var childParams = new ArrayList<>(pathParams);
-            final var newRefPath = refPath + "_" + childNode.getQName().getLocalName();
             if (childNode instanceof ListSchemaNode || childNode instanceof ContainerSchemaNode) {
+                final var childParams = new ArrayList<>(pathParams);
+                final var newRefPath = refPath + "_" + childNode.getQName().getLocalName();
                 final var localName = resolvePathArgumentsName(childNode.getQName(), node.getQName(), schemaContext);
                 final var resourceDataPath = path + "/" + processPath(childNode, childParams, localName);
                 final var newConfig = isConfig && childNode.isConfiguration();
                 processChildNode(childNode, childParams, moduleName, result, resourceDataPath, newRefPath, newConfig,
-                    schemaContext, deviceName, basePath, node);
+                    schemaContext, deviceName, basePath, node, listOfParents);
             }
         }
     }
@@ -261,9 +268,9 @@ public final class PathsStream extends InputStream {
             final boolean isConfig, final String fullName, final SchemaNode childNode, final String deviceName) {
         if (isConfig) {
             final var childNodeRefPath = refPath + "_" + childNode.getQName().getLocalName();
-            var post = new PostEntity(childNode, deviceName, moduleName, pathParams, childNodeRefPath, node);
+            var post = new PostEntity(childNode, deviceName, moduleName, pathParams, childNodeRefPath, node, List.of());
             if (!((DataSchemaNode) childNode).isConfiguration()) {
-                post = new PostEntity(node, deviceName, moduleName, pathParams, refPath, null);
+                post = new PostEntity(node, deviceName, moduleName, pathParams, refPath, null, List.of());
             }
             return new PathEntity(resourcePath, post,
                 new PatchEntity(node, deviceName, moduleName, pathParams, refPath, fullName),
@@ -278,9 +285,9 @@ public final class PathsStream extends InputStream {
 
     private static PathEntity processActionPathEntity(final SchemaNode node, final String resourcePath,
             final List<ParameterEntity> pathParams, final String moduleName, final String refPath,
-            final String deviceName, final SchemaNode parentNode) {
+            final String deviceName, final SchemaNode parentNode, final List<SchemaNode> parentNodes) {
         return new PathEntity(resourcePath,
-            new PostEntity(node, deviceName, moduleName, pathParams, refPath, parentNode));
+            new PostEntity(node, deviceName, moduleName, pathParams, refPath, parentNode, parentNodes));
     }
 
     private static String processPath(final DataSchemaNode node, final List<ParameterEntity> pathParams,
index e3de701dcf4c3ff3aeccbe2d500fb545981388da..c1efb8da644a6c37cfafc42b75bfc002c63c00ca 100644 (file)
@@ -192,7 +192,7 @@ public final class SchemasStream extends InputStream {
             final var isConfig = node.isConfiguration() && isParentConfig;
             result.add(child);
             stack.enterSchemaTree(node.getQName());
-            processActions(node, title, stack, definitionNames, result, parentName);
+            processActions(node, newTitle, stack, definitionNames, result, parentName);
             for (final var childNode : ((DataNodeContainer) node).getChildNodes()) {
                 processDataAndActionNodes(childNode, newTitle, stack, definitionNames, result, newTitle, isConfig);
             }
index ac22978c6b3cb34d5acc465bc305741d3b44e43d..186b938317704de4f66ee5e0175d5cf517d217aa 100644 (file)
@@ -40,12 +40,15 @@ public final class PostEntity extends OperationEntity {
         """;
 
     private final @Nullable DocumentedNode parentNode;
+    private final @NonNull List<SchemaNode> parentNodes;
 
     public PostEntity(final @NonNull SchemaNode schema, final @NonNull String deviceName,
             final @NonNull String moduleName, final @NonNull List<ParameterEntity> parameters,
-            final @NonNull String refPath, final @Nullable DocumentedNode parentNode) {
+            final @NonNull String refPath, final @Nullable DocumentedNode parentNode,
+            final @NonNull List<SchemaNode> parentNodes) {
         super(requireNonNull(schema), deviceName, moduleName, requireNonNull(parameters), requireNonNull(refPath));
         this.parentNode = parentNode;
+        this.parentNodes = requireNonNull(parentNodes);
     }
 
     protected @NonNull String operation() {
@@ -206,14 +209,16 @@ public final class PostEntity extends OperationEntity {
     }
 
     private String processOperationsRef(final OperationDefinition def, final String operationName, final String suf) {
-        if (def instanceof ActionDefinition && parentNode != null) {
-            final var parentName = ((DataSchemaNode) parentNode).getQName().getLocalName();
+        final var ref = new StringBuilder(COMPONENTS_PREFIX + moduleName() + "_");
+        if (def instanceof ActionDefinition) {
             final boolean hasChildNodes = suf.equals(INPUT_SUFFIX) ? !def.getInput().getChildNodes().isEmpty()
-                    : !def.getOutput().getChildNodes().isEmpty();
+                : !def.getOutput().getChildNodes().isEmpty();
             if (hasChildNodes) {
-                return COMPONENTS_PREFIX + moduleName() + "_" + parentName + "_" + operationName + suf;
+                for (final SchemaNode node : parentNodes) {
+                    ref.append(node.getQName().getLocalName()).append("_");
+                }
             }
         }
-        return COMPONENTS_PREFIX + moduleName() + "_" + operationName + suf;
+        return ref.append(operationName).append(suf).toString();
     }
 }
index 84d8b0bb203edd7c4fc2e6c3ea0e2262075dad87..c2125da571d267882d8f68027c0887b93fe8e318 100644 (file)
           "content": {
             "application/xml": {
               "schema": {
-                "$ref": "#/components/schemas/action-types_container-action_input"
+                "$ref": "#/components/schemas/action-types_container_container-action_input"
               }
             },
             "application/json": {
               "schema": {
                 "properties": {
                   "input": {
-                    "$ref": "#/components/schemas/action-types_container-action_input",
+                    "$ref": "#/components/schemas/action-types_container_container-action_input",
                     "type": "object"
                   }
                 }
             "content": {
               "application/xml": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_container-action_output"
+                  "$ref": "#/components/schemas/action-types_container_container-action_output"
                 }
               },
               "application/json": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_container-action_output"
+                  "$ref": "#/components/schemas/action-types_container_container-action_output"
                 }
               }
             }
           "content": {
             "application/xml": {
               "schema": {
-                "$ref": "#/components/schemas/action-types_list-action_input"
+                "$ref": "#/components/schemas/action-types_list_list-action_input"
               }
             },
             "application/json": {
               "schema": {
                 "properties": {
                   "input": {
-                    "$ref": "#/components/schemas/action-types_list-action_input",
+                    "$ref": "#/components/schemas/action-types_list_list-action_input",
                     "type": "object"
                   }
                 }
             "content": {
               "application/xml": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_list-action_output"
+                  "$ref": "#/components/schemas/action-types_list_list-action_output"
                 }
               },
               "application/json": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_list-action_output"
+                  "$ref": "#/components/schemas/action-types_list_list-action_output"
                 }
               }
             }
   },
   "components": {
     "schemas": {
-      "action-types_list-action_input": {
+      "action-types_list_list-action_input": {
         "required": [
           "la-input"
         ],
           "name": "input",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_list-action_input",
+        "title": "action-types_list_list-action_input",
         "type": "object"
       },
       "action-types_container": {
         "title": "action-types_multi-container",
         "type": "object"
       },
-      "action-types_list-action_output": {
+      "action-types_list_list-action_output": {
         "required": [
           "la-output"
         ],
           "name": "output",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_list-action_output",
+        "title": "action-types_list_list-action_output",
         "type": "object"
       },
-      "action-types_container-action_input": {
+      "action-types_container_container-action_input": {
         "required": [
           "ca-input"
         ],
           "name": "input",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_container-action_input",
+        "title": "action-types_container_container-action_input",
         "type": "object"
       },
       "action-types_multi-container_inner-container": {
         "title": "action-types_list",
         "type": "object"
       },
-      "action-types_container-action_output": {
+      "action-types_container_container-action_output": {
         "required": [
           "ca-output"
         ],
           "name": "output",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_container-action_output",
+        "title": "action-types_container_container-action_output",
         "type": "object"
       }
     },
index 371eaba4db8de33b47e7a59169c41142c3758a9b..a9cd56a7921a8988de6a8d4e3f22e2b99fd5619f 100644 (file)
           "content": {
             "application/xml": {
               "schema": {
-                "$ref": "#/components/schemas/action-types_container-action_input"
+                "$ref": "#/components/schemas/action-types_container_container-action_input"
               }
             },
             "application/json": {
               "schema": {
                 "properties": {
                   "input": {
-                    "$ref": "#/components/schemas/action-types_container-action_input",
+                    "$ref": "#/components/schemas/action-types_container_container-action_input",
                     "type": "object"
                   }
                 }
             "content": {
               "application/xml": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_container-action_output"
+                  "$ref": "#/components/schemas/action-types_container_container-action_output"
                 }
               },
               "application/json": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_container-action_output"
+                  "$ref": "#/components/schemas/action-types_container_container-action_output"
                 }
               }
             }
           "content": {
             "application/xml": {
               "schema": {
-                "$ref": "#/components/schemas/action-types_list-action_input"
+                "$ref": "#/components/schemas/action-types_list_list-action_input"
               }
             },
             "application/json": {
               "schema": {
                 "properties": {
                   "input": {
-                    "$ref": "#/components/schemas/action-types_list-action_input",
+                    "$ref": "#/components/schemas/action-types_list_list-action_input",
                     "type": "object"
                   }
                 }
             "content": {
               "application/xml": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_list-action_output"
+                  "$ref": "#/components/schemas/action-types_list_list-action_output"
                 }
               },
               "application/json": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_list-action_output"
+                  "$ref": "#/components/schemas/action-types_list_list-action_output"
                 }
               }
             }
         "title": "operational_root",
         "type": "object"
       },
-      "action-types_container-action_input": {
+      "action-types_container_container-action_input": {
         "required": [
           "ca-input"
         ],
           "name": "input",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_container-action_input",
+        "title": "action-types_container_container-action_input",
         "type": "object"
       },
       "operational_root_oper-container_config-container": {
         "title": "operational_root_config-container_config-container-oper-list",
         "type": "object"
       },
-      "action-types_container-action_output": {
+      "action-types_container_container-action_output": {
         "required": [
           "ca-output"
         ],
           "name": "output",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_container-action_output",
+        "title": "action-types_container_container-action_output",
         "type": "object"
       },
-      "action-types_list-action_input": {
+      "action-types_list_list-action_input": {
         "required": [
           "la-input"
         ],
           "name": "input",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_list-action_input",
+        "title": "action-types_list_list-action_input",
         "type": "object"
       },
       "action-types_container": {
         "title": "action-types_container",
         "type": "object"
       },
-      "action-types_list-action_output": {
+      "action-types_list_list-action_output": {
         "required": [
           "la-output"
         ],
           "name": "output",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_list-action_output",
+        "title": "action-types_list_list-action_output",
         "type": "object"
       },
       "operational_root_oper-container_oper-container-list": {
index e6c557679b86fb4c70d7bee5702b67340dc2e289..886d706c349918350f5ab8037a9075fbd8bd525b 100644 (file)
           "content": {
             "application/xml": {
               "schema": {
-                "$ref": "#/components/schemas/action-types_list-action_input"
+                "$ref": "#/components/schemas/action-types_list_list-action_input"
               }
             },
             "application/json": {
               "schema": {
                 "properties": {
                   "input": {
-                    "$ref": "#/components/schemas/action-types_list-action_input",
+                    "$ref": "#/components/schemas/action-types_list_list-action_input",
                     "type": "object"
                   }
                 }
             "content": {
               "application/xml": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_list-action_output"
+                  "$ref": "#/components/schemas/action-types_list_list-action_output"
                 }
               },
               "application/json": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_list-action_output"
+                  "$ref": "#/components/schemas/action-types_list_list-action_output"
                 }
               }
             }
           "content": {
             "application/xml": {
               "schema": {
-                "$ref": "#/components/schemas/action-types_container-action_input"
+                "$ref": "#/components/schemas/action-types_container_container-action_input"
               }
             },
             "application/json": {
               "schema": {
                 "properties": {
                   "input": {
-                    "$ref": "#/components/schemas/action-types_container-action_input",
+                    "$ref": "#/components/schemas/action-types_container_container-action_input",
                     "type": "object"
                   }
                 }
             "content": {
               "application/xml": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_container-action_output"
+                  "$ref": "#/components/schemas/action-types_container_container-action_output"
                 }
               },
               "application/json": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_container-action_output"
+                  "$ref": "#/components/schemas/action-types_container_container-action_output"
                 }
               }
             }
   },
   "components": {
     "schemas": {
-      "action-types_list-action_input": {
+      "action-types_list_list-action_input": {
         "required": [
           "la-input"
         ],
           "name": "input",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_list-action_input",
+        "title": "action-types_list_list-action_input",
         "type": "object"
       },
       "action-types_container": {
         "title": "action-types_multi-container",
         "type": "object"
       },
-      "action-types_list-action_output": {
+      "action-types_list_list-action_output": {
         "required": [
           "la-output"
         ],
           "name": "output",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_list-action_output",
+        "title": "action-types_list_list-action_output",
         "type": "object"
       },
-      "action-types_container-action_input": {
+      "action-types_container_container-action_input": {
         "required": [
           "ca-input"
         ],
           "name": "input",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_container-action_input",
+        "title": "action-types_container_container-action_input",
         "type": "object"
       },
       "action-types_multi-container_inner-container": {
         "title": "action-types_list",
         "type": "object"
       },
-      "action-types_container-action_output": {
+      "action-types_container_container-action_output": {
         "required": [
           "ca-output"
         ],
           "name": "output",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_container-action_output",
+        "title": "action-types_container_container-action_output",
         "type": "object"
       }
     },
index 425eeb0907f9a656dcb0169ed45445cca59bb61b..f180b3a5a45468db7bdd629a054ae2a0b66cc249 100644 (file)
           "content": {
             "application/xml": {
               "schema": {
-                "$ref": "#/components/schemas/action-types_list-action_input"
+                "$ref": "#/components/schemas/action-types_list_list-action_input"
               }
             },
             "application/json": {
               "schema": {
                 "properties": {
                   "input": {
-                    "$ref": "#/components/schemas/action-types_list-action_input",
+                    "$ref": "#/components/schemas/action-types_list_list-action_input",
                     "type": "object"
                   }
                 }
             "content": {
               "application/xml": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_list-action_output"
+                  "$ref": "#/components/schemas/action-types_list_list-action_output"
                 }
               },
               "application/json": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_list-action_output"
+                  "$ref": "#/components/schemas/action-types_list_list-action_output"
                 }
               }
             }
           "content": {
             "application/xml": {
               "schema": {
-                "$ref": "#/components/schemas/action-types_container-action_input"
+                "$ref": "#/components/schemas/action-types_container_container-action_input"
               }
             },
             "application/json": {
               "schema": {
                 "properties": {
                   "input": {
-                    "$ref": "#/components/schemas/action-types_container-action_input",
+                    "$ref": "#/components/schemas/action-types_container_container-action_input",
                     "type": "object"
                   }
                 }
             "content": {
               "application/xml": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_container-action_output"
+                  "$ref": "#/components/schemas/action-types_container_container-action_output"
                 }
               },
               "application/json": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_container-action_output"
+                  "$ref": "#/components/schemas/action-types_container_container-action_output"
                 }
               }
             }
         "title": "operational_root",
         "type": "object"
       },
-      "action-types_container-action_input": {
+      "action-types_container_container-action_input": {
         "required": [
           "ca-input"
         ],
           "name": "input",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_container-action_input",
+        "title": "action-types_container_container-action_input",
         "type": "object"
       },
       "operational_root_oper-container_config-container": {
         "title": "operational_root_config-container_config-container-oper-list",
         "type": "object"
       },
-      "action-types_container-action_output": {
+      "action-types_container_container-action_output": {
         "required": [
           "ca-output"
         ],
           "name": "output",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_container-action_output",
+        "title": "action-types_container_container-action_output",
         "type": "object"
       },
-      "action-types_list-action_input": {
+      "action-types_list_list-action_input": {
         "required": [
           "la-input"
         ],
           "name": "input",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_list-action_input",
+        "title": "action-types_list_list-action_input",
         "type": "object"
       },
       "action-types_container": {
         "title": "action-types_container",
         "type": "object"
       },
-      "action-types_list-action_output": {
+      "action-types_list_list-action_output": {
         "required": [
           "la-output"
         ],
           "name": "output",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_list-action_output",
+        "title": "action-types_list_list-action_output",
         "type": "object"
       },
       "operational_root_oper-container_oper-container-list": {
index ae785c2689295c4893e1ada9ff24261b726ae2cc..cc34adf04ab99faaeb9927a1bf873a817e516a0d 100644 (file)
           "content": {
             "application/xml": {
               "schema": {
-                "$ref": "#/components/schemas/action-types_container-action_input"
+                "$ref": "#/components/schemas/action-types_container_container-action_input"
               }
             },
             "application/json": {
               "schema": {
                 "properties": {
                   "input": {
-                    "$ref": "#/components/schemas/action-types_container-action_input",
+                    "$ref": "#/components/schemas/action-types_container_container-action_input",
                     "type": "object"
                   }
                 }
             "content": {
               "application/xml": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_container-action_output"
+                  "$ref": "#/components/schemas/action-types_container_container-action_output"
                 }
               },
               "application/json": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_container-action_output"
+                  "$ref": "#/components/schemas/action-types_container_container-action_output"
                 }
               }
             }
           "content": {
             "application/xml": {
               "schema": {
-                "$ref": "#/components/schemas/action-types_list-action_input"
+                "$ref": "#/components/schemas/action-types_list_list-action_input"
               }
             },
             "application/json": {
               "schema": {
                 "properties": {
                   "input": {
-                    "$ref": "#/components/schemas/action-types_list-action_input",
+                    "$ref": "#/components/schemas/action-types_list_list-action_input",
                     "type": "object"
                   }
                 }
             "content": {
               "application/xml": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_list-action_output"
+                  "$ref": "#/components/schemas/action-types_list_list-action_output"
                 }
               },
               "application/json": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_list-action_output"
+                  "$ref": "#/components/schemas/action-types_list_list-action_output"
                 }
               }
             }
   },
   "components": {
     "schemas": {
-      "action-types_list-action_input": {
+      "action-types_list_list-action_input": {
         "required": [
           "la-input"
         ],
           "name": "input",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_list-action_input",
+        "title": "action-types_list_list-action_input",
         "type": "object"
       },
       "action-types_container": {
         "title": "action-types_multi-container",
         "type": "object"
       },
-      "action-types_list-action_output": {
+      "action-types_list_list-action_output": {
         "required": [
           "la-output"
         ],
           "name": "output",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_list-action_output",
+        "title": "action-types_list_list-action_output",
         "type": "object"
       },
-      "action-types_container-action_input": {
+      "action-types_container_container-action_input": {
         "required": [
           "ca-input"
         ],
           "name": "input",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_container-action_input",
+        "title": "action-types_container_container-action_input",
         "type": "object"
       },
       "action-types_multi-container_inner-container": {
         "title": "action-types_list",
         "type": "object"
       },
-      "action-types_container-action_output": {
+      "action-types_container_container-action_output": {
         "required": [
           "ca-output"
         ],
           "name": "output",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_container-action_output",
+        "title": "action-types_container_container-action_output",
         "type": "object"
       }
     },
index 2b24cee46fd9ebc4577f5c810555c1315a67e153..abe2ec6489d36631296d38ae8334246da0a1e30f 100644 (file)
           "content": {
             "application/xml": {
               "schema": {
-                "$ref": "#/components/schemas/action-types_list-action_input"
+                "$ref": "#/components/schemas/action-types_list_list-action_input"
               }
             },
             "application/json": {
               "schema": {
                 "properties": {
                   "input": {
-                    "$ref": "#/components/schemas/action-types_list-action_input",
+                    "$ref": "#/components/schemas/action-types_list_list-action_input",
                     "type": "object"
                   }
                 }
             "content": {
               "application/xml": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_list-action_output"
+                  "$ref": "#/components/schemas/action-types_list_list-action_output"
                 }
               },
               "application/json": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_list-action_output"
+                  "$ref": "#/components/schemas/action-types_list_list-action_output"
                 }
               }
             }
           "content": {
             "application/xml": {
               "schema": {
-                "$ref": "#/components/schemas/action-types_container-action_input"
+                "$ref": "#/components/schemas/action-types_container_container-action_input"
               }
             },
             "application/json": {
               "schema": {
                 "properties": {
                   "input": {
-                    "$ref": "#/components/schemas/action-types_container-action_input",
+                    "$ref": "#/components/schemas/action-types_container_container-action_input",
                     "type": "object"
                   }
                 }
             "content": {
               "application/xml": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_container-action_output"
+                  "$ref": "#/components/schemas/action-types_container_container-action_output"
                 }
               },
               "application/json": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_container-action_output"
+                  "$ref": "#/components/schemas/action-types_container_container-action_output"
                 }
               }
             }
         "title": "typed-params_typed",
         "type": "object"
       },
-      "action-types_container-action_output": {
+      "action-types_container_container-action_output": {
         "required": [
           "ca-output"
         ],
           "name": "output",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_container-action_output",
+        "title": "action-types_container_container-action_output",
         "type": "object"
       },
       "typed-params_typed_uint32": {
         "title": "typed-params_typed_uint8",
         "type": "object"
       },
-      "action-types_container-action_input": {
+      "action-types_container_container-action_input": {
         "required": [
           "ca-input"
         ],
           "name": "input",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_container-action_input",
+        "title": "action-types_container_container-action_input",
         "type": "object"
       },
       "toaster2_lst_lst1": {
         "title": "typed-params_typed_int8",
         "type": "object"
       },
-      "action-types_list-action_input": {
+      "action-types_list_list-action_input": {
         "required": [
           "la-input"
         ],
           "name": "input",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_list-action_input",
+        "title": "action-types_list_list-action_input",
         "type": "object"
       },
       "recursive_container-root_root-list": {
         "title": "choice-test_first-container",
         "type": "object"
       },
-      "action-types_list-action_output": {
+      "action-types_list_list-action_output": {
         "required": [
           "la-output"
         ],
           "name": "output",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_list-action_output",
+        "title": "action-types_list_list-action_output",
         "type": "object"
       },
       "definition-test_network-container": {
index f15b08a38f31e4d4501c908b994f5d3bfe1d814b..2f8676185c4f52b4f4cc8a61a39960f8e5e9c3cf 100644 (file)
           "content": {
             "application/xml": {
               "schema": {
-                "$ref": "#/components/schemas/action-types_list-action_input"
+                "$ref": "#/components/schemas/action-types_list_list-action_input"
               }
             },
             "application/json": {
               "schema": {
                 "properties": {
                   "input": {
-                    "$ref": "#/components/schemas/action-types_list-action_input",
+                    "$ref": "#/components/schemas/action-types_list_list-action_input",
                     "type": "object"
                   }
                 }
             "content": {
               "application/xml": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_list-action_output"
+                  "$ref": "#/components/schemas/action-types_list_list-action_output"
                 }
               },
               "application/json": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_list-action_output"
+                  "$ref": "#/components/schemas/action-types_list_list-action_output"
                 }
               }
             }
           "content": {
             "application/xml": {
               "schema": {
-                "$ref": "#/components/schemas/action-types_container-action_input"
+                "$ref": "#/components/schemas/action-types_container_container-action_input"
               }
             },
             "application/json": {
               "schema": {
                 "properties": {
                   "input": {
-                    "$ref": "#/components/schemas/action-types_container-action_input",
+                    "$ref": "#/components/schemas/action-types_container_container-action_input",
                     "type": "object"
                   }
                 }
             "content": {
               "application/xml": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_container-action_output"
+                  "$ref": "#/components/schemas/action-types_container_container-action_output"
                 }
               },
               "application/json": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_container-action_output"
+                  "$ref": "#/components/schemas/action-types_container_container-action_output"
                 }
               }
             }
   },
   "components": {
     "schemas": {
-      "action-types_list-action_input": {
+      "action-types_list_list-action_input": {
         "required": [
           "la-input"
         ],
           "name": "input",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_list-action_input",
+        "title": "action-types_list_list-action_input",
         "type": "object"
       },
       "action-types_container": {
         "title": "action-types_multi-container",
         "type": "object"
       },
-      "action-types_list-action_output": {
+      "action-types_list_list-action_output": {
         "required": [
           "la-output"
         ],
           "name": "output",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_list-action_output",
+        "title": "action-types_list_list-action_output",
         "type": "object"
       },
-      "action-types_container-action_input": {
+      "action-types_container_container-action_input": {
         "required": [
           "ca-input"
         ],
           "name": "input",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_container-action_input",
+        "title": "action-types_container_container-action_input",
         "type": "object"
       },
       "action-types_multi-container_inner-container": {
         "title": "action-types_list",
         "type": "object"
       },
-      "action-types_container-action_output": {
+      "action-types_container_container-action_output": {
         "required": [
           "ca-output"
         ],
           "name": "output",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_container-action_output",
+        "title": "action-types_container_container-action_output",
         "type": "object"
       }
     },
index ab1fa05cd2bec68f42b6bbd9607f0e644db43563..d12cf1cd74aa72b2e8c35149b493d7333f1ddf17 100644 (file)
               "schema": {
                 "properties": {
                   "input": {
-                    "$ref": "#/components/schemas/action-types_container-action_input",
+                    "$ref": "#/components/schemas/action-types_container_container-action_input",
                     "type": "object"
                   }
                 }
             },
             "application/xml": {
               "schema": {
-                "$ref": "#/components/schemas/action-types_container-action_input"
+                "$ref": "#/components/schemas/action-types_container_container-action_input"
               }
             }
           }
             "content": {
               "application/json": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_container-action_output"
+                  "$ref": "#/components/schemas/action-types_container_container-action_output"
                 }
               },
               "application/xml": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_container-action_output"
+                  "$ref": "#/components/schemas/action-types_container_container-action_output"
                 }
               }
             }
               "schema": {
                 "properties": {
                   "input": {
-                    "$ref": "#/components/schemas/action-types_list-action_input",
+                    "$ref": "#/components/schemas/action-types_list_list-action_input",
                     "type": "object"
                   }
                 }
             },
             "application/xml": {
               "schema": {
-                "$ref": "#/components/schemas/action-types_list-action_input"
+                "$ref": "#/components/schemas/action-types_list_list-action_input"
               }
             }
           }
             "content": {
               "application/json": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_list-action_output"
+                  "$ref": "#/components/schemas/action-types_list_list-action_output"
                 }
               },
               "application/xml": {
                 "schema": {
-                  "$ref": "#/components/schemas/action-types_list-action_output"
+                  "$ref": "#/components/schemas/action-types_list_list-action_output"
                 }
               }
             }
         "title": "typed-params_typed",
         "type": "object"
       },
-      "action-types_container-action_output": {
+      "action-types_container_container-action_output": {
         "required": [
           "ca-output"
         ],
           "name": "output",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_container-action_output",
+        "title": "action-types_container_container-action_output",
         "type": "object"
       },
       "typed-params_typed_uint32": {
         "title": "typed-params_typed_uint8",
         "type": "object"
       },
-      "action-types_container-action_input": {
+      "action-types_container_container-action_input": {
         "required": [
           "ca-input"
         ],
           "name": "input",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_container-action_input",
+        "title": "action-types_container_container-action_input",
         "type": "object"
       },
       "toaster2_lst_lst1": {
         "title": "typed-params_typed_int8",
         "type": "object"
       },
-      "action-types_list-action_input": {
+      "action-types_list_list-action_input": {
         "required": [
           "la-input"
         ],
           "name": "input",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_list-action_input",
+        "title": "action-types_list_list-action_input",
         "type": "object"
       },
       "recursive_container-root_root-list": {
         "title": "choice-test_first-container",
         "type": "object"
       },
-      "action-types_list-action_output": {
+      "action-types_list_list-action_output": {
         "required": [
           "la-output"
         ],
           "name": "output",
           "namespace": "urn:ietf:params:xml:ns:yang:test:action:types"
         },
-        "title": "action-types_list-action_output",
+        "title": "action-types_list_list-action_output",
         "type": "object"
       },
       "definition-test_network-container": {