remove quake
authorJeremy Mordkoff <Jeremy.Mordkoff@riftio.com>
Thu, 5 May 2016 22:20:41 +0000 (18:20 -0400)
committerJeremy Mordkoff <Jeremy.Mordkoff@riftio.com>
Thu, 5 May 2016 22:20:41 +0000 (18:20 -0400)
Signed-off-by: Jeremy Mordkoff <Jeremy.Mordkoff@riftio.com>
33 files changed:
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/README.md [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/confd2model.js [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/generate-model-meta-json.sh [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/json-nsd.json [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/json-vnfd.json [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/mano-base.yang.src [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/mano-types.yang.src [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/model-meta.json [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/nsd.yang.src [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/nsr.yang.src [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/pnfd.yang.src [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw-nsd.yang.src [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw-nsr.yang.src [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw-pb-ext.yang.src [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw-topology.yang.src [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw-vld.yang.src [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw-vlr.yang.src [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw-vnfd.yang.src [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw-vnfr.yang.src [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw-yang-types.yang.src [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw.nsd-yang.json [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw.vld-yang.json [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw.vnfd-yang.json [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw.vnffgd-yang.json [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rwvcs-types.yang.src [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/src-append.sh [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/src-remove.sh [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/vld.yang.src [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/vlr.yang.src [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/vnfd.yang.src [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/vnffgd.yang.src [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/vnfr.yang.src [deleted file]
modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/yang2json.sh [deleted file]

diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/README.md b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/README.md
deleted file mode 100644 (file)
index 7ef9ba1..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-
-The backend system is managed by CONFD YANG files. These files contain details about what inputs the backend systems accept.
-
-We generate a domain specific language (DSL) in JSON to drive rendering a "model driven" editor in the composer.
-
-
-One Step:
-
-Accomplish the below steps in one script `./generate-model-meta-json.sh`.
-
-If you need to run the steps manually for debugging, etc. Then do the following.
-
-
-Multi Step:
-
-To generate this DSL, we take the following steps:
-
-1. Collect the latest .yang files from the backend code bases and put them into this directory.
-
-2. Run `yang2json.sh`
-
-Requires yangforge to be installed `npm install -g yangforge`
-
-This is brittle and requires removing any dependencies that fail. Usually, mano-types.yang has typedef references that do not have the 'manotype' prefix.
-For example, 'type param-type-value' should be 'type manotypes:param-type-value'.
-
-3. Run `node confd2model.js`
-
-Review output to make sure it looks good.
-
-4. Run `node confd2model.js > ./model-meta.json` 
-
-5. Copy the contents of ./model-meta.json into /webapp/src/libraries/DescriptorModelMeta.json
-
-Verify the composer details editor is working properly.
-
-Note:
-
-The build servers do not like our .yang files so we append .src to the file names.
-
-The yang2json.sh script does this for you now so you don' have to do the following. However, make sure you do not commit
-.yang files because it will break the build.
-
-Before committing these yang files, run `./src-append.sh` to append .src to the .yang files. 
-
-Before running the above steps remove the .src with `./src-remove.sh`.
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/confd2model.js b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/confd2model.js
deleted file mode 100644 (file)
index abe1ad8..0000000
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
- * STANDARD_RIFT_IO_COPYRIGHT
- */
-
-'use strict';
-
-// the models to be transformed into the output DSL JSON meta file
-var yang = [require('./json-nsd.json'), require('./json-vnfd.json')];
-
-var _ = require('lodash');
-var inet = require('./ietf-inet-types.yang.json');
-
-var utils = {
-       resolvePath(obj, path) {
-               // supports a.b, a[1] and foo[bar], etc.
-               // where obj is ['nope', 'yes', {a: {b: 1}, foo: 2}]
-               // then [1] returns 'yes'; [2].a.b returns 1; [2].a[foo] returns 2;
-               path = path.split(/[\.\[\]]/).filter(d => d);
-               return path.reduce((r, p) => {
-                       if (r) {
-                               return r[p];
-                       }
-               }, obj);
-       },
-       assignPathValue(obj, path, value) {
-               path = path.split(/[\.\[\]]/).filter(d => d);
-               // enable look-ahead to determine if type is array or object
-               const pathCopy = path.slice();
-               // last item in path used to assign value on the resolved object
-               const name = path.pop();
-               const resolvedObj = path.reduce((r, p, i) => {
-                       if (typeof(r[p]) !== 'object') {
-                               // look-ahead to see if next path item is a number
-                               const isArray = !isNaN(parseInt(pathCopy[i + 1], 10));
-                               r[p] = isArray ? [] : {}
-                       }
-                       return r[p];
-               }, obj);
-               resolvedObj[name] = value;
-       }
-};
-
-var isType = d => /^(leaf|leaf-list|list|container|choice|case|uses)$/.test(d);
-
-function deriveCardinalityFromProperty(property, typeName) {
-       if (String(property.mandatory) === 'true') {
-               return '1';
-       }
-       let min = 0, max = Infinity;
-       if (property.hasOwnProperty('min-elements')) {
-               min = parseInt(property['min-elements'], 10) || 0;
-       }
-       if (property.hasOwnProperty('max-elements')) {
-               max = parseInt(property['max-elements'], 10) || Infinity;
-       } else {
-               if (!/^(list|leaf-list)$/.test(typeName)) {
-                       max = '1';
-               }
-       }
-       if (min > max) {
-               return String(min);
-       }
-       if (min === max) {
-               return String(min);
-       }
-       return String(min) + '..' + (max === Infinity ? 'N' : max);
-}
-
-function cleanWhitespace(text) {
-       if (typeof text === 'string') {
-               return text.replace(/\s+/g, ' ');
-       }
-       return text;
-}
-
-function buildProperties(typeData, typeName) {
-       var properties = [];
-       Object.keys(typeData).forEach(name => {
-               var property = typeData[name];
-               var listKey = typeName === 'list' ? String(property.key).split(/\s/).filter(k => k && k !== 'undefined') : false;
-               var meta = {
-                       name: name,
-                       type: typeName,
-                       description: cleanWhitespace(property.description),
-                       cardinality: deriveCardinalityFromProperty(property, typeName),
-                       'data-type': property.type,
-                       properties: Object.keys(property).filter(isType).reduce((r, childType) => {
-                               return r.concat(buildProperties(property[childType], childType));
-                       }, [])
-               };
-               if (listKey) {
-                       meta.key = listKey;
-               }
-               properties.push(meta);
-       });
-       return properties;
-}
-
-function lookupUses(uses, yang) {
-       function doLookup(lookupTypeName) {
-               var key;
-               // warn: hardcoded prefix support for mano-types - other prefixes will be ignored
-               if (/^manotypes:/.test(lookupTypeName)) {
-                       var moduleName = lookupTypeName.split(':')[1];
-                       key = ['dependencies.mano-types.module.mano-types.grouping', moduleName].join('.');
-               } else {
-                       var name = yang.name.replace(/^rw-/, '');
-                       key = ['dependencies', name, 'module', name, 'grouping', lookupTypeName].join('.');
-               }
-               return utils.resolvePath(yang, key);
-       }
-       if (typeof uses === 'object') {
-               return Object.keys(uses).reduce((result, key) => {
-                       var found = doLookup(key);
-                       Object.keys(found).filter(isType).forEach(type => {
-                               var property = result[type] || (result[type] = {});
-                               Object.assign(property, found[type]);
-                       });
-                       return result;
-               }, {});
-       } else if (typeof uses === 'string') {
-               return doLookup(uses);
-       }
-       return {};
-}
-
-function lookupTypedef(property, yang) {
-       var key;
-       var lookupTypeName = property.type;
-       // warn: hardcoded prefix support - other prefixes will be ignored
-       if (/^manotypes:/.test(lookupTypeName)) {
-               var lookupName = lookupTypeName.split(':')[1];
-               key = ['dependencies.mano-types.module.mano-types.typedef', lookupName].join('.');
-       } else if (/^inet:/.test(lookupTypeName)) {
-               var lookupName = lookupTypeName.split(':')[1];
-               yang = inet;
-               key = ['schema.module.ietf-inet-types.typedef', lookupName].join('.');
-       }
-       if (key) {
-               return utils.resolvePath(yang, key);
-       }
-}
-
-function resolveUses(property, yang) {
-       var childData = property.uses;
-       var resolved = lookupUses(childData, yang);
-       //console.log('uses', childData, 'found', resolved);
-       Object.keys(resolved).forEach(type => {
-               var parentTypes = property[type] || (property[type] = {});
-               // copy types into the parent types bucket
-               Object.assign(parentTypes, resolveReferences(yang, resolved[type]));
-       });
-       delete property.uses;
-}
-
-function resolveTypedef(property, yang) {
-       if (/:/.test(property.type)) {
-               var found = lookupTypedef(property, yang);
-               if (found) {
-                       Object.assign(property, found);
-               }
-       }
-}
-
-function resolveReferences(yang, data) {
-       var dataClone = _.cloneDeep(data);
-       function doResolve(typeData) {
-               Object.keys(typeData).forEach(name => {
-                       var property = typeData[name];
-                       resolveTypedef(property, yang);
-                       Object.keys(property).filter(isType).forEach(childType => {
-                               if (childType === 'uses') {
-                                       resolveUses(property, yang);
-                               } else {
-                                       doResolve(property[childType]);
-                               }
-                       });
-               });
-       }
-       doResolve(dataClone);
-       return dataClone;
-}
-
-function module(yang) {
-       let module;
-       var name = yang.name.replace(/^rw-/, '');
-       if (!name) {
-               throw 'no name given in json yang';
-       }
-       const path = ['container', name + '-catalog'].join('.');
-       module = utils.resolvePath(yang, path);
-
-       if (!module) {
-               module = utils.resolvePath(yang, ['schema', 'module', name, path].join('.'));
-       }
-       if (!module) {
-               module = utils.resolvePath(yang, ['dependencies', name, 'module', name, path].join('.'));
-       }
-       if (!module) {
-               throw 'cannot find the module' + name;
-       }
-
-       // module/agument/nsd:nsd-catalog/nsd:nsd/meta
-       const augLeafPath = ['schema.module', 'rw-' + name, 'augment', '/' + name + ':' + name + '-catalog/' + name + ':' + name, 'leaf'];
-       const meta = utils.resolvePath(yang, augLeafPath.concat('meta').join('.'));
-
-       const putLeafPath = ['dependencies', name, 'module', name, path, 'list', name, 'leaf'];
-
-       if (meta) {
-               utils.assignPathValue(yang, putLeafPath.concat(['meta']).join('.'), meta);
-       }
-
-       // module/agument/nsd:nsd-catalog/nsd:nsd/logo
-       const logo = utils.resolvePath(yang, augLeafPath.concat('logo').join('.'));
-       if (logo) {
-               utils.assignPathValue(yang, putLeafPath.concat(['logo']).join('.'), logo);
-       }
-       var data = module.list;
-
-       return {name: name, data: resolveReferences(yang, data)};
-
-}
-
-function reduceModule(result, module) {
-       result[module.name] = buildProperties(module.data, 'list')[0];
-       return result;
-}
-
-var result = yang.map(module).reduce(reduceModule, {});
-
-console.log(JSON.stringify(result, null, 5));
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/generate-model-meta-json.sh b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/generate-model-meta-json.sh
deleted file mode 100755 (executable)
index e814ca1..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-# STANDARD_RIFT_IO_COPYRIGHT
-
-./src-remove.sh
-
-./yang2json.sh
-
-./src-append.sh
-
-node confd2model.js >./model-meta.json
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/json-nsd.json b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/json-nsd.json
deleted file mode 100644 (file)
index c8f972f..0000000
+++ /dev/null
@@ -1,4531 +0,0 @@
-{
- "synth": "source",
- "name": "rw-nsd",
- "schema": {
-  "module": {
-   "rw-nsd": {
-    "namespace": "http://riftio.com/ns/riftware-1.0/rw-nsd",
-    "prefix": "rw-nsd",
-    "import": {
-     "nsd": {
-      "prefix": "nsd"
-     },
-     "ietf-yang-types": {
-      "prefix": "yang"
-     },
-     "mano-types": {
-      "prefix": "manotypes"
-     }
-    },
-    "revision": {
-     "2015-09-10": {
-      "description": "Initial revision. This YANG file augments\nthe base MANO NSD",
-      "reference": "Derived from earlier versions of base YANG files"
-     }
-    },
-    "augment": {
-     "/nsd:nsd-catalog/nsd:nsd": {
-      "uses": {},
-      "leaf": {
-       "meta": {
-        "description": "Any meta-data needed by the UI",
-        "type": "string"
-       }
-      },
-      "list": {
-       "control-param": {
-        "description": "List of control parameters to manage and\nupdate the running configuration of the VNF",
-        "key": "id",
-        "leaf": {
-         "id": {
-          "type": "string"
-         },
-         "name": {
-          "type": "string"
-         },
-         "description": {
-          "type": "string"
-         },
-         "group-tag": {
-          "description": "A simple tag to group control parameters",
-          "type": "string"
-         },
-         "min-value": {
-          "description": "Minimum value for the parameter",
-          "type": "uint64"
-         },
-         "max-value": {
-          "description": "Maxium value for the parameter",
-          "type": "uint64"
-         },
-         "current-value": {
-          "description": "Current value for the parameter",
-          "type": "uint64"
-         },
-         "step-value": {
-          "description": "Step value for the parameter",
-          "type": "uint64"
-         },
-         "units": {
-          "type": "string"
-         },
-         "widget-type": {
-          "type": "manotypes:widget-type"
-         },
-         "url": {
-          "description": "This is the URL where to perform the operation",
-          "type": "inet:uri"
-         },
-         "method": {
-          "description": "This is the method to be performed at the uri.\nPOST by default for action",
-          "type": "manotypes:http-method",
-          "default": "POST"
-         },
-         "payload": {
-          "description": "This is the operation payload or payload template as stringified\nJSON. This field provides the data  to be sent for this operation\ncall",
-          "type": "string"
-         }
-        }
-       },
-       "action-param": {
-        "description": "List of action parameters to\ncontrol VNF",
-        "key": "id",
-        "leaf": {
-         "id": {
-          "type": "string"
-         },
-         "name": {
-          "type": "string"
-         },
-         "description": {
-          "type": "string"
-         },
-         "group-tag": {
-          "description": "A simple tag to group monitoring parameter",
-          "type": "string"
-         },
-         "url": {
-          "description": "This is the URL where to perform the operation",
-          "type": "inet:uri"
-         },
-         "method": {
-          "description": "This is the method to be performed at the uri.\nPOST by default for action",
-          "type": "manotypes:http-method",
-          "default": "POST"
-         },
-         "payload": {
-          "description": "This is the operation payload or payload template to be sent in\nthe data for this operation call",
-          "type": "string"
-         }
-        }
-       }
-      }
-     }
-    }
-   }
-  }
- },
- "dependencies": {
-  "nsd": {
-   "module": {
-    "nsd": {
-     "namespace": "urn:ietf:params:xml:ns:yang:nfvo:nsd",
-     "prefix": "nsd",
-     "import": {
-      "rw-pb-ext": {
-       "prefix": "rwpb"
-      },
-      "vld": {
-       "prefix": "vld"
-      },
-      "vnfd": {
-       "prefix": "vnfd"
-      },
-      "ietf-inet-types": {
-       "prefix": "inet"
-      },
-      "ietf-yang-types": {
-       "prefix": "yang"
-      },
-      "mano-types": {
-       "prefix": "manotypes"
-      }
-     },
-     "revision": {
-      "2014-10-27": {
-       "description": "Initial revision. This YANG file defines\nthe Network Service Descriptor (NSD)",
-       "reference": "Derived from earlier versions of base YANG files"
-      }
-     },
-     "typedef": {
-      "scaling-trigger": {
-       "type": {
-        "enumeration": {
-         "enum": {
-          "pre-scale-in": {
-           "value": "1"
-          },
-          "post-scale-in": {
-           "value": "2"
-          },
-          "pre-scale-out": {
-           "value": "3"
-          },
-          "post-scale-out": {
-           "value": "4"
-          }
-         }
-        }
-       }
-      }
-     },
-     "container": {
-      "nsd-catalog": {
-       "list": {
-        "nsd": {
-         "key": "id",
-         "leaf": {
-          "id": {
-           "description": "Identifier for the NSD.",
-           "type": "string"
-          },
-          "name": {
-           "description": "NSD name.",
-           "mandatory": "true",
-           "type": "string"
-          },
-          "short-name": {
-           "description": "NSD short name.",
-           "type": "string"
-          },
-          "vendor": {
-           "description": "Vendor of the NSD.",
-           "type": "string"
-          },
-          "logo": {
-           "description": "File path for  the vendor specific logo. For example icons/mylogo.png.\nThe logo  should be part of the network service",
-           "type": "string"
-          },
-          "description": {
-           "description": "Description of the NSD.",
-           "type": "string"
-          },
-          "version": {
-           "description": "Version of the NSD",
-           "type": "string"
-          }
-         },
-         "list": {
-          "connection-point": {
-           "description": "List for external connection points.\nEach NS has one or more external connection\npoints. As the name implies that external\nconnection points are used for connecting\nthe NS to other NS or to external networks.\nEach NS exposes these connection points to\nthe orchestrator. The orchestrator can\nconstruct network service chains by\nconnecting the connection points between\ndifferent NS.",
-           "key": "name",
-           "leaf": {
-            "name": {
-             "description": "Name of the NS connection point.",
-             "type": "string"
-            },
-            "type": {
-             "description": "Type of the connection point.",
-             "type": "manotypes:connection-point-type"
-            }
-           }
-          },
-          "vld": {
-           "description": "List of Virtual Link Descriptors.",
-           "key": "id",
-           "leaf": {
-            "id": {
-             "description": "Identifier for the VLD.",
-             "type": "string"
-            },
-            "name": {
-             "description": "Virtual Link Descriptor (VLD) name.",
-             "type": "string"
-            },
-            "short-name": {
-             "description": "Short name for VLD for UI",
-             "type": "string"
-            },
-            "vendor": {
-             "description": "Provider of the VLD.",
-             "type": "string"
-            },
-            "description": {
-             "description": "Description of the VLD.",
-             "type": "string"
-            },
-            "version": {
-             "description": "Version of the VLD",
-             "type": "string"
-            },
-            "type": {
-             "type": "manotypes:virtual-link-type"
-            },
-            "root-bandwidth": {
-             "description": "For ELAN this is the aggregate bandwidth.",
-             "type": "uint64"
-            },
-            "leaf-bandwidth": {
-             "description": "For ELAN this is the bandwidth of branches.",
-             "type": "uint64"
-            }
-           },
-           "list": {
-            "vnfd-connection-point-ref": {
-             "description": "A list of references to connection points.",
-             "key": "member-vnf-index-ref",
-             "leaf": {
-              "member-vnf-index-ref": {
-               "description": "Reference to member-vnf within constituent-vnfds",
-               "type": {
-                "leafref": {
-                 "path": "../../../nsd:constituent-vnfd/nsd:member-vnf-index"
-                }
-               }
-              },
-              "vnfd-id-ref": {
-               "description": "A reference to a vnfd. This is a\nleafref to path:\n    ../../../nsd:constituent-vnfd\n    + [nsd:id = current()/../nsd:id-ref]\n    + /nsd:vnfd-id-ref\nNOTE: An issue with confd is preventing the\nuse of xpath. Seems to be an issue with leafref\nto leafref, whose target is in a different module.\nOnce that is resovled this will switched to use\nleafref",
-               "type": "string"
-              },
-              "vnfd-connection-point-ref": {
-               "description": "A reference to a connection point name\nin a vnfd. This is a leafref to path:\n    /vnfd:vnfd-catalog/vnfd:vnfd\n    + [vnfd:id = current()/../nsd:vnfd-id-ref]\n    + /vnfd:connection-point/vnfd:name\nNOTE: An issue with confd is preventing the\nuse of xpath. Seems to be an issue with leafref\nto leafref, whose target is in a different module.\nOnce that is resovled this will switched to use\nleafref",
-               "type": "string"
-              }
-             }
-            }
-           },
-           "uses": "manotypes:provider-network"
-          },
-          "constituent-vnfd": {
-           "description": "List of VNFDs that are part of this\nnetwork service.",
-           "key": "member-vnf-index",
-           "leaf": {
-            "member-vnf-index": {
-             "description": "Identifier/index for the VNFD. This separate id\nis required to ensure that multiple VNFs can be\npart of single NS",
-             "type": "uint64"
-            },
-            "vnfd-id-ref": {
-             "description": "Identifier for the VNFD.",
-             "type": {
-              "leafref": {
-               "path": "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id"
-              }
-             }
-            },
-            "start-by-default": {
-             "description": "VNFD is started as part of the NS instantiation",
-             "type": "boolean",
-             "default": "true"
-            }
-           }
-          },
-          "scaling-group-descriptor": {
-           "description": "scaling group descriptor within this network service.\nThe scaling group defines a group of VNFs,\nand the ratio of VNFs in the network service\nthat is used as target for scaling action",
-           "key": "name",
-           "leaf": {
-            "name": {
-             "description": "Name of this scaling group.",
-             "type": "string"
-            },
-            "min-instance-count": {
-             "description": "Minimum instances of the scaling group which are allowed.\nThese instances are created by default when the network service\nis instantiated.",
-             "type": "uint32",
-             "default": "0"
-            },
-            "max-instance-count": {
-             "description": "Maximum instances of this scaling group that are allowed\nin a single network service. The network service scaling\nwill fail, when the number of service group instances\nexceed the max-instance-count specified.",
-             "type": "uint32",
-             "default": "10"
-            }
-           },
-           "list": {
-            "vnfd-member": {
-             "description": "List of VNFs in this scaling group",
-             "key": "member-vnf-index-ref",
-             "leaf": {
-              "member-vnf-index-ref": {
-               "description": "member VNF index of this member VNF",
-               "type": {
-                "leafref": {
-                 "path": "../../../constituent-vnfd/member-vnf-index"
-                }
-               }
-              },
-              "count": {
-               "description": "count of this member VNF  within this scaling group.\nThe count allows to define  the number of instances\nwhen a scaling action targets this scaling group",
-               "type": "uint32",
-               "default": "1"
-              }
-             }
-            },
-            "scaling-config-action": {
-             "description": "List of scaling config actions",
-             "key": "trigger",
-             "leaf": {
-              "trigger": {
-               "description": "scaling trigger",
-               "type": "scaling-trigger"
-              },
-              "ns-config-primitive-name-ref": {
-               "description": "Reference to the NS config name primitive",
-               "type": {
-                "leafref": {
-                 "path": "../../../config-primitive/name"
-                }
-               }
-              }
-             }
-            }
-           }
-          },
-          "placement-groups": {
-           "description": "List of placement groups at NS level",
-           "key": "name",
-           "uses": "manotypes:placement-group-info",
-           "list": {
-            "constituent-vnfd": {
-             "description": "List of VNFDs that are part of thisplacement group",
-             "key": "member-vnf-index-ref",
-             "leaf": {
-              "member-vnf-index-ref": {
-               "description": "member VNF index of this member VNF",
-               "type": {
-                "leafref": {
-                 "path": "../../../constituent-vnfd/member-vnf-index"
-                }
-               }
-              },
-              "vnfd-id-ref": {
-               "description": "Identifier for the VNFD.",
-               "type": {
-                "leafref": {
-                 "path": "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id"
-                }
-               }
-              }
-             }
-            }
-           }
-          },
-          "vnf-dependency": {
-           "description": "List of VNF dependencies.",
-           "key": "vnf-source-ref",
-           "leaf": {
-            "vnf-source-ref": {
-             "type": {
-              "leafref": {
-               "path": "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id"
-              }
-             }
-            },
-            "vnf-depends-on-ref": {
-             "description": "Reference to VNF that sorce VNF depends.",
-             "type": {
-              "leafref": {
-               "path": "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id"
-              }
-             }
-            }
-           }
-          },
-          "vnffgd": {
-           "description": "List of VNF Forwarding Graph Descriptors (VNFFGD).",
-           "key": "id",
-           "leaf": {
-            "id": {
-             "description": "Identifier for the VNFFGD.",
-             "type": "string"
-            },
-            "name": {
-             "description": "VNFFGD name.",
-             "type": "string"
-            },
-            "short-name": {
-             "description": "Short name for VNFFGD for UI",
-             "type": "string"
-            },
-            "vendor": {
-             "description": "Provider of the VNFFGD.",
-             "type": "string"
-            },
-            "description": {
-             "description": "Description of the VNFFGD.",
-             "type": "string"
-            },
-            "version": {
-             "description": "Version of the VNFFGD",
-             "type": "string"
-            }
-           },
-           "list": {
-            "rsp": {
-             "description": "List of Rendered Service Paths (RSP).",
-             "key": "id",
-             "leaf": {
-              "id": {
-               "description": "Identifier for the RSP.",
-               "type": "string"
-              },
-              "name": {
-               "description": "RSP name.",
-               "type": "string"
-              }
-             },
-             "list": {
-              "vnfd-connection-point-ref": {
-               "description": "A list of references to connection points.",
-               "key": "member-vnf-index-ref",
-               "leaf": {
-                "member-vnf-index-ref": {
-                 "description": "Reference to member-vnf within constituent-vnfds",
-                 "type": {
-                  "leafref": {
-                   "path": "../../../../nsd:constituent-vnfd/nsd:member-vnf-index"
-                  }
-                 }
-                },
-                "order": {
-                 "type": "uint8",
-                 "description": "A number that denotes the order of a VNF in a chain"
-                },
-                "vnfd-id-ref": {
-                 "description": "A reference to a vnfd. This is a\nleafref to path:\n    ../../../../nsd:constituent-vnfd\n    + [nsd:id = current()/../nsd:id-ref]\n    + /nsd:vnfd-id-ref\nNOTE: An issue with confd is preventing the\nuse of xpath. Seems to be an issue with leafref\nto leafref, whose target is in a different module.\nOnce that is resovled this will switched to use\nleafref",
-                 "type": "string"
-                },
-                "vnfd-connection-point-ref": {
-                 "description": "A reference to a connection point name\nin a vnfd. This is a leafref to path:\n    /vnfd:vnfd-catalog/vnfd:vnfd\n    + [vnfd:id = current()/../nsd:vnfd-id-ref]\n    + /vnfd:connection-point/vnfd:name\nNOTE: An issue with confd is preventing the\nuse of xpath. Seems to be an issue with leafref\nto leafref, whose target is in a different module.\nOnce that is resovled this will switched to use\nleafref",
-                 "type": "string"
-                }
-               }
-              }
-             }
-            },
-            "classifier": {
-             "description": "List of classifier rules.",
-             "key": "id",
-             "leaf": {
-              "id": {
-               "description": "Identifier for the classifier rule.",
-               "type": "string"
-              },
-              "name": {
-               "description": "Name of the classifier.",
-               "type": "string"
-              },
-              "rsp-id-ref": {
-               "description": "A reference to the RSP.",
-               "type": {
-                "leafref": {
-                 "path": "../../nsd:rsp/nsd:id"
-                }
-               }
-              },
-              "member-vnf-index-ref": {
-               "description": "Reference to member-vnf within constituent-vnfds",
-               "type": {
-                "leafref": {
-                 "path": "../../../nsd:constituent-vnfd/nsd:member-vnf-index"
-                }
-               }
-              },
-              "vnfd-id-ref": {
-               "description": "A reference to a vnfd. This is a\n   leafref to path:\n       ../../../nsd:constituent-vnfd\n       + [nsd:id = current()/../nsd:id-ref]\n       + /nsd:vnfd-id-ref\n   NOTE: An issue with confd is preventing the\n   use of xpath. Seems to be an issue with leafref\n   to leafref, whose target is in a different module.\n   Once that is resovled this will switched to use\n   leafref",
-               "type": "string"
-              },
-              "vnfd-connection-point-ref": {
-               "description": "A reference to a connection point name\n   in a vnfd. This is a leafref to path:\n       /vnfd:vnfd-catalog/vnfd:vnfd\n       + [vnfd:id = current()/../nsd:vnfd-id-ref]\n       + /vnfd:connection-point/vnfd:name\n   NOTE: An issue with confd is preventing the\n   use of xpath. Seems to be an issue with leafref\n   to leafref, whose target is in a different module.\n   Once that is resovled this will switched to use\n   leafref",
-               "type": "string"
-              }
-             },
-             "list": {
-              "match-attributes": {
-               "description": "List of match attributes.",
-               "key": "id",
-               "leaf": {
-                "id": {
-                 "description": "Identifier for the classifier match attribute rule.",
-                 "type": "string"
-                },
-                "ip-proto": {
-                 "description": "IP Protocol.",
-                 "type": "uint8"
-                },
-                "source-ip-address": {
-                 "description": "Source IP address.",
-                 "type": "inet:ip-address"
-                },
-                "destination-ip-address": {
-                 "description": "Destination IP address.",
-                 "type": "inet:ip-address"
-                },
-                "source-port": {
-                 "description": "Source port number.",
-                 "type": "inet:port-number"
-                },
-                "destination-port": {
-                 "description": "Destination port number.",
-                 "type": "inet:port-number"
-                }
-               }
-              }
-             }
-            }
-           }
-          },
-          "parameter-pool": {
-           "description": "Pool of parameter values which must be\npulled from during configuration",
-           "key": "name",
-           "leaf": {
-            "name": {
-             "description": "Name of the configuration value pool",
-             "type": "string"
-            }
-           },
-           "container": {
-            "range": {
-             "description": "Create a range of values to populate the pool with",
-             "leaf": {
-              "start-value": {
-               "description": "Generated pool values start at this value",
-               "type": "uint32",
-               "mandatory": "true"
-              },
-              "end-value": {
-               "description": "Generated pool values stop at this value",
-               "type": "uint32",
-               "mandatory": "true"
-              }
-             }
-            }
-           }
-          }
-         },
-         "uses": {
-          "manotypes:monitoring-param": null,
-          "manotypes:input-parameter-xpath": null,
-          "manotypes:config-primitive": null
-         }
-        }
-       }
-      }
-     }
-    }
-   }
-  },
-  "rw-pb-ext": {
-   "module": {
-    "rw-pb-ext": {
-     "namespace": "http://riftio.com/ns/riftware-1.0/rw-pb-ext",
-     "prefix": "rwpb",
-     "revision": {
-      "2014-03-28": {
-       "description": "Initial revision.",
-       "reference": "RIFT yang extensions for converting yang files to Google\nProtocol Buffers (protobuf) using rift protoc-c extensions."
-      }
-     }
-    }
-   }
-  },
-  "vld": {
-   "module": {
-    "vld": {
-     "namespace": "urn:ietf:params:xml:ns:yang:nfvo:vld",
-     "prefix": "vld",
-     "import": {
-      "rw-pb-ext": {
-       "prefix": "rwpb"
-      },
-      "vnfd": {
-       "prefix": "vnfd"
-      },
-      "ietf-inet-types": {
-       "prefix": "inet"
-      },
-      "ietf-yang-types": {
-       "prefix": "yang"
-      },
-      "mano-types": {
-       "prefix": "manotypes"
-      }
-     },
-     "revision": {
-      "2015-09-10": {
-       "description": "Initial revision. This YANG file defines\nthe Virtual Link Descriptor (VLD)",
-       "reference": "Derived from earlier versions of base YANG files"
-      }
-     },
-     "container": {
-      "vld-catalog": {
-       "list": {
-        "vld": {
-         "key": "id",
-         "leaf": {
-          "id": {
-           "description": "Identifier for the VLD.",
-           "type": "yang:uuid"
-          },
-          "name": {
-           "description": "Virtual Link Descriptor (VLD) name.",
-           "type": "string"
-          },
-          "short-name": {
-           "description": "Short name for VLD for UI",
-           "type": "string"
-          },
-          "vendor": {
-           "description": "Provider of the VLD.",
-           "type": "string"
-          },
-          "description": {
-           "description": "Description of the VLD.",
-           "type": "string"
-          },
-          "version": {
-           "description": "Version of the VLD",
-           "type": "string"
-          },
-          "type": {
-           "type": "manotypes:virtual-link-type"
-          },
-          "root-bandwidth": {
-           "description": "For ELAN this is the aggregate bandwidth.",
-           "type": "uint64"
-          },
-          "leaf-bandwidth": {
-           "description": "For ELAN this is the bandwidth of branches.",
-           "type": "uint64"
-          }
-         },
-         "list": {
-          "vnfd-connection-point-ref": {
-           "description": "A list of references to connection points.",
-           "key": "vnfd-ref member-vnf-index-ref",
-           "leaf": {
-            "vnfd-ref": {
-             "description": "A reference to a vnfd",
-             "type": {
-              "leafref": {
-               "path": "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id"
-              }
-             }
-            },
-            "member-vnf-index-ref": {
-             "description": "A reference to the consituent-vnfd id in nsd.\nShould have been a leafref to:\n '/nsd:nsd-catalog:/nsd:nsd/constituent-vnfd/member-vnf-index-ref'.\nInstead using direct leaf to avoid circular reference.",
-             "type": "uint64"
-            },
-            "vnfd-connection-point-ref": {
-             "description": "A reference to a connection point name in a vnfd",
-             "type": {
-              "leafref": {
-               "path": "/vnfd:vnfd-catalog/vnfd:vnfd[vnfd:id = current()/../vld:vnfd-ref]/vnfd:connection-point/vnfd:name"
-              }
-             }
-            }
-           }
-          }
-         },
-         "container": {
-          "provider-network": {
-           "description": "Container for the provider network.",
-           "leaf": {
-            "physical-network": {
-             "description": "Name of the phsyical network on which the provider\nnetwork is built.",
-             "type": "string"
-            },
-            "overlay-type": {
-             "description": "Type of the overlay network.",
-             "type": {
-              "enumeration": {
-               "enum": {
-                "LOCAL": {
-                 "value": 0
-                },
-                "FLAT": {
-                 "value": 1
-                },
-                "VLAN": {
-                 "value": 2
-                },
-                "VXLAN": {
-                 "value": 3
-                },
-                "GRE": {
-                 "value": 4
-                }
-               }
-              }
-             }
-            },
-            "segmentation_id": {
-             "description": "Segmentation ID",
-             "type": "uint32"
-            }
-           }
-          }
-         }
-        }
-       }
-      }
-     }
-    }
-   }
-  },
-  "vnfd": {
-   "module": {
-    "vnfd": {
-     "namespace": "urn:ietf:params:xml:ns:yang:nfvo:vnfd",
-     "prefix": "vnfd",
-     "import": {
-      "mano-types": {
-       "prefix": "manotypes"
-      },
-      "rw-pb-ext": {
-       "prefix": "rwpb"
-      },
-      "ietf-yang-types": {
-       "prefix": "yang"
-      },
-      "ietf-inet-types": {
-       "prefix": "inet"
-      }
-     },
-     "revision": {
-      "2015-09-10": {
-       "description": "Initial revision. This YANG file defines\nthe Virtual Network Function (VNF)",
-       "reference": "Derived from earlier versions of base YANG files"
-      }
-     },
-     "grouping": {
-      "common-connection-point": {
-       "leaf": {
-        "name": {
-         "description": "Name of the connection point",
-         "type": "string"
-        },
-        "id": {
-         "description": "Identifier for the internal connection points",
-         "type": "string"
-        },
-        "short-name": {
-         "description": "Short name of the connection point",
-         "type": "string"
-        },
-        "type": {
-         "description": "Type of the connection point.",
-         "type": "manotypes:connection-point-type"
-        }
-       }
-      },
-      "virtual-interface": {
-       "container": {
-        "virtual-interface": {
-         "description": "Container for the virtual interface properties",
-         "leaf": {
-          "type": {
-           "description": "Specifies the type of virtual interface\nbetween VM and host.\nVIRTIO          : Use the traditional VIRTIO interface.\nPCI-PASSTHROUGH : Use PCI-PASSTHROUGH interface.\nSR-IOV          : Use SR-IOV interface.\nOM-MGMT         : Used to specify openmano mgmt external-connection type",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "OM-MGMT": {
-               "value": 0
-              },
-              "PCI-PASSTHROUGH": {
-               "value": 1
-              },
-              "SR-IOV": {
-               "value": 2
-              },
-              "VIRTIO": {
-               "value": 3
-              }
-             }
-            }
-           },
-           "default": "VIRTIO"
-          },
-          "vpci": {
-           "description": "Specifies the virtual PCI address. Expressed in\nthe following format dddd:dd:dd.d. For example\n0000:00:12.0. This information can be used to\npass as metadata during the VM creation.",
-           "type": "string"
-          },
-          "bandwidth": {
-           "description": "Aggregate bandwidth of the NIC.",
-           "type": "uint64"
-          }
-         }
-        }
-       }
-      }
-     },
-     "container": {
-      "vnfd-catalog": {
-       "description": "Virtual Network Function Descriptor (VNFD).",
-       "list": {
-        "vnfd": {
-         "key": "id",
-         "leaf": {
-          "id": {
-           "description": "Identifier for the VNFD.",
-           "type": "string"
-          },
-          "name": {
-           "description": "VNFD name.",
-           "mandatory": true,
-           "type": "string"
-          },
-          "short-name": {
-           "description": "VNFD short name.",
-           "type": "string"
-          },
-          "vendor": {
-           "description": "Vendor of the VNFD.",
-           "type": "string"
-          },
-          "logo": {
-           "description": "Vendor logo for the Virtual Network Function",
-           "type": "string"
-          },
-          "description": {
-           "description": "Description of the VNFD.",
-           "type": "string"
-          },
-          "version": {
-           "description": "Version of the VNFD",
-           "type": "string"
-          },
-          "service-function-chain": {
-           "description": "Type of node in Service Function Chaining Architecture",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "UNAWARE": {
-               "value": 0
-              },
-              "CLASSIFIER": {
-               "value": 1
-              },
-              "SF": {
-               "value": 2
-              },
-              "SFF": {
-               "value": 3
-              }
-             }
-            }
-           },
-           "default": "UNAWARE"
-          },
-          "service-function-type": {
-           "description": "Type of Service Function.\nNOTE: This needs to map with Service Function Type in ODL to\nsupport VNFFG. Service Function Type is manadatory param in ODL\nSFC. This is temporarily set to string for ease of use",
-           "type": "string"
-          }
-         },
-         "container": {
-          "mgmt-interface": {
-           "description": "Interface over which the VNF is managed.",
-           "choice": {
-            "endpoint-type": {
-             "description": "Indicates the type of management endpoint.",
-             "case": {
-              "ip": {
-               "description": "Specifies the static IP address for managing the VNF.",
-               "leaf": {
-                "ip-address": {
-                 "type": "inet:ip-address"
-                }
-               }
-              },
-              "vdu-id": {
-               "description": "Use the default management interface on this VDU.",
-               "leaf": {
-                "vdu-id": {
-                 "type": {
-                  "leafref": {
-                   "path": "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:vdu/vnfd:id"
-                  }
-                 }
-                }
-               }
-              },
-              "cp": {
-               "description": "Use the ip address associated with this connection point.",
-               "leaf": {
-                "cp": {
-                 "type": {
-                  "leafref": {
-                   "path": "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:connection-point/vnfd:name"
-                  }
-                 }
-                }
-               }
-              }
-             }
-            }
-           },
-           "leaf": {
-            "port": {
-             "description": "Port for the management interface.",
-             "type": "inet:port-number"
-            }
-           },
-           "container": {
-            "dashboard-params": {
-             "description": "Parameters for the VNF dashboard",
-             "leaf": {
-              "path": {
-               "description": "The HTTP path for the dashboard",
-               "type": "string"
-              },
-              "https": {
-               "description": "Pick HTTPS instead of HTTP , Default is false",
-               "type": "boolean"
-              },
-              "port": {
-               "description": "The HTTP port for the dashboard",
-               "type": "inet:port-number"
-              }
-             }
-            },
-            "vnf-configuration": {
-             "description": "Information regarding the VNF configuration\nis captured here. ",
-             "choice": {
-              "config-method": {
-               "description": "Defines the configuration method for the VNF.",
-               "case": {
-                "netconf": {
-                 "description": "Use NETCONF for configuring the VNF.",
-                 "container": {
-                  "netconf": {
-                   "leaf": {
-                    "target": {
-                     "description": "Netconf configuration target",
-                     "type": {
-                      "enumeration": {
-                       "enum": {
-                        "running": {
-                         "value": 0
-                        },
-                        "candidate": {
-                         "value": 1
-                        }
-                       }
-                      }
-                     }
-                    },
-                    "protocol": {
-                     "description": "Protocol to use for netconf (e.g. ssh)",
-                     "type": {
-                      "enumeration": {
-                       "enum": {
-                        "None": {
-                         "value": 0
-                        },
-                        "ssh": {
-                         "value": 1
-                        }
-                       }
-                      }
-                     }
-                    },
-                    "port": {
-                     "description": "Port for the netconf server.",
-                     "type": "inet:port-number"
-                    }
-                   }
-                  }
-                 }
-                },
-                "rest": {
-                 "description": "Use REST for configuring the VNF.",
-                 "container": {
-                  "rest": {
-                   "leaf": {
-                    "port": {
-                     "description": "Port for the REST server.",
-                     "type": "inet:port-number"
-                    }
-                   }
-                  }
-                 }
-                },
-                "script": {
-                 "description": "Use custom script for configuring the VNF.\nThis script is executed in the context of\nOrchestrator.",
-                 "container": {
-                  "script": {
-                   "leaf": {
-                    "script-type": {
-                     "description": "Script type - currently supported : bash, expect",
-                     "type": {
-                      "enumeration": {
-                       "enum": {
-                        "bash": {
-                         "value": 0
-                        },
-                        "expect": {
-                         "value": 1
-                        }
-                       }
-                      }
-                     }
-                    }
-                   }
-                  }
-                 }
-                },
-                "juju": {
-                 "description": "Configure the VNF through Juju.",
-                 "container": {
-                  "juju": {
-                   "leaf": {
-                    "charm": {
-                     "description": "Juju charm to use with the VNF.",
-                     "type": "string"
-                    }
-                   }
-                  }
-                 }
-                }
-               }
-              }
-             },
-             "container": {
-              "config-access": {
-               "leaf": {
-                "mgmt-ip-address": {
-                 "description": "IP address to be used to configure this VNF,\noptional if it is possible to resolve dynamically.",
-                 "type": "inet:ip-address"
-                },
-                "username": {
-                 "description": "username for configuration.",
-                 "type": "string"
-                },
-                "password": {
-                 "description": "Password for configuration access authentication.",
-                 "type": "string"
-                }
-               }
-              },
-              "config-attributes": {
-               "description": "Miscelaneous input parameters to be considered\nwhile processing the NSD to apply configuration",
-               "leaf": {
-                "config-priority": {
-                 "description": "Configuration priority - order of confgiration\nto be applied to each VNF in this NS,\nlow number gets precedence over high number",
-                 "type": "uint64"
-                },
-                "config-delay": {
-                 "description": "Wait (seconds) before applying the configuration to VNF",
-                 "type": "uint64"
-                }
-               }
-              }
-             },
-             "list": {
-              "config-primitive": {
-               "description": "List of configuration primitives supported by the\nconfiguration agent for this VNF.",
-               "key": "name",
-               "leaf": {
-                "name": {
-                 "description": "Name of the configuration primitive.",
-                 "type": "string"
-                }
-               },
-               "list": {
-                "parameter": {
-                 "description": "List of parameters to the configuration primitive.",
-                 "key": "name",
-                 "leaf": {
-                  "name": {
-                   "description": "Name of the parameter.",
-                   "type": "string"
-                  },
-                  "data-type": {
-                   "description": "Data type associated with the name.",
-                   "type": "manotypes:parameter-data-type"
-                  },
-                  "mandatory": {
-                   "description": "Is this field mandatory",
-                   "type": "boolean",
-                   "default": "false"
-                  },
-                  "default-value": {
-                   "description": "The default value for this field",
-                   "type": "string"
-                  },
-                  "parameter-pool": {
-                   "description": "NSD Parameter pool name to use for this paramter",
-                   "type": "string"
-                  },
-                  "read-only": {
-                   "description": "The value should be greyed out by the UI.\nOnly applies to parameters with default values.",
-                   "type": "boolean"
-                  },
-                  "hidden": {
-                   "description": "The value should be hidden by the UI.\nOnly applies to parameters with default values.",
-                   "type": "boolean"
-                  }
-                 }
-                }
-               }
-              },
-              "initial-config-primitive": {
-               "description": "Initial set of configuration primitives.",
-               "key": "seq",
-               "leaf": {
-                "seq": {
-                 "description": "Sequence number for the configuration primitive.",
-                 "type": "uint64"
-                },
-                "name": {
-                 "description": "Name of the configuration primitive.",
-                 "type": "string"
-                }
-               },
-               "list": {
-                "parameter": {
-                 "key": "name",
-                 "leaf": {
-                  "name": {
-                   "type": "string"
-                  },
-                  "value": {
-                   "type": "string"
-                  }
-                 }
-                }
-               }
-              }
-             },
-             "leaf": {
-              "config-template": {
-               "description": "Configuration template for each VNF",
-               "type": "string"
-              }
-             }
-            }
-           }
-          }
-         },
-         "list": {
-          "internal-vld": {
-           "key": "id",
-           "description": "List of Internal Virtual Link Descriptors (VLD).\nThe internal VLD describes the basic topology of\nthe connectivity (e.g. E-LAN, E-Line, E-Tree)\nbetween internal VNF components of the system.",
-           "leaf": {
-            "id": {
-             "description": "Identifier for the VLD",
-             "type": "string"
-            },
-            "name": {
-             "description": "Name of the internal VLD",
-             "type": "string"
-            },
-            "short-name": {
-             "description": "Short name of the internal VLD",
-             "type": "string"
-            },
-            "description": {
-             "type": "string"
-            },
-            "type": {
-             "type": "manotypes:virtual-link-type"
-            },
-            "root-bandwidth": {
-             "description": "For ELAN this is the aggregate bandwidth.",
-             "type": "uint64"
-            },
-            "leaf-bandwidth": {
-             "description": "For ELAN this is the bandwidth of branches.",
-             "type": "uint64"
-            }
-           },
-           "leaf-list": {
-            "internal-connection-point-ref": {
-             "type": {
-              "leafref": {
-               "path": "../../vdu/internal-connection-point/id"
-              }
-             }
-            }
-           },
-           "container": {
-            "provider-network": {
-             "description": "Container for the provider network.",
-             "leaf": {
-              "physical-network": {
-               "description": "Name of the phsyical network on which the provider\nnetwork is built.",
-               "type": "string"
-              },
-              "overlay-type": {
-               "description": "Type of the overlay network.",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "LOCAL": {
-                   "value": 0
-                  },
-                  "FLAT": {
-                   "value": 1
-                  },
-                  "VLAN": {
-                   "value": 2
-                  },
-                  "VXLAN": {
-                   "value": 3
-                  },
-                  "GRE": {
-                   "value": 4
-                  }
-                 }
-                }
-               }
-              },
-              "segmentation_id": {
-               "description": "Segmentation ID",
-               "type": "uint32"
-              }
-             }
-            }
-           }
-          },
-          "connection-point": {
-           "key": "name",
-           "description": "List for external connection points. Each VNF has one\nor more external connection points. As the name\nimplies that external connection points are used for\nconnecting the VNF to other VNFs or to external networks.\nEach VNF exposes these connection points to the\norchestrator. The orchestrator can construct network\nservices by connecting the connection points between\ndifferent VNFs. The NFVO will use VLDs and VNFFGs at\nthe network service level to construct network services.",
-           "leaf": {
-            "name": {
-             "description": "Name of the connection point",
-             "type": "string"
-            },
-            "id": {
-             "description": "Identifier for the internal connection points",
-             "type": "string"
-            },
-            "short-name": {
-             "description": "Short name of the connection point",
-             "type": "string"
-            },
-            "type": {
-             "description": "Type of the connection point.",
-             "type": "manotypes:connection-point-type"
-            }
-           }
-          },
-          "vdu": {
-           "description": "List of Virtual Deployment Units",
-           "key": "id",
-           "leaf": {
-            "id": {
-             "description": "Unique id for the VDU",
-             "type": "string"
-            },
-            "name": {
-             "description": "Unique name for the VDU",
-             "type": "string"
-            },
-            "description": {
-             "description": "Description of the VDU.",
-             "type": "string"
-            },
-            "count": {
-             "description": "Number of instances of VDU",
-             "type": "uint64"
-            },
-            "mgmt-vpci": {
-             "description": "Specifies the virtual PCI address. Expressed in\nthe following format dddd:dd:dd.d. For example\n0000:00:12.0. This information can be used to\npass as metadata during the VM creation.",
-             "type": "string"
-            },
-            "image": {
-             "description": "Image name for the software image.\nIf the image name is found within the VNF packaage it will\nbe uploaded to all cloud accounts during onboarding process.\nOtherwise, the image must be added to the cloud account with\nthe same name as entered here.\n",
-             "mandatory": true,
-             "type": "string"
-            },
-            "image-checksum": {
-             "description": "Image md5sum for the software image.\nThe md5sum, if provided, along with the image name uniquely\nidentifies an image uploaded to the CAL.\n",
-             "type": "string"
-            },
-            "cloud-init": {
-             "description": "Content of cloud-init script",
-             "type": "string"
-            }
-           },
-           "uses": {},
-           "list": {
-            "internal-connection-point": {
-             "key": "id",
-             "description": "List for internal connection points. Each VNFC\nhas zero or more internal connection points.\nInternal connection points are used for connecting\nthe VNF components internal to the VNF. If a VNF\nhas only one VNFC, it may not have any internal\nconnection points.",
-             "leaf": {
-              "internal-vld-ref": {
-               "type": {
-                "leafref": {
-                 "path": "../../../internal-vld/id"
-                }
-               }
-              },
-              "name": {
-               "description": "Name of the connection point",
-               "type": "string"
-              },
-              "id": {
-               "description": "Identifier for the internal connection points",
-               "type": "string"
-              },
-              "short-name": {
-               "description": "Short name of the connection point",
-               "type": "string"
-              },
-              "type": {
-               "description": "Type of the connection point.",
-               "type": "manotypes:connection-point-type"
-              }
-             }
-            },
-            "internal-interface": {
-             "description": "List of internal interfaces for the VNF",
-             "key": "name",
-             "leaf": {
-              "name": {
-               "description": "Name of internal interface. Note that this\nname has only local significance to the VDU.",
-               "type": "string"
-              },
-              "vdu-internal-connection-point-ref": {
-               "type": {
-                "leafref": {
-                 "path": "../../internal-connection-point/id"
-                }
-               }
-              }
-             },
-             "container": {
-              "virtual-interface": {
-               "description": "Container for the virtual interface properties",
-               "leaf": {
-                "type": {
-                 "description": "Specifies the type of virtual interface\nbetween VM and host.\nVIRTIO          : Use the traditional VIRTIO interface.\nPCI-PASSTHROUGH : Use PCI-PASSTHROUGH interface.\nSR-IOV          : Use SR-IOV interface.\nOM-MGMT         : Used to specify openmano mgmt external-connection type",
-                 "type": {
-                  "enumeration": {
-                   "enum": {
-                    "OM-MGMT": {
-                     "value": 0
-                    },
-                    "PCI-PASSTHROUGH": {
-                     "value": 1
-                    },
-                    "SR-IOV": {
-                     "value": 2
-                    },
-                    "VIRTIO": {
-                     "value": 3
-                    }
-                   }
-                  }
-                 },
-                 "default": "VIRTIO"
-                },
-                "vpci": {
-                 "description": "Specifies the virtual PCI address. Expressed in\nthe following format dddd:dd:dd.d. For example\n0000:00:12.0. This information can be used to\npass as metadata during the VM creation.",
-                 "type": "string"
-                },
-                "bandwidth": {
-                 "description": "Aggregate bandwidth of the NIC.",
-                 "type": "uint64"
-                }
-               }
-              }
-             }
-            },
-            "external-interface": {
-             "description": "List of external interfaces for the VNF.\nThe external interfaces enable sending\ntraffic to and from VNF.",
-             "key": "name",
-             "leaf": {
-              "name": {
-               "description": "Name of the external interface. Note that\nthis name has only local significance.",
-               "type": "string"
-              },
-              "vnfd-connection-point-ref": {
-               "description": "Name of the external connection point.",
-               "type": {
-                "leafref": {
-                 "path": "../../../connection-point/name"
-                }
-               }
-              }
-             },
-             "container": {
-              "virtual-interface": {
-               "description": "Container for the virtual interface properties",
-               "leaf": {
-                "type": {
-                 "description": "Specifies the type of virtual interface\nbetween VM and host.\nVIRTIO          : Use the traditional VIRTIO interface.\nPCI-PASSTHROUGH : Use PCI-PASSTHROUGH interface.\nSR-IOV          : Use SR-IOV interface.\nOM-MGMT         : Used to specify openmano mgmt external-connection type",
-                 "type": {
-                  "enumeration": {
-                   "enum": {
-                    "OM-MGMT": {
-                     "value": 0
-                    },
-                    "PCI-PASSTHROUGH": {
-                     "value": 1
-                    },
-                    "SR-IOV": {
-                     "value": 2
-                    },
-                    "VIRTIO": {
-                     "value": 3
-                    }
-                   }
-                  }
-                 },
-                 "default": "VIRTIO"
-                },
-                "vpci": {
-                 "description": "Specifies the virtual PCI address. Expressed in\nthe following format dddd:dd:dd.d. For example\n0000:00:12.0. This information can be used to\npass as metadata during the VM creation.",
-                 "type": "string"
-                },
-                "bandwidth": {
-                 "description": "Aggregate bandwidth of the NIC.",
-                 "type": "uint64"
-                }
-               }
-              }
-             }
-            }
-           },
-           "container": {
-            "vm-flavor": {
-             "leaf": {
-              "vcpu-count": {
-               "description": "Number of vcpus for the VM.",
-               "type": "uint16"
-              },
-              "memory-mb": {
-               "description": "Amount of memory in MB.",
-               "type": "uint64"
-              },
-              "storage-gb": {
-               "description": "Amount of disk space in GB.",
-               "type": "uint64"
-              }
-             }
-            },
-            "guest-epa": {
-             "leaf": {
-              "trusted-execution": {
-               "description": "This VM should be allocated from trusted pool",
-               "type": "boolean"
-              },
-              "mempage-size": {
-               "description": "Memory page allocation size. If a VM requires\nhugepages, it should choose LARGE or SIZE_2MB\nor SIZE_1GB. If the VM prefers hugepages it\nshould chose PREFER_LARGE.\nLARGE        : Require hugepages (either 2MB or 1GB)\nSMALL        : Doesn't require hugepages\nSIZE_2MB     : Requires 2MB hugepages\nSIZE_1GB     : Requires 1GB hugepages\nPREFER_LARGE : Application perfers hugepages",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "LARGE": {
-                   "value": 0
-                  },
-                  "SMALL": {
-                   "value": 1
-                  },
-                  "SIZE_2MB": {
-                   "value": 2
-                  },
-                  "SIZE_1GB": {
-                   "value": 3
-                  },
-                  "PREFER_LARGE": {
-                   "value": 4
-                  }
-                 }
-                }
-               }
-              },
-              "cpu-pinning-policy": {
-               "description": "CPU pinning policy describes association\nbetween virtual CPUs in guest and the\nphysical CPUs in the host.\nDEDICATED : Virtual CPUs are pinned to\n            physical CPUs\nSHARED    : Multiple VMs may share the\n            same physical CPUs.\nANY       : Any policy is acceptable for the VM",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "DEDICATED": {
-                   "value": 0
-                  },
-                  "SHARED": {
-                   "value": 1
-                  },
-                  "ANY": {
-                   "value": 2
-                  }
-                 }
-                }
-               },
-               "default": "ANY"
-              },
-              "cpu-thread-pinning-policy": {
-               "description": "CPU thread pinning policy describes how to\nplace the guest CPUs when the host supports\nhyper threads:\nAVOID   : Avoids placing a guest on a host\n          with threads.\nSEPARATE: Places vCPUs on separate cores,\n          and avoids placing two vCPUs on\n          two threads of same core.\nISOLATE : Places each vCPU on a different core,\n          and places no vCPUs from a different\n          guest on the same core.\nPREFER  : Attempts to place vCPUs on threads\n          of the same core.",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "AVOID": {
-                   "value": 0
-                  },
-                  "SEPARATE": {
-                   "value": 1
-                  },
-                  "ISOLATE": {
-                   "value": 2
-                  },
-                  "PREFER": {
-                   "value": 3
-                  }
-                 }
-                }
-               }
-              }
-             },
-             "list": {
-              "pcie-device": {
-               "description": "List of pcie passthrough devices.",
-               "key": "device-id",
-               "leaf": {
-                "device-id": {
-                 "description": "Device identifier.",
-                 "type": "string"
-                },
-                "count": {
-                 "description": "Number of devices to attach to the VM.",
-                 "type": "uint64"
-                }
-               }
-              }
-             },
-             "choice": {
-              "numa-policy": {
-               "case": {
-                "numa-unware": {
-                 "leaf": {
-                  "numa-unware": {
-                   "type": "empty"
-                  }
-                 }
-                },
-                "numa-aware": {
-                 "container": {
-                  "numa-node-policy": {
-                   "description": "This policy defines numa topology of the\nguest. Specifically identifies if the guest\nshould be run on a host with one numa\nnode or multiple numa nodes. As an example\na guest may want 8 vcpus and 4 GB of\nmemory. But may want the vcpus and memory\ndistributed across multiple numa nodes.\nThe NUMA node 1 may run with 6 vcpus and\n3GB, and NUMA node 2 may run with 2 vcpus\nand 1GB.",
-                   "leaf": {
-                    "node-cnt": {
-                     "description": "The number of numa nodes to expose to the VM.",
-                     "type": "uint16"
-                    },
-                    "mem-policy": {
-                     "description": "This policy specifies how the memory should\nbe allocated in a multi-node scenario.\nSTRICT    : The memory must be allocated\n            strictly from the memory attached\n            to the NUMA node.\nPREFERRED : The memory should be allocated\n            perferentially from the memory\n            attached to the NUMA node",
-                     "type": {
-                      "enumeration": {
-                       "enum": {
-                        "STRICT": {
-                         "value": 0
-                        },
-                        "PREFERRED": {
-                         "value": 1
-                        }
-                       }
-                      }
-                     }
-                    }
-                   },
-                   "list": {
-                    "node": {
-                     "key": "id",
-                     "leaf": {
-                      "id": {
-                       "description": "NUMA node identification. Typically\nit's 0 or 1",
-                       "type": "uint64"
-                      },
-                      "memory-mb": {
-                       "description": "Memory size expressed in MB\nfor this NUMA node.",
-                       "type": "uint64"
-                      }
-                     },
-                     "leaf-list": {
-                      "vcpu": {
-                       "description": "List of vcpus to allocate on\nthis numa node.",
-                       "type": "uint64"
-                      }
-                     },
-                     "choice": {
-                      "om-numa-type": {
-                       "description": "Openmano Numa type selection",
-                       "case": {
-                        "cores": {
-                         "leaf": {
-                          "num-cores": {
-                           "type": "uint8"
-                          }
-                         }
-                        },
-                        "paired-threads": {
-                         "container": {
-                          "paired-threads": {
-                           "leaf": {
-                            "num-paired-threads": {
-                             "type": "uint8"
-                            }
-                           },
-                           "list": {
-                            "paired-thread-ids": {
-                             "description": "List of thread pairs to use in case of paired-thread numa",
-                             "max-elements": 16,
-                             "key": "thread-a",
-                             "leaf": {
-                              "thread-a": {
-                               "type": "uint8"
-                              },
-                              "thread-b": {
-                               "type": "uint8"
-                              }
-                             }
-                            }
-                           }
-                          }
-                         }
-                        },
-                        "threads": {
-                         "leaf": {
-                          "num-threads": {
-                           "type": "uint8"
-                          }
-                         }
-                        }
-                       }
-                      }
-                     }
-                    }
-                   }
-                  }
-                 }
-                }
-               }
-              }
-             }
-            },
-            "vswitch-epa": {
-             "leaf": {
-              "ovs-acceleration": {
-               "description": "Specifies Open vSwitch acceleration mode.\nMANDATORY: OVS acceleration is required\nPREFERRED: OVS acceleration is preferred",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "MANDATORY": {
-                   "value": 0
-                  },
-                  "PREFERRED": {
-                   "value": 1
-                  },
-                  "DISABLED": {
-                   "value": 2
-                  }
-                 }
-                }
-               }
-              },
-              "ovs-offload": {
-               "description": "Specifies Open vSwitch hardware offload mode.\nMANDATORY: OVS offload is required\nPREFERRED: OVS offload is preferred",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "MANDATORY": {
-                   "value": 0
-                  },
-                  "PREFERRED": {
-                   "value": 1
-                  },
-                  "DISABLED": {
-                   "value": 2
-                  }
-                 }
-                }
-               }
-              }
-             }
-            },
-            "hypervisor-epa": {
-             "leaf": {
-              "type": {
-               "description": "Specifies the type of hypervisor.\nKVM: KVM\nXEN: XEN",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "PREFER_KVM": {
-                   "value": 0
-                  },
-                  "REQUIRE_KVM": {
-                   "value": 1
-                  }
-                 }
-                }
-               }
-              },
-              "version": {
-               "type": "string"
-              }
-             }
-            },
-            "host-epa": {
-             "description": "Specifies the host level EPA attributes.",
-             "leaf": {
-              "cpu-model": {
-               "description": "Host CPU model. Examples include: SandyBridge,\nIvyBridge",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "PREFER_WESTMERE": {
-                   "value": 0
-                  },
-                  "REQUIRE_WESTMERE": {
-                   "value": 1
-                  },
-                  "PREFER_SANDYBRIDGE": {
-                   "value": 2
-                  },
-                  "REQUIRE_SANDYBRIDGE": {
-                   "value": 3
-                  },
-                  "PREFER_IVYBRIDGE": {
-                   "value": 4
-                  },
-                  "REQUIRE_IVYBRIDGE": {
-                   "value": 5
-                  },
-                  "PREFER_HASWELL": {
-                   "value": 6
-                  },
-                  "REQUIRE_HASWELL": {
-                   "value": 7
-                  },
-                  "PREFER_BROADWELL": {
-                   "value": 8
-                  },
-                  "REQUIRE_BROADWELL": {
-                   "value": 9
-                  },
-                  "PREFER_NEHALEM": {
-                   "value": 10
-                  },
-                  "REQUIRE_NEHALEM": {
-                   "value": 11
-                  },
-                  "PREFER_PENRYN": {
-                   "value": 12
-                  },
-                  "REQUIRE_PENRYN": {
-                   "value": 13
-                  },
-                  "PREFER_CONROE": {
-                   "value": 14
-                  },
-                  "REQUIRE_CONROE": {
-                   "value": 15
-                  },
-                  "PREFER_CORE2DUO": {
-                   "value": 16
-                  },
-                  "REQUIRE_CORE2DUO": {
-                   "value": 17
-                  }
-                 }
-                }
-               }
-              },
-              "cpu-arch": {
-               "description": "Host CPU architecture.",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "PREFER_X86": {
-                   "value": 0
-                  },
-                  "REQUIRE_X86": {
-                   "value": 1
-                  },
-                  "PREFER_X86_64": {
-                   "value": 2
-                  },
-                  "REQUIRE_X86_64": {
-                   "value": 3
-                  },
-                  "PREFER_I686": {
-                   "value": 4
-                  },
-                  "REQUIRE_I686": {
-                   "value": 5
-                  },
-                  "PREFER_IA64": {
-                   "value": 6
-                  },
-                  "REQUIRE_IA64": {
-                   "value": 7
-                  },
-                  "PREFER_ARMV7": {
-                   "value": 8
-                  },
-                  "REQUIRE_ARMV7": {
-                   "value": 9
-                  },
-                  "PREFER_ARMV8": {
-                   "value": 10
-                  },
-                  "REQUIRE_ARMV8": {
-                   "value": 11
-                  }
-                 }
-                }
-               }
-              },
-              "cpu-vendor": {
-               "description": "Host CPU Vendor.",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "PREFER_INTEL": {
-                   "value": 0
-                  },
-                  "REQUIRE_INTEL": {
-                   "value": 1
-                  },
-                  "PREFER_AMD": {
-                   "value": 2
-                  },
-                  "REQUIRE_AMD": {
-                   "value": 3
-                  }
-                 }
-                }
-               }
-              },
-              "cpu-socket-count": {
-               "description": "Number of sockets on the host.",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "PREFER_ONE": {
-                   "value": 0
-                  },
-                  "PREFER_TWO": {
-                   "value": 1
-                  },
-                  "REQUIRE_ONE": {
-                   "value": 2
-                  },
-                  "REQUIRE_TWO": {
-                   "value": 3
-                  }
-                 }
-                }
-               }
-              },
-              "cpu-core-count": {
-               "description": "Number of cores on the host.",
-               "type": "uint64"
-              },
-              "om-cpu-model-string": {
-               "description": "Openmano CPU model string",
-               "type": "string"
-              }
-             },
-             "leaf-list": {
-              "cpu-feature": {
-               "description": "List of CPU features.",
-               "type": "manotypes:cpu-feature-type"
-              },
-              "om-cpu-feature": {
-               "description": "Openmano CPU features",
-               "type": "string"
-              }
-             }
-            }
-           }
-          },
-          "vdu-dependency": {
-           "description": "List of VDU dependencies.",
-           "key": "vdu-source-ref",
-           "leaf": {
-            "vdu-source-ref": {
-             "type": {
-              "leafref": {
-               "path": "../../vdu/id"
-              }
-             }
-            },
-            "vdu-depends-on-ref": {
-             "description": "Reference to the VDU that\nsource VDU depends.",
-             "type": {
-              "leafref": {
-               "path": "../../vdu/id"
-              }
-             }
-            }
-           }
-          },
-          "placement-groups": {
-           "description": "List of placement groups at VNF level",
-           "key": "name",
-           "list": {
-            "constituent-vdus": {
-             "description": "List of VDUs that are part of this placement group",
-             "key": "member-vdu-ref",
-             "leaf": {
-              "member-vdu-ref": {
-               "type": {
-                "leafref": {
-                 "path": "../../../vdu/id"
-                }
-               }
-              }
-             }
-            }
-           },
-           "leaf": {
-            "name": {
-             "description": "Place group construct to define the compute resource placement strategy\nin cloud environment",
-             "type": "string"
-            },
-            "requirement": {
-             "description": "This is free text space used to describe the intent/rationale\nbehind this placement group. This is for human consumption only",
-             "type": "string"
-            },
-            "strategy": {
-             "description": "Strategy associated with this placement group\n  Following values are possible\n    - COLOCATION: Colocation strategy imply intent to share the physical\n                  infrastructure (hypervisor/network) among all members\n                  of this group.\n    - ISOLATION: Isolation strategy imply intent to not share the physical\n                 infrastructure (hypervisor/network) among the members\n                 of this group.\n  ",
-             "type": {
-              "enumeration": {
-               "enum": {
-                "COLOCATION": {
-                 "value": 0
-                },
-                "ISOLATION": {
-                 "value": 1
-                }
-               }
-              }
-             },
-             "default": "COLOCATION"
-            }
-           }
-          },
-          "http-endpoint": {
-           "description": "List of http endpoints to be used by monitoring params",
-           "key": "path",
-           "leaf": {
-            "path": {
-             "description": "The HTTP path on the management server",
-             "type": "string"
-            },
-            "https": {
-             "description": "Pick HTTPS instead of HTTP , Default is false",
-             "type": "boolean",
-             "default": "false"
-            },
-            "port": {
-             "description": "The HTTP port to connect to",
-             "type": "inet:port-number"
-            },
-            "username": {
-             "description": "The HTTP basic auth username",
-             "type": "string"
-            },
-            "password": {
-             "description": "The HTTP basic auth password",
-             "type": "string"
-            },
-            "polling_interval_secs": {
-             "description": "The HTTP polling interval in seconds",
-             "type": "uint8",
-             "default": "2"
-            },
-            "method": {
-             "description": "This is the method to be performed at the uri.\nGET by default for action",
-             "type": "manotypes:http-method",
-             "default": "GET"
-            }
-           },
-           "list": {
-            "headers": {
-             "description": "Custom HTTP headers to put on HTTP request",
-             "key": "key",
-             "leaf": {
-              "key": {
-               "description": "HTTP header key",
-               "type": "string"
-              },
-              "value": {
-               "description": "HTTP header value",
-               "type": "string"
-              }
-             }
-            }
-           }
-          },
-          "monitoring-param": {
-           "description": "List of monitoring parameters at the NS level",
-           "key": "id",
-           "leaf": {
-            "id": {
-             "type": "string"
-            },
-            "name": {
-             "type": "string"
-            },
-            "http-endpoint-ref": {
-             "type": {
-              "leafref": {
-               "path": "../../http-endpoint/path"
-              }
-             }
-            },
-            "json-query-method": {
-             "type": "manotypes:json-query-method",
-             "default": "NAMEKEY"
-            },
-            "description": {
-             "type": "string"
-            },
-            "group-tag": {
-             "description": "A simple tag to group monitoring parameters",
-             "type": "string"
-            },
-            "value-type": {
-             "type": "manotypes:param-value-type",
-             "default": "INT"
-            },
-            "value-integer": {
-             "description": "Current value for an integer parameter",
-             "type": "int64"
-            },
-            "value-decimal": {
-             "description": "Current value for a decimal parameter",
-             "type": {
-              "decimal64": {
-               "fraction-digits": "4"
-              }
-             }
-            },
-            "value-string": {
-             "description": "Current value for a string parameter",
-             "type": "string"
-            },
-            "widget-type": {
-             "type": "manotypes:widget-type"
-            },
-            "units": {
-             "type": "string"
-            }
-           },
-           "container": {
-            "json-query-params": {
-             "leaf": {
-              "json-path": {
-               "description": "The jsonpath to use to extract value from JSON structure",
-               "type": "string"
-              },
-              "object-path": {
-               "description": "The objectpath to use to extract value from JSON structure",
-               "type": "string"
-              }
-             }
-            },
-            "numeric-constraints": {
-             "leaf": {
-              "min-value": {
-               "description": "Minimum value for the parameter",
-               "type": "uint64"
-              },
-              "max-value": {
-               "description": "Maxium value for the parameter",
-               "type": "uint64"
-              }
-             }
-            },
-            "text-constraints": {
-             "leaf": {
-              "min-length": {
-               "description": "Minimum string length for the parameter",
-               "type": "uint8"
-              },
-              "max-length": {
-               "description": "Maximum string length for the parameter",
-               "type": "uint8"
-              }
-             }
-            }
-           }
-          }
-         }
-        }
-       }
-      }
-     }
-    }
-   }
-  },
-  "mano-types": {
-   "module": {
-    "mano-types": {
-     "namespace": "urn:ietf:params:xml:ns:yang:nfvo:mano-types",
-     "prefix": "manotypes",
-     "import": {
-      "ietf-inet-types": {
-       "prefix": "inet"
-      },
-      "rw-pb-ext": {
-       "prefix": "rwpb"
-      }
-     },
-     "revision": {
-      "2015-04-23": {
-       "description": "Initial revision. This YANG file defines\nthe reusable base types for VNF Management\nand Orchestration (MANO).",
-       "reference": "Derived from earlier versions of base YANG files"
-      }
-     },
-     "typedef": {
-      "parameter-data-type": {
-       "type": {
-        "enumeration": {
-         "enum": {
-          "STRING": {
-           "value": 0
-          },
-          "INTEGER": {
-           "value": 1
-          },
-          "BOOLEAN": {
-           "value": 2
-          }
-         }
-        }
-       }
-      },
-      "virtual-link-type": {
-       "description": "Type of virtual link\nELAN: A multipoint service connecting a set of VNFs\n// ELINE: For a simple point to point connection\n//        between a VNF and the existing network.\n// ETREE: A multipoint service connecting one or\n//        more roots and a set of leaves, but\n//        preventing inter-leaf communication.",
-       "type": {
-        "enumeration": {
-         "enum": "ELAN"
-        }
-       }
-      },
-      "http-method": {
-       "description": "Type of HTTP operation",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "POST": {
-           "value": 0
-          },
-          "PUT": {
-           "value": 1
-          },
-          "GET": {
-           "value": 2
-          },
-          "DELETE": {
-           "value": 3
-          },
-          "OPTIONS": {
-           "value": 4
-          },
-          "PATCH": {
-           "value": 5
-          }
-         }
-        }
-       }
-      },
-      "api-type": {
-       "description": "Type of API to fetch monitoring params",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "HTTP": {
-           "value": 0
-          },
-          "NETCONF": {
-           "value": 1
-          },
-          "SOAP": {
-           "value": 2
-          }
-         }
-        }
-       }
-      },
-      "json-query-method": {
-       "description": "The method to extract a value from a JSON response\n\nNAMEKEY - Use the name as the key for a non-nested value.\nJSONPATH - Use jsonpath-rw implemenation to extract a value.\nOBJECTPATH - Use objectpath implemenation to extract a value.",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "NAMEKEY": {
-           "value": 0
-          },
-          "JSONPATH": {
-           "value": 1
-          },
-          "OBJECTPATH": {
-           "value": 2
-          }
-         }
-        }
-       }
-      },
-      "param-value-type": {
-       "description": "The type of the parameter value",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "INT": {
-           "value": 0
-          },
-          "DECIMAL": {
-           "value": 1
-          },
-          "STRING": {
-           "value": 2
-          }
-         }
-        }
-       }
-      },
-      "connection-point-type": {
-       "description": "Type of connection point\nVPORT: Virtual Port\n// VNIC_ADDR: Virtual NIC Address\n// PNIC_ADDR: Physical NIC Address\n// PPORT: Phsical Port.",
-       "type": {
-        "enumeration": {
-         "enum": "VPORT"
-        }
-       }
-      },
-      "widget-type": {
-       "description": "Type of the widget, typically used by the UI.",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "HISTOGRAM": {
-           "value": 0
-          },
-          "BAR": {
-           "value": 1
-          },
-          "GAUGE": {
-           "value": 2
-          },
-          "SLIDER": {
-           "value": 3
-          },
-          "COUNTER": {
-           "value": 4
-          },
-          "TEXTBOX": {
-           "value": 5
-          }
-         }
-        }
-       }
-      },
-      "cpu-feature-type": {
-       "description": "Enumeration for CPU features.\n\nAES: CPU supports advanced instruction set for\nAES (Advanced Encryption Standard).\n\nCAT: Cache Allocation Technology (CAT) allows\nan Operating System, Hypervisor, or similar\nsystem management agent to specify the amount\nof L3 cache (currently the last-level cache\nin most server and client platforms) space an\napplication can fill (as a hint to hardware\nfunctionality, certain features such as power\nmanagement may override CAT settings).\n\nCMT: Cache Monitoring Technology (CMT) allows\nan Operating System, Hypervisor, or similar\nsystem management agent to determine the\nusage of cache based on applications running\non the platform. The implementation is\ndirected at L3 cache monitoring (currently\nthe last-level cache in most server and\nclient platforms).\n\nDDIO: Intel Data Direct I/O (DDIO) enables\nEthernet server NICs and controllers talk\ndirectly to the processor cache without a\ndetour via system memory. This enumeration\nspecifies if the VM requires a DDIO\ncapable host.",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "PREFER_AES": {
-           "value": 0
-          },
-          "REQUIRE_AES": {
-           "value": 1
-          },
-          "PREFER_CAT": {
-           "value": 2
-          },
-          "REQUIRE_CAT": {
-           "value": 3
-          },
-          "PREFER_CMT": {
-           "value": 4
-          },
-          "REQUIRE_CMT": {
-           "value": 5
-          },
-          "PREFER_DDIO": {
-           "value": 6
-          },
-          "REQUIRE_DDIO": {
-           "value": 7
-          }
-         }
-        }
-       }
-      },
-      "alarm-severity-type": {
-       "description": "An indication of the importance or ugency of the alarm",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "LOW": {
-           "value": 0
-          },
-          "MODERATE": {
-           "value": 1
-          },
-          "CRITICAL": {
-           "value": 2
-          }
-         }
-        }
-       }
-      },
-      "alarm-metric-type": {
-       "description": "The type of metrics to register the alarm for",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "CPU_UTILIZATION": {
-           "value": 0
-          },
-          "MEMORY_UTILIZATION": {
-           "value": 1
-          },
-          "STORAGE_UTILIZATION": {
-           "value": 2
-          }
-         }
-        }
-       }
-      },
-      "alarm-statistic-type": {
-       "description": "The type of statistic to used to measure a metric to determine\nthreshold crossing for an alarm.",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "AVERAGE": {
-           "value": 0
-          },
-          "MINIMUM": {
-           "value": 1
-          },
-          "MAXIMUM": {
-           "value": 2
-          },
-          "COUNT": {
-           "value": 3
-          },
-          "SUM": {
-           "value": 4
-          }
-         }
-        }
-       }
-      },
-      "alarm-operation-type": {
-       "description": "The relational operator used to define whether an alarm should be\ntriggered when, say, the metric statistic goes above or below a\nspecified value.",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "GE": {
-           "value": 0
-          },
-          "LE": {
-           "value": 1
-          },
-          "GT": {
-           "value": 2
-          },
-          "LT": {
-           "value": 3
-          },
-          "EQ": {
-           "value": 4
-          }
-         }
-        }
-       }
-      }
-     },
-     "grouping": {
-      "primitive-parameter": {
-       "leaf": {
-        "name": {
-         "description": "Name of the parameter.",
-         "type": "string"
-        },
-        "data-type": {
-         "description": "Data type associated with the name.",
-         "type": "manotypes:parameter-data-type"
-        },
-        "mandatory": {
-         "description": "Is this field mandatory",
-         "type": "boolean",
-         "default": "false"
-        },
-        "default-value": {
-         "description": "The default value for this field",
-         "type": "string"
-        },
-        "parameter-pool": {
-         "description": "NSD Parameter pool name to use for this paramter",
-         "type": "string"
-        },
-        "read-only": {
-         "description": "The value should be greyed out by the UI.\nOnly applies to parameters with default values.",
-         "type": "boolean"
-        },
-        "hidden": {
-         "description": "The value should be hidden by the UI.\nOnly applies to parameters with default values.",
-         "type": "boolean"
-        }
-       }
-      },
-      "vnf-configuration": {
-       "container": {
-        "vnf-configuration": {
-         "description": "Information regarding the VNF configuration\nis captured here. ",
-         "choice": {
-          "config-method": {
-           "description": "Defines the configuration method for the VNF.",
-           "case": {
-            "netconf": {
-             "description": "Use NETCONF for configuring the VNF.",
-             "container": {
-              "netconf": {
-               "leaf": {
-                "target": {
-                 "description": "Netconf configuration target",
-                 "type": {
-                  "enumeration": {
-                   "enum": {
-                    "running": {
-                     "value": 0
-                    },
-                    "candidate": {
-                     "value": 1
-                    }
-                   }
-                  }
-                 }
-                },
-                "protocol": {
-                 "description": "Protocol to use for netconf (e.g. ssh)",
-                 "type": {
-                  "enumeration": {
-                   "enum": {
-                    "None": {
-                     "value": 0
-                    },
-                    "ssh": {
-                     "value": 1
-                    }
-                   }
-                  }
-                 }
-                },
-                "port": {
-                 "description": "Port for the netconf server.",
-                 "type": "inet:port-number"
-                }
-               }
-              }
-             }
-            },
-            "rest": {
-             "description": "Use REST for configuring the VNF.",
-             "container": {
-              "rest": {
-               "leaf": {
-                "port": {
-                 "description": "Port for the REST server.",
-                 "type": "inet:port-number"
-                }
-               }
-              }
-             }
-            },
-            "script": {
-             "description": "Use custom script for configuring the VNF.\nThis script is executed in the context of\nOrchestrator.",
-             "container": {
-              "script": {
-               "leaf": {
-                "script-type": {
-                 "description": "Script type - currently supported : bash, expect",
-                 "type": {
-                  "enumeration": {
-                   "enum": {
-                    "bash": {
-                     "value": 0
-                    },
-                    "expect": {
-                     "value": 1
-                    }
-                   }
-                  }
-                 }
-                }
-               }
-              }
-             }
-            },
-            "juju": {
-             "description": "Configure the VNF through Juju.",
-             "container": {
-              "juju": {
-               "leaf": {
-                "charm": {
-                 "description": "Juju charm to use with the VNF.",
-                 "type": "string"
-                }
-               }
-              }
-             }
-            }
-           }
-          }
-         },
-         "container": {
-          "config-access": {
-           "leaf": {
-            "mgmt-ip-address": {
-             "description": "IP address to be used to configure this VNF,\noptional if it is possible to resolve dynamically.",
-             "type": "inet:ip-address"
-            },
-            "username": {
-             "description": "username for configuration.",
-             "type": "string"
-            },
-            "password": {
-             "description": "Password for configuration access authentication.",
-             "type": "string"
-            }
-           }
-          },
-          "config-attributes": {
-           "description": "Miscelaneous input parameters to be considered\nwhile processing the NSD to apply configuration",
-           "leaf": {
-            "config-priority": {
-             "description": "Configuration priority - order of confgiration\nto be applied to each VNF in this NS,\nlow number gets precedence over high number",
-             "type": "uint64"
-            },
-            "config-delay": {
-             "description": "Wait (seconds) before applying the configuration to VNF",
-             "type": "uint64"
-            }
-           }
-          }
-         },
-         "list": {
-          "config-primitive": {
-           "description": "List of configuration primitives supported by the\nconfiguration agent for this VNF.",
-           "key": "name",
-           "leaf": {
-            "name": {
-             "description": "Name of the configuration primitive.",
-             "type": "string"
-            }
-           },
-           "list": {
-            "parameter": {
-             "description": "List of parameters to the configuration primitive.",
-             "key": "name",
-             "leaf": {
-              "name": {
-               "description": "Name of the parameter.",
-               "type": "string"
-              },
-              "data-type": {
-               "description": "Data type associated with the name.",
-               "type": "manotypes:parameter-data-type"
-              },
-              "mandatory": {
-               "description": "Is this field mandatory",
-               "type": "boolean",
-               "default": "false"
-              },
-              "default-value": {
-               "description": "The default value for this field",
-               "type": "string"
-              },
-              "parameter-pool": {
-               "description": "NSD Parameter pool name to use for this paramter",
-               "type": "string"
-              },
-              "read-only": {
-               "description": "The value should be greyed out by the UI.\nOnly applies to parameters with default values.",
-               "type": "boolean"
-              },
-              "hidden": {
-               "description": "The value should be hidden by the UI.\nOnly applies to parameters with default values.",
-               "type": "boolean"
-              }
-             }
-            }
-           }
-          },
-          "initial-config-primitive": {
-           "description": "Initial set of configuration primitives.",
-           "key": "seq",
-           "leaf": {
-            "seq": {
-             "description": "Sequence number for the configuration primitive.",
-             "type": "uint64"
-            },
-            "name": {
-             "description": "Name of the configuration primitive.",
-             "type": "string"
-            }
-           },
-           "list": {
-            "parameter": {
-             "key": "name",
-             "leaf": {
-              "name": {
-               "type": "string"
-              },
-              "value": {
-               "type": "string"
-              }
-             }
-            }
-           }
-          }
-         },
-         "leaf": {
-          "config-template": {
-           "description": "Configuration template for each VNF",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "named-value": {
-       "leaf": {
-        "name": {
-         "type": "string"
-        },
-        "value": {
-         "type": "string"
-        }
-       }
-      },
-      "vm-flavor": {
-       "container": {
-        "vm-flavor": {
-         "leaf": {
-          "vcpu-count": {
-           "description": "Number of vcpus for the VM.",
-           "type": "uint16"
-          },
-          "memory-mb": {
-           "description": "Amount of memory in MB.",
-           "type": "uint64"
-          },
-          "storage-gb": {
-           "description": "Amount of disk space in GB.",
-           "type": "uint64"
-          }
-         }
-        }
-       }
-      },
-      "vswitch-epa": {
-       "container": {
-        "vswitch-epa": {
-         "leaf": {
-          "ovs-acceleration": {
-           "description": "Specifies Open vSwitch acceleration mode.\nMANDATORY: OVS acceleration is required\nPREFERRED: OVS acceleration is preferred",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "MANDATORY": {
-               "value": 0
-              },
-              "PREFERRED": {
-               "value": 1
-              },
-              "DISABLED": {
-               "value": 2
-              }
-             }
-            }
-           }
-          },
-          "ovs-offload": {
-           "description": "Specifies Open vSwitch hardware offload mode.\nMANDATORY: OVS offload is required\nPREFERRED: OVS offload is preferred",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "MANDATORY": {
-               "value": 0
-              },
-              "PREFERRED": {
-               "value": 1
-              },
-              "DISABLED": {
-               "value": 2
-              }
-             }
-            }
-           }
-          }
-         }
-        }
-       }
-      },
-      "hypervisor-epa": {
-       "container": {
-        "hypervisor-epa": {
-         "leaf": {
-          "type": {
-           "description": "Specifies the type of hypervisor.\nKVM: KVM\nXEN: XEN",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "PREFER_KVM": {
-               "value": 0
-              },
-              "REQUIRE_KVM": {
-               "value": 1
-              }
-             }
-            }
-           }
-          },
-          "version": {
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "host-epa": {
-       "container": {
-        "host-epa": {
-         "description": "Specifies the host level EPA attributes.",
-         "leaf": {
-          "cpu-model": {
-           "description": "Host CPU model. Examples include: SandyBridge,\nIvyBridge",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "PREFER_WESTMERE": {
-               "value": 0
-              },
-              "REQUIRE_WESTMERE": {
-               "value": 1
-              },
-              "PREFER_SANDYBRIDGE": {
-               "value": 2
-              },
-              "REQUIRE_SANDYBRIDGE": {
-               "value": 3
-              },
-              "PREFER_IVYBRIDGE": {
-               "value": 4
-              },
-              "REQUIRE_IVYBRIDGE": {
-               "value": 5
-              },
-              "PREFER_HASWELL": {
-               "value": 6
-              },
-              "REQUIRE_HASWELL": {
-               "value": 7
-              },
-              "PREFER_BROADWELL": {
-               "value": 8
-              },
-              "REQUIRE_BROADWELL": {
-               "value": 9
-              },
-              "PREFER_NEHALEM": {
-               "value": 10
-              },
-              "REQUIRE_NEHALEM": {
-               "value": 11
-              },
-              "PREFER_PENRYN": {
-               "value": 12
-              },
-              "REQUIRE_PENRYN": {
-               "value": 13
-              },
-              "PREFER_CONROE": {
-               "value": 14
-              },
-              "REQUIRE_CONROE": {
-               "value": 15
-              },
-              "PREFER_CORE2DUO": {
-               "value": 16
-              },
-              "REQUIRE_CORE2DUO": {
-               "value": 17
-              }
-             }
-            }
-           }
-          },
-          "cpu-arch": {
-           "description": "Host CPU architecture.",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "PREFER_X86": {
-               "value": 0
-              },
-              "REQUIRE_X86": {
-               "value": 1
-              },
-              "PREFER_X86_64": {
-               "value": 2
-              },
-              "REQUIRE_X86_64": {
-               "value": 3
-              },
-              "PREFER_I686": {
-               "value": 4
-              },
-              "REQUIRE_I686": {
-               "value": 5
-              },
-              "PREFER_IA64": {
-               "value": 6
-              },
-              "REQUIRE_IA64": {
-               "value": 7
-              },
-              "PREFER_ARMV7": {
-               "value": 8
-              },
-              "REQUIRE_ARMV7": {
-               "value": 9
-              },
-              "PREFER_ARMV8": {
-               "value": 10
-              },
-              "REQUIRE_ARMV8": {
-               "value": 11
-              }
-             }
-            }
-           }
-          },
-          "cpu-vendor": {
-           "description": "Host CPU Vendor.",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "PREFER_INTEL": {
-               "value": 0
-              },
-              "REQUIRE_INTEL": {
-               "value": 1
-              },
-              "PREFER_AMD": {
-               "value": 2
-              },
-              "REQUIRE_AMD": {
-               "value": 3
-              }
-             }
-            }
-           }
-          },
-          "cpu-socket-count": {
-           "description": "Number of sockets on the host.",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "PREFER_ONE": {
-               "value": 0
-              },
-              "PREFER_TWO": {
-               "value": 1
-              },
-              "REQUIRE_ONE": {
-               "value": 2
-              },
-              "REQUIRE_TWO": {
-               "value": 3
-              }
-             }
-            }
-           }
-          },
-          "cpu-core-count": {
-           "description": "Number of cores on the host.",
-           "type": "uint64"
-          },
-          "om-cpu-model-string": {
-           "description": "Openmano CPU model string",
-           "type": "string"
-          }
-         },
-         "leaf-list": {
-          "cpu-feature": {
-           "description": "List of CPU features.",
-           "type": "manotypes:cpu-feature-type"
-          },
-          "om-cpu-feature": {
-           "description": "Openmano CPU features",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "guest-epa": {
-       "description": "EPA attributes for the guest",
-       "container": {
-        "guest-epa": {
-         "leaf": {
-          "trusted-execution": {
-           "description": "This VM should be allocated from trusted pool",
-           "type": "boolean"
-          },
-          "mempage-size": {
-           "description": "Memory page allocation size. If a VM requires\nhugepages, it should choose LARGE or SIZE_2MB\nor SIZE_1GB. If the VM prefers hugepages it\nshould chose PREFER_LARGE.\nLARGE        : Require hugepages (either 2MB or 1GB)\nSMALL        : Doesn't require hugepages\nSIZE_2MB     : Requires 2MB hugepages\nSIZE_1GB     : Requires 1GB hugepages\nPREFER_LARGE : Application perfers hugepages",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "LARGE": {
-               "value": 0
-              },
-              "SMALL": {
-               "value": 1
-              },
-              "SIZE_2MB": {
-               "value": 2
-              },
-              "SIZE_1GB": {
-               "value": 3
-              },
-              "PREFER_LARGE": {
-               "value": 4
-              }
-             }
-            }
-           }
-          },
-          "cpu-pinning-policy": {
-           "description": "CPU pinning policy describes association\nbetween virtual CPUs in guest and the\nphysical CPUs in the host.\nDEDICATED : Virtual CPUs are pinned to\n            physical CPUs\nSHARED    : Multiple VMs may share the\n            same physical CPUs.\nANY       : Any policy is acceptable for the VM",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "DEDICATED": {
-               "value": 0
-              },
-              "SHARED": {
-               "value": 1
-              },
-              "ANY": {
-               "value": 2
-              }
-             }
-            }
-           },
-           "default": "ANY"
-          },
-          "cpu-thread-pinning-policy": {
-           "description": "CPU thread pinning policy describes how to\nplace the guest CPUs when the host supports\nhyper threads:\nAVOID   : Avoids placing a guest on a host\n          with threads.\nSEPARATE: Places vCPUs on separate cores,\n          and avoids placing two vCPUs on\n          two threads of same core.\nISOLATE : Places each vCPU on a different core,\n          and places no vCPUs from a different\n          guest on the same core.\nPREFER  : Attempts to place vCPUs on threads\n          of the same core.",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "AVOID": {
-               "value": 0
-              },
-              "SEPARATE": {
-               "value": 1
-              },
-              "ISOLATE": {
-               "value": 2
-              },
-              "PREFER": {
-               "value": 3
-              }
-             }
-            }
-           }
-          }
-         },
-         "list": {
-          "pcie-device": {
-           "description": "List of pcie passthrough devices.",
-           "key": "device-id",
-           "leaf": {
-            "device-id": {
-             "description": "Device identifier.",
-             "type": "string"
-            },
-            "count": {
-             "description": "Number of devices to attach to the VM.",
-             "type": "uint64"
-            }
-           }
-          }
-         },
-         "choice": {
-          "numa-policy": {
-           "case": {
-            "numa-unware": {
-             "leaf": {
-              "numa-unware": {
-               "type": "empty"
-              }
-             }
-            },
-            "numa-aware": {
-             "container": {
-              "numa-node-policy": {
-               "description": "This policy defines numa topology of the\nguest. Specifically identifies if the guest\nshould be run on a host with one numa\nnode or multiple numa nodes. As an example\na guest may want 8 vcpus and 4 GB of\nmemory. But may want the vcpus and memory\ndistributed across multiple numa nodes.\nThe NUMA node 1 may run with 6 vcpus and\n3GB, and NUMA node 2 may run with 2 vcpus\nand 1GB.",
-               "leaf": {
-                "node-cnt": {
-                 "description": "The number of numa nodes to expose to the VM.",
-                 "type": "uint16"
-                },
-                "mem-policy": {
-                 "description": "This policy specifies how the memory should\nbe allocated in a multi-node scenario.\nSTRICT    : The memory must be allocated\n            strictly from the memory attached\n            to the NUMA node.\nPREFERRED : The memory should be allocated\n            perferentially from the memory\n            attached to the NUMA node",
-                 "type": {
-                  "enumeration": {
-                   "enum": {
-                    "STRICT": {
-                     "value": 0
-                    },
-                    "PREFERRED": {
-                     "value": 1
-                    }
-                   }
-                  }
-                 }
-                }
-               },
-               "list": {
-                "node": {
-                 "key": "id",
-                 "leaf": {
-                  "id": {
-                   "description": "NUMA node identification. Typically\nit's 0 or 1",
-                   "type": "uint64"
-                  },
-                  "memory-mb": {
-                   "description": "Memory size expressed in MB\nfor this NUMA node.",
-                   "type": "uint64"
-                  }
-                 },
-                 "leaf-list": {
-                  "vcpu": {
-                   "description": "List of vcpus to allocate on\nthis numa node.",
-                   "type": "uint64"
-                  }
-                 },
-                 "choice": {
-                  "om-numa-type": {
-                   "description": "Openmano Numa type selection",
-                   "case": {
-                    "cores": {
-                     "leaf": {
-                      "num-cores": {
-                       "type": "uint8"
-                      }
-                     }
-                    },
-                    "paired-threads": {
-                     "container": {
-                      "paired-threads": {
-                       "leaf": {
-                        "num-paired-threads": {
-                         "type": "uint8"
-                        }
-                       },
-                       "list": {
-                        "paired-thread-ids": {
-                         "description": "List of thread pairs to use in case of paired-thread numa",
-                         "max-elements": 16,
-                         "key": "thread-a",
-                         "leaf": {
-                          "thread-a": {
-                           "type": "uint8"
-                          },
-                          "thread-b": {
-                           "type": "uint8"
-                          }
-                         }
-                        }
-                       }
-                      }
-                     }
-                    },
-                    "threads": {
-                     "leaf": {
-                      "num-threads": {
-                       "type": "uint8"
-                      }
-                     }
-                    }
-                   }
-                  }
-                 }
-                }
-               }
-              }
-             }
-            }
-           }
-          }
-         }
-        }
-       }
-      },
-      "provider-network": {
-       "container": {
-        "provider-network": {
-         "description": "Container for the provider network.",
-         "leaf": {
-          "physical-network": {
-           "description": "Name of the phsyical network on which the provider\nnetwork is built.",
-           "type": "string"
-          },
-          "overlay-type": {
-           "description": "Type of the overlay network.",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "LOCAL": {
-               "value": 0
-              },
-              "FLAT": {
-               "value": 1
-              },
-              "VLAN": {
-               "value": 2
-              },
-              "VXLAN": {
-               "value": 3
-              },
-              "GRE": {
-               "value": 4
-              }
-             }
-            }
-           }
-          },
-          "segmentation_id": {
-           "description": "Segmentation ID",
-           "type": "uint32"
-          }
-         }
-        }
-       }
-      },
-      "config-primitive": {
-       "list": {
-        "config-primitive": {
-         "description": "Network service level configuration primitives.",
-         "key": "name",
-         "leaf": {
-          "name": {
-           "description": "Name of the configuration primitive.",
-           "type": "string"
-          },
-          "user-defined-script": {
-           "description": "A user defined script.",
-           "type": "string"
-          }
-         },
-         "list": {
-          "parameter": {
-           "description": "List of parameters to the configuration primitive.",
-           "key": "name",
-           "leaf": {
-            "name": {
-             "description": "Name of the parameter.",
-             "type": "string"
-            },
-            "data-type": {
-             "description": "Data type associated with the name.",
-             "type": "manotypes:parameter-data-type"
-            },
-            "mandatory": {
-             "description": "Is this field mandatory",
-             "type": "boolean",
-             "default": "false"
-            },
-            "default-value": {
-             "description": "The default value for this field",
-             "type": "string"
-            },
-            "parameter-pool": {
-             "description": "NSD Parameter pool name to use for this paramter",
-             "type": "string"
-            },
-            "read-only": {
-             "description": "The value should be greyed out by the UI.\nOnly applies to parameters with default values.",
-             "type": "boolean"
-            },
-            "hidden": {
-             "description": "The value should be hidden by the UI.\nOnly applies to parameters with default values.",
-             "type": "boolean"
-            }
-           }
-          },
-          "parameter-group": {
-           "description": "Grouping of parameters which are logically grouped in UI",
-           "key": "name",
-           "leaf": {
-            "name": {
-             "description": "Name of the parameter group",
-             "type": "string"
-            },
-            "mandatory": {
-             "description": "Is this parameter group mandatory",
-             "type": "boolean",
-             "default": "true"
-            }
-           },
-           "list": {
-            "parameter": {
-             "description": "List of parameters to the configuration primitive.",
-             "key": "name",
-             "leaf": {
-              "name": {
-               "description": "Name of the parameter.",
-               "type": "string"
-              },
-              "data-type": {
-               "description": "Data type associated with the name.",
-               "type": "manotypes:parameter-data-type"
-              },
-              "mandatory": {
-               "description": "Is this field mandatory",
-               "type": "boolean",
-               "default": "false"
-              },
-              "default-value": {
-               "description": "The default value for this field",
-               "type": "string"
-              },
-              "parameter-pool": {
-               "description": "NSD Parameter pool name to use for this paramter",
-               "type": "string"
-              },
-              "read-only": {
-               "description": "The value should be greyed out by the UI.\nOnly applies to parameters with default values.",
-               "type": "boolean"
-              },
-              "hidden": {
-               "description": "The value should be hidden by the UI.\nOnly applies to parameters with default values.",
-               "type": "boolean"
-              }
-             }
-            }
-           }
-          },
-          "vnf-primitive-group": {
-           "description": "List of configuration primitives grouped by VNF.",
-           "key": "member-vnf-index-ref",
-           "leaf": {
-            "member-vnf-index-ref": {
-             "description": "Reference to member-vnf within constituent-vnfds",
-             "type": "uint64"
-            },
-            "vnfd-id-ref": {
-             "description": "A reference to a vnfd. This is a\nleafref to path:\n    ../../../../nsd:constituent-vnfd\n    + [nsd:id = current()/../nsd:id-ref]\n    + /nsd:vnfd-id-ref\nNOTE: An issue with confd is preventing the\nuse of xpath. Seems to be an issue with leafref\nto leafref, whose target is in a different module.\nOnce that is resovled this will switched to use\nleafref",
-             "type": "string"
-            },
-            "vnfd-name": {
-             "description": "Name of the VNFD",
-             "type": "string"
-            }
-           },
-           "list": {
-            "primitive": {
-             "key": "index",
-             "leaf": {
-              "index": {
-               "description": "Index of this primitive",
-               "type": "uint32"
-              },
-              "name": {
-               "description": "Name of the primitive in the VNF primitive ",
-               "type": "string"
-              }
-             }
-            }
-           }
-          }
-         }
-        }
-       }
-      },
-      "monitoring-param": {
-       "list": {
-        "http-endpoint": {
-         "description": "List of http endpoints to be used by monitoring params",
-         "key": "path",
-         "leaf": {
-          "path": {
-           "description": "The HTTP path on the management server",
-           "type": "string"
-          },
-          "https": {
-           "description": "Pick HTTPS instead of HTTP , Default is false",
-           "type": "boolean",
-           "default": "false"
-          },
-          "port": {
-           "description": "The HTTP port to connect to",
-           "type": "inet:port-number"
-          },
-          "username": {
-           "description": "The HTTP basic auth username",
-           "type": "string"
-          },
-          "password": {
-           "description": "The HTTP basic auth password",
-           "type": "string"
-          },
-          "polling_interval_secs": {
-           "description": "The HTTP polling interval in seconds",
-           "type": "uint8",
-           "default": "2"
-          },
-          "method": {
-           "description": "This is the method to be performed at the uri.\nGET by default for action",
-           "type": "manotypes:http-method",
-           "default": "GET"
-          }
-         },
-         "list": {
-          "headers": {
-           "description": "Custom HTTP headers to put on HTTP request",
-           "key": "key",
-           "leaf": {
-            "key": {
-             "description": "HTTP header key",
-             "type": "string"
-            },
-            "value": {
-             "description": "HTTP header value",
-             "type": "string"
-            }
-           }
-          }
-         }
-        },
-        "monitoring-param": {
-         "description": "List of monitoring parameters at the NS level",
-         "key": "id",
-         "leaf": {
-          "id": {
-           "type": "string"
-          },
-          "name": {
-           "type": "string"
-          },
-          "http-endpoint-ref": {
-           "type": {
-            "leafref": {
-             "path": "../../http-endpoint/path"
-            }
-           }
-          },
-          "json-query-method": {
-           "type": "manotypes:json-query-method",
-           "default": "NAMEKEY"
-          },
-          "description": {
-           "type": "string"
-          },
-          "group-tag": {
-           "description": "A simple tag to group monitoring parameters",
-           "type": "string"
-          },
-          "value-type": {
-           "type": "manotypes:param-value-type",
-           "default": "INT"
-          },
-          "value-integer": {
-           "description": "Current value for an integer parameter",
-           "type": "int64"
-          },
-          "value-decimal": {
-           "description": "Current value for a decimal parameter",
-           "type": {
-            "decimal64": {
-             "fraction-digits": "4"
-            }
-           }
-          },
-          "value-string": {
-           "description": "Current value for a string parameter",
-           "type": "string"
-          },
-          "widget-type": {
-           "type": "manotypes:widget-type"
-          },
-          "units": {
-           "type": "string"
-          }
-         },
-         "container": {
-          "json-query-params": {
-           "leaf": {
-            "json-path": {
-             "description": "The jsonpath to use to extract value from JSON structure",
-             "type": "string"
-            },
-            "object-path": {
-             "description": "The objectpath to use to extract value from JSON structure",
-             "type": "string"
-            }
-           }
-          },
-          "numeric-constraints": {
-           "leaf": {
-            "min-value": {
-             "description": "Minimum value for the parameter",
-             "type": "uint64"
-            },
-            "max-value": {
-             "description": "Maxium value for the parameter",
-             "type": "uint64"
-            }
-           }
-          },
-          "text-constraints": {
-           "leaf": {
-            "min-length": {
-             "description": "Minimum string length for the parameter",
-             "type": "uint8"
-            },
-            "max-length": {
-             "description": "Maximum string length for the parameter",
-             "type": "uint8"
-            }
-           }
-          }
-         }
-        }
-       }
-      },
-      "control-param": {
-       "list": {
-        "control-param": {
-         "description": "List of control parameters to manage and\nupdate the running configuration of the VNF",
-         "key": "id",
-         "leaf": {
-          "id": {
-           "type": "string"
-          },
-          "name": {
-           "type": "string"
-          },
-          "description": {
-           "type": "string"
-          },
-          "group-tag": {
-           "description": "A simple tag to group control parameters",
-           "type": "string"
-          },
-          "min-value": {
-           "description": "Minimum value for the parameter",
-           "type": "uint64"
-          },
-          "max-value": {
-           "description": "Maxium value for the parameter",
-           "type": "uint64"
-          },
-          "current-value": {
-           "description": "Current value for the parameter",
-           "type": "uint64"
-          },
-          "step-value": {
-           "description": "Step value for the parameter",
-           "type": "uint64"
-          },
-          "units": {
-           "type": "string"
-          },
-          "widget-type": {
-           "type": "manotypes:widget-type"
-          },
-          "url": {
-           "description": "This is the URL where to perform the operation",
-           "type": "inet:uri"
-          },
-          "method": {
-           "description": "This is the method to be performed at the uri.\nPOST by default for action",
-           "type": "manotypes:http-method",
-           "default": "POST"
-          },
-          "payload": {
-           "description": "This is the operation payload or payload template as stringified\nJSON. This field provides the data  to be sent for this operation\ncall",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "action-param": {
-       "list": {
-        "action-param": {
-         "description": "List of action parameters to\ncontrol VNF",
-         "key": "id",
-         "leaf": {
-          "id": {
-           "type": "string"
-          },
-          "name": {
-           "type": "string"
-          },
-          "description": {
-           "type": "string"
-          },
-          "group-tag": {
-           "description": "A simple tag to group monitoring parameter",
-           "type": "string"
-          },
-          "url": {
-           "description": "This is the URL where to perform the operation",
-           "type": "inet:uri"
-          },
-          "method": {
-           "description": "This is the method to be performed at the uri.\nPOST by default for action",
-           "type": "manotypes:http-method",
-           "default": "POST"
-          },
-          "payload": {
-           "description": "This is the operation payload or payload template to be sent in\nthe data for this operation call",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "input-parameter": {
-       "description": "",
-       "list": {
-        "input-parameter": {
-         "description": "List of input parameters",
-         "key": "xpath",
-         "leaf": {
-          "xpath": {
-           "description": "A an xpath that specfies which element in a descriptor is to be\nmodified.",
-           "type": "string"
-          },
-          "value": {
-           "description": "The value that the element specified by the xpath should take when a\nrecord is created.",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "input-parameter-xpath": {
-       "list": {
-        "input-parameter-xpath": {
-         "description": "List of xpaths to parameters inside the NSD\nthe can be customized during the instantiation.",
-         "key": "xpath",
-         "leaf": {
-          "xpath": {
-           "description": "An xpath that specifies the element in a descriptor.",
-           "type": "string"
-          },
-          "label": {
-           "description": "A descriptive string",
-           "type": "string"
-          },
-          "default-value": {
-           "description": " A default value for this input parameter",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "nfvi-metrics": {
-       "container": {
-        "vcpu": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "VCPU"
-          },
-          "total": {
-           "description": "The total number of VCPUs available.",
-           "type": "uint64"
-          },
-          "utilization": {
-           "description": "The VCPU utilization (percentage).",
-           "type": {
-            "decimal64": {
-             "fraction-digits": "2",
-             "range": "0 .. 100"
-            }
-           }
-          }
-         }
-        },
-        "memory": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "MEMORY"
-          },
-          "used": {
-           "description": "The amount of memory (bytes) currently in use.",
-           "type": "uint64"
-          },
-          "total": {
-           "description": "The amount of memory (bytes) available.",
-           "type": "uint64"
-          },
-          "utilization": {
-           "description": "The memory utilization (percentage).",
-           "type": {
-            "decimal64": {
-             "fraction-digits": "2",
-             "range": "0 .. 100"
-            }
-           }
-          }
-         }
-        },
-        "storage": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "STORAGE"
-          },
-          "used": {
-           "description": "The amount of storage (bytes) currently in use.",
-           "type": "uint64"
-          },
-          "total": {
-           "description": "The amount of storage (bytes) available.",
-           "type": "uint64"
-          },
-          "utilization": {
-           "description": "The storage utilization (percentage).",
-           "type": {
-            "decimal64": {
-             "fraction-digits": "2",
-             "range": "0 .. 100"
-            }
-           }
-          }
-         }
-        },
-        "external-ports": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "EXTERNAL PORTS"
-          },
-          "total": {
-           "description": "The total number of external ports.",
-           "type": "uint64"
-          }
-         }
-        },
-        "internal-ports": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "INTERNAL PORTS"
-          },
-          "total": {
-           "description": "The total number of internal ports.",
-           "type": "uint64"
-          }
-         }
-        },
-        "network": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "NETWORK TRAFFIC"
-          }
-         },
-         "container": {
-          "incoming": {
-           "leaf": {
-            "label": {
-             "description": "Label to show in UI",
-             "type": "string",
-             "default": "INCOMING NETWORK TRAFFIC"
-            },
-            "bytes": {
-             "description": "The cumulative number of incoming bytes.",
-             "type": "uint64"
-            },
-            "packets": {
-             "description": "The cumulative number of incoming packets.",
-             "type": "uint64"
-            },
-            "byte-rate": {
-             "description": "The current incoming byte-rate (bytes per second).",
-             "type": {
-              "decimal64": {
-               "fraction-digits": "2"
-              }
-             }
-            },
-            "packet-rate": {
-             "description": "The current incoming packet (packets per second).",
-             "type": {
-              "decimal64": {
-               "fraction-digits": "2"
-              }
-             }
-            }
-           }
-          },
-          "outgoing": {
-           "leaf": {
-            "label": {
-             "description": "Label to show in UI",
-             "type": "string",
-             "default": "OUTGOING NETWORK TRAFFIC"
-            },
-            "bytes": {
-             "description": "The cumulative number of outgoing bytes.",
-             "type": "uint64"
-            },
-            "packets": {
-             "description": "The cumulative number of outgoing packets.",
-             "type": "uint64"
-            },
-            "byte-rate": {
-             "description": "The current outgoing byte-rate (bytes per second).",
-             "type": {
-              "decimal64": {
-               "fraction-digits": "2"
-              }
-             }
-            },
-            "packet-rate": {
-             "description": "The current outgoing packet (packets per second).",
-             "type": {
-              "decimal64": {
-               "fraction-digits": "2"
-              }
-             }
-            }
-           }
-          }
-         }
-        }
-       }
-      },
-      "alarm": {
-       "leaf": {
-        "alarm-id": {
-         "description": "This field is reserved for the identifier assigned by the cloud\nprovider",
-         "type": "string"
-        },
-        "name": {
-         "description": "A human readable string to identify the alarm",
-         "type": "string"
-        },
-        "description": {
-         "description": "A string containing a description of this alarm",
-         "type": "string"
-        },
-        "repeat": {
-         "description": "This flag indicates whether the alarm should be repeatedly emitted\nwhile the associated threshold has been crossed.",
-         "type": "boolean",
-         "default": "true"
-        },
-        "enabled": {
-         "description": "This flag indicates whether the alarm has been enabled or\ndisabled.",
-         "type": "boolean",
-         "default": "true"
-        },
-        "severity": {
-         "description": "A measure of the important or urgency of the alarm",
-         "type": "alarm-severity-type"
-        },
-        "metric": {
-         "description": "The metric to be tracked by this alarm.",
-         "type": "alarm-metric-type"
-        },
-        "statistic": {
-         "description": "The type of metric statistic that is tracked by this alarm",
-         "type": "alarm-statistic-type"
-        },
-        "operation": {
-         "description": "The relational operator that defines whether the alarm should be\ntriggered when the metric statistic is, say, above or below the\nspecified threshold value.",
-         "type": "alarm-operation-type"
-        },
-        "value": {
-         "description": "This value defines the threshold that, if crossed, will trigger\nthe alarm.",
-         "type": {
-          "decimal64": {
-           "fraction-digits": "4"
-          }
-         }
-        },
-        "period": {
-         "description": "The period defines the length of time (seconds) that the metric\ndata are collected over in oreder to evaluate the chosen\nstatistic.",
-         "type": "uint32"
-        },
-        "evaluations": {
-         "description": "This is the number of samples of the metric statistic used to\nevaluate threshold crossing. Each sample or evaluation is equal to\nthe metric statistic obtained for a given period. This can be used\nto mitigate spikes in the metric that may skew the statistic of\ninterest.",
-         "type": "uint32"
-        }
-       },
-       "container": {
-        "actions": {
-         "list": {
-          "ok": {
-           "key": "url",
-           "leaf": {
-            "url": {
-             "type": "string"
-            }
-           }
-          },
-          "insufficient-data": {
-           "key": "url",
-           "leaf": {
-            "url": {
-             "type": "string"
-            }
-           }
-          },
-          "alarm": {
-           "key": "url",
-           "leaf": {
-            "url": {
-             "type": "string"
-            }
-           }
-          }
-         }
-        }
-       }
-      },
-      "placement-group-info": {
-       "description": "",
-       "leaf": {
-        "name": {
-         "description": "Place group construct to define the compute resource placement strategy\nin cloud environment",
-         "type": "string"
-        },
-        "requirement": {
-         "description": "This is free text space used to describe the intent/rationale\nbehind this placement group. This is for human consumption only",
-         "type": "string"
-        },
-        "strategy": {
-         "description": "Strategy associated with this placement group\n  Following values are possible\n    - COLOCATION: Colocation strategy imply intent to share the physical\n                  infrastructure (hypervisor/network) among all members\n                  of this group.\n    - ISOLATION: Isolation strategy imply intent to not share the physical\n                 infrastructure (hypervisor/network) among the members\n                 of this group.\n  ",
-         "type": {
-          "enumeration": {
-           "enum": {
-            "COLOCATION": {
-             "value": 0
-            },
-            "ISOLATION": {
-             "value": 1
-            }
-           }
-          }
-         },
-         "default": "COLOCATION"
-        }
-       }
-      }
-     }
-    }
-   }
-  }
- },
- "extension": {
-  "module": {
-   "argument": "name",
-   "include": "0..n",
-   "prefix": "0..1",
-   "anyxml": "0..n",
-   "augment": "0..n",
-   "choice": "0..n",
-   "contact": "0..1",
-   "container": "0..n",
-   "description": "0..1",
-   "deviation": "0..n",
-   "extension": "0..n",
-   "feature": "0..n",
-   "grouping": "0..n",
-   "identity": "0..n",
-   "import": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "namespace": "0..1",
-   "notification": "0..n",
-   "organization": "0..1",
-   "reference": "0..1",
-   "revision": "0..n",
-   "rpc": "0..n",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "yang-version": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  var changes, match, ref, synth, target;\n  synth = this.require('data-synth');\n  ref = params.augment;\n  for (target in ref) {\n    changes = ref[target];\n    match = this.locate(ctx, target);\n    if (match == null) {\n      continue;\n    }\n    synth.copy(match, changes);\n  }\n  return delete this.source[params.prefix];\n}"
-   },
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var k, m, modules, ref, synth, v;\n  synth = this.require('data-synth');\n  modules = {};\n  ref = params[\"import\"];\n  for (k in ref) {\n    v = ref[k];\n    modules[k] = children[k];\n    delete children[k];\n  }\n  m = (synth.Store(params, function() {\n    return this.set({\n      name: arg,\n      modules: modules\n    });\n  })).bind(children);\n  this.define('module', arg, m);\n  return m;\n}"
-   }
-  },
-  "prefix": {
-   "argument": "value",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return this.source[arg] = this.source;\n}"
-   }
-  },
-  "include": {
-   "argument": "module",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  var k, m, ref, ref1, ref2, results, v;\n  m = this.preprocess(this.resolve('dependencies', arg));\n  ref = m.extension;\n  for (k in ref) {\n    v = ref[k];\n    this.define('extension', k, v);\n  }\n  ref1 = m.typedef;\n  for (k in ref1) {\n    v = ref1[k];\n    this.define('typedef', k, v);\n  }\n  ref2 = m.schema;\n  results = [];\n  for (k in ref2) {\n    v = ref2[k];\n    results.push(ctx[k] = v);\n  }\n  return results;\n}"
-   },
-   "revision-date": "0..1"
-  },
-  "augment": {
-   "anyxml": "0..n",
-   "case": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "uses": "0..n",
-   "when": "0..1",
-   "argument": "target-node"
-  },
-  "belongs-to": {
-   "prefix": 1,
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return this.source[params.prefix] = this.source;\n}"
-   },
-   "argument": "module"
-  },
-  "bit": {
-   "description": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "position": "0..1",
-   "argument": "name"
-  },
-  "case": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "uses": "0..n",
-   "when": "0..1",
-   "argument": "name"
-  },
-  "choice": {
-   "anyxml": "0..n",
-   "case": "0..n",
-   "config": "0..1",
-   "container": "0..n",
-   "default": "0..1",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "mandatory": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "when": "0..1",
-   "argument": "condition"
-  },
-  "config": {
-   "preprocess": {
-    "!js/function": "function (arg, p, ctx) {\n  return ctx.config = arg === true || arg === 'true';\n}"
-   },
-   "argument": "value"
-  },
-  "container": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "config": "0..1",
-   "container": "0..n",
-   "description": "0..1",
-   "grouping": "0..n",
-   "if-feature": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "must": "0..n",
-   "presence": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "when": "0..1",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var synth;\n  synth = this.require('data-synth');\n  return (synth.Object(params)).bind(children);\n}"
-   },
-   "argument": "name"
-  },
-  "deviate": {
-   "config": "0..1",
-   "default": "0..1",
-   "mandatory": "0..1",
-   "max-elements": "0..1",
-   "min-elements": "0..1",
-   "must": "0..n",
-   "type": "0..1",
-   "unique": "0..1",
-   "units": "0..1",
-   "argument": "value"
-  },
-  "deviation": {
-   "description": "0..1",
-   "deviate": "1..n",
-   "reference": "0..1",
-   "argument": "target-node"
-  },
-  "enum": {
-   "description": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "value": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  if (params.value == null) {\n    if (this.enumValue == null) {\n      this.enumValue = 0;\n    }\n    params.value = this.enumValue++;\n  } else {\n    params.value = Number(params.value);\n    this.enumValue = params.value + 1;\n  }\n  return ctx[\"enum\"][arg] = params;\n}"
-   },
-   "argument": "name"
-  },
-  "feature": {
-   "description": "0..1",
-   "if-feature": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  if (params.status === 'unavailable') {\n    console.warn(\"feature \" + arg + \" is unavailable\");\n    if (typeof ctx.feature === 'object') {\n      return delete ctx.feature[arg];\n    } else {\n      return delete ctx.feature;\n    }\n  }\n}"
-   },
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var feature;\n  feature = this.resolve('feature', arg);\n  return null;\n}"
-   },
-   "argument": "name"
-  },
-  "grouping": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "description": "0..1",
-   "grouping": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "preprocess": {
-    "!js/function": "function (arg, params) {\n  return this.define('grouping', arg, params);\n}"
-   },
-   "argument": "name"
-  },
-  "identity": {
-   "base": "0..1",
-   "description": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params) {\n  return this.define('identity', arg, params);\n}"
-   },
-   "argument": "name"
-  },
-  "if-feature": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  if ((this.resolve('feature', arg)) == null) {\n    return ctx.status = 'unavailable';\n  }\n}"
-   },
-   "argument": "name"
-  },
-  "import": {
-   "prefix": 1,
-   "revision-date": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  var copy, k, m, original, ref, ref1, rev, schema, source, synth, v;\n  synth = this.require('data-synth');\n  schema = this.resolve('dependencies', arg, false);\n  if (schema == null) {\n    console.warn(\"no explicit dependency for \" + arg + \" defined, searching local filesystem\");\n    schema = this.parse(\"!yang \" + arg + \".yang\", this.source);\n    if (schema != null) {\n      this.define('dependencies', arg, schema);\n      source = this.source.parent;\n      while ((source.parent != null) && source.parent.name !== 'yangforge') {\n        source = source.parent;\n      }\n      if (source.dependencies == null) {\n        source.dependencies = {};\n      }\n      source.dependencies[arg] = schema;\n    }\n  }\n  m = this.preprocess(schema);\n  if (m == null) {\n    throw this.error(\"unable to resolve '\" + arg + \"' in dependencies\", 'import');\n  }\n  rev = params['revision-date'];\n  if ((rev != null) && !(rev in m.revision)) {\n    throw this.error(\"requested \" + rev + \" not available in \" + arg, 'import');\n  }\n  ref = m.extension;\n  for (k in ref) {\n    v = ref[k];\n    if (!(v.override === true)) {\n      continue;\n    }\n    original = this.resolve('extension', k);\n    copy = synth.copy({}, v);\n    copy.origin = synth.copy({}, (ref1 = original.origin) != null ? ref1 : original);\n    delete copy.override;\n    this.define('extension', k, copy);\n  }\n  return this.source[params.prefix] = m;\n}"
-   },
-   "construct": {
-    "!js/function": "function (arg, params, children, ctx) {\n  return this.compile(this.source[params.prefix], this.source);\n}"
-   },
-   "argument": "module"
-  },
-  "input": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "grouping": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var synth;\n  synth = this.require('data-synth');\n  return (synth.Object(params)).bind(children);\n}"
-   }
-  },
-  "leaf": {
-   "config": "0..1",
-   "default": "0..1",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "mandatory": "0..1",
-   "must": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "type": "0..1",
-   "units": "0..1",
-   "when": "0..1",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var synth;\n  synth = this.require('data-synth');\n  return synth.Property(params, function() {\n    if (children.type != null) {\n      return this.set({\n        type: children.type\n      });\n    }\n  });\n}"
-   },
-   "argument": "name"
-  },
-  "leaf-list": {
-   "config": "0..1",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "max-elements": "0..1",
-   "min-elements": "0..1",
-   "must": "0..n",
-   "ordered-by": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "type": "0..1",
-   "units": "0..1",
-   "when": "0..1",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var synth;\n  synth = this.require('data-synth');\n  return synth.List(params, function() {\n    if (children.type != null) {\n      return this.set({\n        type: children.type\n      });\n    }\n  });\n}"
-   },
-   "argument": "name"
-  },
-  "list": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "config": "0..1",
-   "container": "0..n",
-   "description": "0..1",
-   "grouping": "0..n",
-   "if-feature": "0..n",
-   "key": "0..1",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "max-elements": "0..1",
-   "min-elements": "0..1",
-   "must": "0..n",
-   "ordered-by": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "typedef": "0..n",
-   "unique": "0..1",
-   "uses": "0..n",
-   "when": "0..1",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var item, synth;\n  synth = this.require('data-synth');\n  item = (synth.Object(null)).bind(children);\n  return (synth.List(params)).set({\n    type: item\n  });\n}"
-   },
-   "argument": "name"
-  },
-  "mandatory": {
-   "preprocess": {
-    "!js/function": "function (arg, p, ctx) {\n  return ctx.mandatory = arg === true || arg === 'true';\n}"
-   },
-   "argument": "value"
-  },
-  "max-elements": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  if (arg !== 'unbounded') {\n    return ctx['max-elements'] = Number(arg);\n  }\n}"
-   },
-   "argument": "value"
-  },
-  "min-elements": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return ctx['min-elements'] = Number(arg);\n}"
-   },
-   "argument": "value"
-  },
-  "must": {
-   "description": "0..1",
-   "error-app-tag": "0..1",
-   "error-message": "0..1",
-   "reference": "0..1",
-   "argument": "condition"
-  },
-  "notification": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "description": "0..1",
-   "grouping": "0..n",
-   "if-feature": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "preprocess": {
-    "!js/function": "function (arg, params) {\n  return this.define('notification', arg, params);\n}"
-   },
-   "argument": "event"
-  },
-  "output": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "grouping": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var synth;\n  synth = this.require('data-synth');\n  return (synth.Object(params)).bind(children);\n}"
-   }
-  },
-  "path": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return ctx.path = arg.replace(/[_]/g, '.');\n}"
-   },
-   "argument": "value"
-  },
-  "pattern": {
-   "construct": {
-    "!js/function": "function (arg, params, children, ctx) {\n  if (ctx.patterns == null) {\n    ctx.patterns = [];\n  }\n  return ctx.patterns.push(new RegExp(arg));\n}"
-   },
-   "argument": "value"
-  },
-  "refine": {
-   "default": "0..1",
-   "description": "0..1",
-   "reference": "0..1",
-   "config": "0..1",
-   "mandatory": "0..1",
-   "presence": "0..1",
-   "must": "0..n",
-   "min-elements": "0..1",
-   "max-elements": "0..1",
-   "units": "0..1",
-   "argument": "target-node"
-  },
-  "require-instance": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return ctx['require-instance'] = arg === true || arg === 'true';\n}"
-   },
-   "argument": "value"
-  },
-  "revision": {
-   "description": "0..1",
-   "reference": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return this.define('revision', arg, params);\n}"
-   },
-   "argument": "date"
-  },
-  "rpc": {
-   "description": "0..1",
-   "grouping": "0..n",
-   "if-feature": "0..n",
-   "input": "0..1",
-   "output": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "typedef": "0..n",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var func, method, ref, ref1, request, response, synth;\n  synth = this.require('data-synth');\n  func = this.resolve('rpc', arg, false);\n  if (func == null) {\n    func = function(input, output, done) {\n      return done(\"No control logic found for '\" + arg + \"' rpc operation\");\n    };\n  }\n  request = (ref = children.input) != null ? ref : synth.Meta;\n  response = (ref1 = children.output) != null ? ref1 : synth.Meta;\n  method = function(data, resolve, reject) {\n    var e, error, input, output;\n    if (typeof console.debug === \"function\") {\n      console.debug(\"executing rpc \" + arg + \"...\");\n    }\n    try {\n      input = new request(data, this);\n      output = new response(null, this);\n    } catch (error) {\n      e = error;\n      return reject(e);\n    }\n    return func.call(this, input, output, function(e) {\n      if (e == null) {\n        return resolve(output);\n      } else {\n        return reject(e);\n      }\n    });\n  };\n  method.params = params;\n  method.input = request;\n  method.output = response;\n  return method;\n}"
-   },
-   "argument": "name"
-  },
-  "submodule": {
-   "argument": "name",
-   "anyxml": "0..n",
-   "augment": "0..n",
-   "belongs-to": "0..1",
-   "choice": "0..n",
-   "contact": "0..1",
-   "container": "0..n",
-   "description": "0..1",
-   "deviation": "0..n",
-   "extension": "0..n",
-   "feature": "0..n",
-   "grouping": "0..n",
-   "identity": "0..n",
-   "import": "0..n",
-   "include": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "notification": "0..n",
-   "organization": "0..1",
-   "reference": "0..1",
-   "revision": "0..n",
-   "rpc": "0..n",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "yang-version": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  var k, v;\n  for (k in params) {\n    v = params[k];\n    ctx[k] = v;\n  }\n  return delete ctx.submodule;\n}"
-   }
-  },
-  "status": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return ctx.status != null ? ctx.status : ctx.status = arg;\n}"
-   },
-   "argument": "value"
-  },
-  "type": {
-   "base": "0..1",
-   "bit": "0..n",
-   "enum": "0..n",
-   "fraction-digits": "0..1",
-   "length": "0..1",
-   "path": "0..1",
-   "pattern": "0..n",
-   "range": "0..1",
-   "require-instance": "0..1",
-   "type": "0..n",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return delete this.enumValue;\n}"
-   },
-   "construct": {
-    "!js/function": "function (arg, params, children, ctx) {\n  var key, mparams, ref, ref1, synth, typedef, value;\n  synth = this.require('data-synth');\n  typedef = this.resolve('typedef', arg);\n  if (typedef == null) {\n    throw this.error(\"unable to resolve typedef for \" + arg);\n  }\n  switch (false) {\n    case typedef.construct == null:\n      ctx.type = typedef.construct(params, this, arguments.callee);\n      break;\n    case typeof typedef.type !== 'object':\n      ref = typedef.type;\n      for (key in ref) {\n        value = ref[key];\n        mparams = synth.copy({}, value);\n        synth.copy(mparams, params);\n        arguments.callee.call(this, key, mparams, children, ctx);\n      }\n      break;\n    case typeof typedef.type !== 'string':\n      arguments.callee.call(this, typedef.type, params, children, ctx);\n  }\n  if ((ref1 = ctx.type) != null) {\n    ref1.toString = function() {\n      return arg;\n    };\n  }\n  return null;\n}"
-   },
-   "argument": "name"
-  },
-  "typedef": {
-   "default": "0..1",
-   "description": "0..1",
-   "units": "0..1",
-   "type": "0..1",
-   "reference": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params) {\n  return this.define('typedef', arg, params);\n}"
-   },
-   "argument": "name"
-  },
-  "uses": {
-   "augment": "0..n",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "refine": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "when": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  var changes, grouping, k, match, ref, ref1, synth, target, v;\n  synth = this.require('data-synth');\n  grouping = synth.copy({}, this.resolve('grouping', arg));\n  delete grouping.description;\n  delete grouping.reference;\n  synth.copy(ctx, grouping);\n  ref = params.refine;\n  for (target in ref) {\n    changes = ref[target];\n    match = this.locate(ctx, target);\n    if (match == null) {\n      continue;\n    }\n    for (k in changes) {\n      v = changes[k];\n      match[k] = v;\n    }\n  }\n  ref1 = params.augment;\n  for (target in ref1) {\n    changes = ref1[target];\n    match = this.locate(ctx, target);\n    if (match == null) {\n      continue;\n    }\n    synth.copy(match, changes);\n  }\n  if (typeof ctx.uses === 'object') {\n    return delete ctx.uses[arg];\n  } else {\n    return delete ctx.uses;\n  }\n}"
-   },
-   "argument": "name"
-  },
-  "when": {
-   "description": "0..1",
-   "reference": "0..1",
-   "argument": "condition"
-  },
-  "anyxml": {},
-  "base": {
-   "argument": "name"
-  },
-  "contact": {
-   "argument": {
-    "text": {
-     "yin-element": "true"
-    }
-   }
-  },
-  "default": {
-   "argument": "value"
-  },
-  "description": {
-   "argument": {
-    "text": {
-     "yin-element": "true"
-    }
-   }
-  },
-  "error-app-tag": {
-   "argument": "value"
-  },
-  "error-message": {
-   "argument": {
-    "value": {
-     "yin-element": "true"
-    }
-   }
-  },
-  "fraction-digits": {
-   "argument": "value"
-  },
-  "key": {
-   "argument": "value"
-  },
-  "length": {
-   "argument": "value"
-  },
-  "namespace": {
-   "argument": "uri"
-  },
-  "ordered-by": {
-   "argument": "value"
-  },
-  "organization": {
-   "argument": {
-    "text": {
-     "yin-element": "true"
-    }
-   }
-  },
-  "position": {
-   "argument": "value"
-  },
-  "presence": {
-   "argument": "value"
-  },
-  "range": {
-   "argument": "value"
-  },
-  "reference": {
-   "argument": {
-    "text": {
-     "yin-element": "true"
-    }
-   }
-  },
-  "revision-date": {
-   "argument": "date"
-  },
-  "unique": {
-   "argument": "tag"
-  },
-  "units": {
-   "argument": "value"
-  },
-  "value": {
-   "argument": "value"
-  },
-  "yang-version": {
-   "argument": "value"
-  },
-  "yin-element": {
-   "argument": "value"
-  }
- },
- "pkgdir": "/Users/kkashalk/dev/rift/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang",
- "module": {}
-}
\ No newline at end of file
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/json-vnfd.json b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/json-vnfd.json
deleted file mode 100644 (file)
index 440b23b..0000000
+++ /dev/null
@@ -1,3971 +0,0 @@
-{
- "synth": "source",
- "name": "rw-vnfd",
- "schema": {
-  "module": {
-   "rw-vnfd": {
-    "namespace": "http://riftio.com/ns/riftware-1.0/rw-vnfd",
-    "prefix": "rw-vnfd",
-    "import": {
-     "vnfd": {
-      "prefix": "vnfd"
-     },
-     "rwvcs-types": {
-      "prefix": "rwvcstypes"
-     },
-     "rw-pb-ext": {
-      "prefix": "rwpb"
-     },
-     "ietf-yang-types": {
-      "prefix": "yang"
-     },
-     "mano-types": {
-      "prefix": "manotypes"
-     }
-    },
-    "revision": {
-     "2015-09-10": {
-      "description": "Initial revision. This YANG file augments\nthe base MANO VNFD",
-      "reference": "Derived from earlier versions of base YANG files"
-     }
-    },
-    "augment": {
-     "/vnfd:vnfd-catalog/vnfd:vnfd": {
-      "uses": {},
-      "leaf": {
-       "meta": {
-        "description": "Any meta-data needed by the UI",
-        "type": "string"
-       }
-      },
-      "list": {
-       "component": {
-        "description": "This section defines the RIFT.ware\nvirtual components",
-        "key": "component-name",
-        "leaf": {
-         "component-name": {
-          "description": "",
-          "type": "string"
-         },
-         "component-type": {
-          "description": "",
-          "type": "rwvcstypes:component_type",
-          "mandatory": true
-         }
-        },
-        "choice": {
-         "component": {
-          "case": {
-           "rwvcs-rwcollection": {
-            "container": {
-             "rwcollection": {
-              "description": "This section defines a RW.VCS\nrwollection component",
-              "leaf": {
-               "collection-type": {
-                "description": "Collection type",
-                "type": "string"
-               }
-              },
-              "container": {
-               "event-list": {
-                "description": "",
-                "list": {
-                 "event": {
-                  "description": "This section contains a list\nof RW.VCS events",
-                  "key": "name",
-                  "leaf": {
-                   "name": {
-                    "description": "Name of the event",
-                    "type": "string"
-                   }
-                  },
-                  "list": {
-                   "action": {
-                    "description": "This section contains a sequence\nof RW.VCS actions",
-                    "key": "name",
-                    "leaf": {
-                     "name": {
-                      "description": "Name of the action within the sequence",
-                      "type": "string"
-                     },
-                     "python-loop-expression": {
-                      "description": "Python expression",
-                      "type": "string"
-                     },
-                     "python-loop-iterate": {
-                      "description": "Python iteration",
-                      "type": "string"
-                     }
-                    },
-                    "grouping": {
-                     "rwvcs-python-loop": {
-                      "leaf": {
-                       "python-loop-expression": {
-                        "description": "Python expression",
-                        "type": "string"
-                       },
-                       "python-loop-iterate": {
-                        "description": "Python iteration",
-                        "type": "string"
-                       }
-                      }
-                     }
-                    },
-                    "choice": {
-                     "action": {
-                      "case": {
-                       "annex": {
-                        "container": {
-                         "annex": {
-                          "leaf": {
-                           "component-name": {
-                            "description": "Name of the component type\nin the inventory",
-                            "type": {
-                             "leafref": {
-                              "path": "../../../../../../../component/component-name"
-                             }
-                            }
-                           },
-                           "instance-id": {
-                            "description": "ID of the component instance\nin the inventory",
-                            "type": "string"
-                           }
-                          }
-                         }
-                        }
-                       },
-                       "start": {
-                        "container": {
-                         "start": {
-                          "leaf": {
-                           "component-name": {
-                            "description": "Name of the component type in\nthe inventory",
-                            "type": {
-                             "leafref": {
-                              "path": "../../../../../../../component/component-name"
-                             }
-                            }
-                           },
-                           "instance-id": {
-                            "description": "ID of the component instance\nin the inventory",
-                            "type": "string"
-                           },
-                           "config-ready": {
-                            "description": "Config readiness check enable",
-                            "type": "boolean",
-                            "default": "true"
-                           },
-                           "recovery-action": {
-                            "description": "Define recovery action if this component fail",
-                            "type": "recovery-type"
-                           }
-                          },
-                          "leaf-list": {
-                           "python-variable": {
-                            "description": "List of Python variable assignments",
-                            "type": "string"
-                           }
-                          }
-                         }
-                        }
-                       },
-                       "sleep": {
-                        "container": {
-                         "sleep": {
-                          "leaf": {
-                           "wait-time-usec": {
-                            "description": "Time to wait while sleeping",
-                            "type": "uint32"
-                           }
-                          }
-                         }
-                        }
-                       }
-                      }
-                     }
-                    }
-                   }
-                  }
-                 }
-                }
-               }
-              }
-             }
-            }
-           },
-           "rwvcs-rwvm": {
-            "container": {
-             "rwvm": {
-              "description": "This section defines a RW.VCS\nrwvm component",
-              "leaf": {
-               "pool-name": {
-                "description": "Name of the pool from which to\nallocate the VM",
-                "type": "string"
-               },
-               "leader": {
-                "description": "True if this VM is designated as a leader for\nthe parent collection.",
-                "type": "boolean"
-               }
-              },
-              "uses": {},
-              "container": {
-               "event-list": {
-                "description": "",
-                "list": {
-                 "event": {
-                  "description": "This section contains a list\nof RW.VCS events",
-                  "key": "name",
-                  "leaf": {
-                   "name": {
-                    "description": "Name of the event",
-                    "type": "string"
-                   }
-                  },
-                  "list": {
-                   "action": {
-                    "description": "This section contains a sequence\nof RW.VCS actions",
-                    "key": "name",
-                    "leaf": {
-                     "name": {
-                      "description": "Name of the action within the sequence",
-                      "type": "string"
-                     },
-                     "python-loop-expression": {
-                      "description": "Python expression",
-                      "type": "string"
-                     },
-                     "python-loop-iterate": {
-                      "description": "Python iteration",
-                      "type": "string"
-                     }
-                    },
-                    "grouping": {
-                     "rwvcs-python-loop": {
-                      "leaf": {
-                       "python-loop-expression": {
-                        "description": "Python expression",
-                        "type": "string"
-                       },
-                       "python-loop-iterate": {
-                        "description": "Python iteration",
-                        "type": "string"
-                       }
-                      }
-                     }
-                    },
-                    "choice": {
-                     "action": {
-                      "case": {
-                       "annex": {
-                        "container": {
-                         "annex": {
-                          "leaf": {
-                           "component-name": {
-                            "description": "Name of the component type\nin the inventory",
-                            "type": {
-                             "leafref": {
-                              "path": "../../../../../../../component/component-name"
-                             }
-                            }
-                           },
-                           "instance-id": {
-                            "description": "ID of the component instance\nin the inventory",
-                            "type": "string"
-                           }
-                          }
-                         }
-                        }
-                       },
-                       "start": {
-                        "container": {
-                         "start": {
-                          "leaf": {
-                           "component-name": {
-                            "description": "Name of the component type in\nthe inventory",
-                            "type": {
-                             "leafref": {
-                              "path": "../../../../../../../component/component-name"
-                             }
-                            }
-                           },
-                           "instance-id": {
-                            "description": "ID of the component instance\nin the inventory",
-                            "type": "string"
-                           },
-                           "config-ready": {
-                            "description": "Config readiness check enable",
-                            "type": "boolean",
-                            "default": "true"
-                           },
-                           "recovery-action": {
-                            "description": "Define recovery action if this component fail",
-                            "type": "recovery-type"
-                           }
-                          },
-                          "leaf-list": {
-                           "python-variable": {
-                            "description": "List of Python variable assignments",
-                            "type": "string"
-                           }
-                          }
-                         }
-                        }
-                       },
-                       "sleep": {
-                        "container": {
-                         "sleep": {
-                          "leaf": {
-                           "wait-time-usec": {
-                            "description": "Time to wait while sleeping",
-                            "type": "uint32"
-                           }
-                          }
-                         }
-                        }
-                       }
-                      }
-                     }
-                    }
-                   }
-                  }
-                 }
-                }
-               },
-               "valgrind": {
-                "leaf": {
-                 "enable": {
-                  "description": "Run the component under valgrind",
-                  "type": "boolean"
-                 }
-                },
-                "leaf-list": {
-                 "opts": {
-                  "description": "Command line options to pass to valgrind",
-                  "type": "string"
-                 }
-                }
-               }
-              }
-             }
-            }
-           },
-           "rwvcs-rwproc": {
-            "container": {
-             "rwproc": {
-              "description": "This section defines a RW.VCS\nrwproc component",
-              "leaf": {
-               "run-as": {
-                "description": "Host OS user that should run this\nprocess, requires sudo -E access\nand non-collapsed processes",
-                "type": "string"
-               }
-              },
-              "list": {
-               "tasklet": {
-                "description": "List of tasklets to be run within\nthis process",
-                "key": "name",
-                "leaf": {
-                 "name": {
-                  "description": "Local description of the tasklet",
-                  "type": "string"
-                 },
-                 "component-name": {
-                  "description": "Component name of the tasklet",
-                  "mandatory": true,
-                  "type": "string"
-                 },
-                 "instance-id": {
-                  "description": "If specified, the desired instance-id of\ntasklet component instance",
-                  "type": "uint32"
-                 },
-                 "config-ready": {
-                  "description": "Config readiness check enable",
-                  "type": "boolean",
-                  "default": "true"
-                 },
-                 "recovery-action": {
-                  "description": "Define recovery action if this component fail",
-                  "type": "recovery-type"
-                 }
-                },
-                "leaf-list": {
-                 "python-variable": {
-                  "description": "List of Python variable assignments",
-                  "type": "string"
-                 }
-                }
-               }
-              },
-              "container": {
-               "valgrind": {
-                "leaf": {
-                 "enable": {
-                  "description": "Run the component under valgrind",
-                  "type": "boolean"
-                 }
-                },
-                "leaf-list": {
-                 "opts": {
-                  "description": "Command line options to pass to valgrind",
-                  "type": "string"
-                 }
-                }
-               }
-              }
-             }
-            }
-           },
-           "native-proc": {
-            "container": {
-             "native-proc": {
-              "leaf": {
-               "run-as": {
-                "description": "Host OS user that should run this\nprocess, requires sudo -E access",
-                "type": "string"
-               },
-               "environment": {
-                "description": "Runtime environment for native process",
-                "type": "string"
-               },
-               "exe-path": {
-                "description": "Path to native process executable",
-                "type": "string"
-               },
-               "args": {
-                "description": "Arguments to pass to native process",
-                "type": "string"
-               },
-               "network-namespace": {
-                "description": "Namespace to start process in",
-                "type": "string"
-               },
-               "stdout": {
-                "description": "Redirect stdout to the file at the\nspecified path",
-                "type": "string"
-               },
-               "stderr": {
-                "description": "Redirect stderr to the file at the\nspecified path. Optionally, 'stdout'\nmay be used to redirect to the same\nfile as stdout",
-                "type": "string"
-               },
-               "interactive": {
-                "description": "Native process is interactive and needs\nterminal control",
-                "type": "empty"
-               }
-              },
-              "container": {
-               "valgrind": {
-                "leaf": {
-                 "enable": {
-                  "description": "Run the component under valgrind",
-                  "type": "boolean"
-                 }
-                },
-                "leaf-list": {
-                 "opts": {
-                  "description": "Command line options to pass to valgrind",
-                  "type": "string"
-                 }
-                }
-               }
-              }
-             }
-            }
-           },
-           "rwvcs-rwtasklet": {
-            "container": {
-             "rwtasklet": {
-              "description": "This section defines a RW.VCS\nrwtasklet component",
-              "leaf": {
-               "plugin-directory": {
-                "description": "",
-                "type": "string"
-               },
-               "plugin-name": {
-                "description": "",
-                "type": "string"
-               },
-               "plugin-version": {
-                "description": "",
-                "type": "string"
-               }
-              }
-             }
-            }
-           }
-          }
-         }
-        }
-       },
-       "control-param": {
-        "description": "List of control parameters to manage and\nupdate the running configuration of the VNF",
-        "key": "id",
-        "leaf": {
-         "id": {
-          "type": "string"
-         },
-         "name": {
-          "type": "string"
-         },
-         "description": {
-          "type": "string"
-         },
-         "group-tag": {
-          "description": "A simple tag to group control parameters",
-          "type": "string"
-         },
-         "min-value": {
-          "description": "Minimum value for the parameter",
-          "type": "uint64"
-         },
-         "max-value": {
-          "description": "Maxium value for the parameter",
-          "type": "uint64"
-         },
-         "current-value": {
-          "description": "Current value for the parameter",
-          "type": "uint64"
-         },
-         "step-value": {
-          "description": "Step value for the parameter",
-          "type": "uint64"
-         },
-         "units": {
-          "type": "string"
-         },
-         "widget-type": {
-          "type": "manotypes:widget-type"
-         },
-         "url": {
-          "description": "This is the URL where to perform the operation",
-          "type": "inet:uri"
-         },
-         "method": {
-          "description": "This is the method to be performed at the uri.\nPOST by default for action",
-          "type": "manotypes:http-method",
-          "default": "POST"
-         },
-         "payload": {
-          "description": "This is the operation payload or payload template as stringified\nJSON. This field provides the data  to be sent for this operation\ncall",
-          "type": "string"
-         }
-        }
-       },
-       "action-param": {
-        "description": "List of action parameters to\ncontrol VNF",
-        "key": "id",
-        "leaf": {
-         "id": {
-          "type": "string"
-         },
-         "name": {
-          "type": "string"
-         },
-         "description": {
-          "type": "string"
-         },
-         "group-tag": {
-          "description": "A simple tag to group monitoring parameter",
-          "type": "string"
-         },
-         "url": {
-          "description": "This is the URL where to perform the operation",
-          "type": "inet:uri"
-         },
-         "method": {
-          "description": "This is the method to be performed at the uri.\nPOST by default for action",
-          "type": "manotypes:http-method",
-          "default": "POST"
-         },
-         "payload": {
-          "description": "This is the operation payload or payload template to be sent in\nthe data for this operation call",
-          "type": "string"
-         }
-        }
-       }
-      }
-     },
-     "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:vdu": {
-      "leaf": {
-       "vcs-component-ref": {
-        "description": "This defines the software components using the\nRIFT.ware Virtual Component System (VCS). This\nalso allows specifying a state machine during\nthe VM startup.\nNOTE: This is an significant addition to MANO,\nsince MANO doesn't clearly specify a method to\nidentify various software components in a VM.\nAlso using a state machine is not something that\nis well described in MANO.",
-        "type": {
-         "leafref": {
-          "path": "/vnfd:vnfd-catalog/vnfd:vnfd/rw-vnfd:component/rw-vnfd:component-name"
-         }
-        }
-       }
-      }
-     }
-    }
-   }
-  }
- },
- "dependencies": {
-  "vnfd": {
-   "module": {
-    "vnfd": {
-     "namespace": "urn:ietf:params:xml:ns:yang:nfvo:vnfd",
-     "prefix": "vnfd",
-     "import": {
-      "mano-types": {
-       "prefix": "manotypes"
-      },
-      "rw-pb-ext": {
-       "prefix": "rwpb"
-      },
-      "ietf-yang-types": {
-       "prefix": "yang"
-      },
-      "ietf-inet-types": {
-       "prefix": "inet"
-      }
-     },
-     "revision": {
-      "2015-09-10": {
-       "description": "Initial revision. This YANG file defines\nthe Virtual Network Function (VNF)",
-       "reference": "Derived from earlier versions of base YANG files"
-      }
-     },
-     "grouping": {
-      "common-connection-point": {
-       "leaf": {
-        "name": {
-         "description": "Name of the connection point",
-         "type": "string"
-        },
-        "id": {
-         "description": "Identifier for the internal connection points",
-         "type": "string"
-        },
-        "short-name": {
-         "description": "Short name of the connection point",
-         "type": "string"
-        },
-        "type": {
-         "description": "Type of the connection point.",
-         "type": "manotypes:connection-point-type"
-        }
-       }
-      },
-      "virtual-interface": {
-       "container": {
-        "virtual-interface": {
-         "description": "Container for the virtual interface properties",
-         "leaf": {
-          "type": {
-           "description": "Specifies the type of virtual interface\nbetween VM and host.\nVIRTIO          : Use the traditional VIRTIO interface.\nPCI-PASSTHROUGH : Use PCI-PASSTHROUGH interface.\nSR-IOV          : Use SR-IOV interface.\nOM-MGMT         : Used to specify openmano mgmt external-connection type",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "OM-MGMT": null,
-              "PCI-PASSTHROUGH": null,
-              "SR-IOV": null,
-              "VIRTIO": null
-             }
-            }
-           },
-           "default": "VIRTIO"
-          },
-          "vpci": {
-           "description": "Specifies the virtual PCI address. Expressed in\nthe following format dddd:dd:dd.d. For example\n0000:00:12.0. This information can be used to\npass as metadata during the VM creation.",
-           "type": "string"
-          },
-          "bandwidth": {
-           "description": "Aggregate bandwidth of the NIC.",
-           "type": "uint64"
-          }
-         }
-        }
-       }
-      }
-     },
-     "container": {
-      "vnfd-catalog": {
-       "description": "Virtual Network Function Descriptor (VNFD).",
-       "list": {
-        "vnfd": {
-         "key": "id",
-         "leaf": {
-          "id": {
-           "description": "Identifier for the VNFD.",
-           "type": "string"
-          },
-          "name": {
-           "description": "VNFD name.",
-           "mandatory": "true",
-           "type": "string"
-          },
-          "short-name": {
-           "description": "VNFD short name.",
-           "type": "string"
-          },
-          "vendor": {
-           "description": "Vendor of the VNFD.",
-           "type": "string"
-          },
-          "logo": {
-           "description": "Vendor logo for the Virtual Network Function",
-           "type": "string"
-          },
-          "description": {
-           "description": "Description of the VNFD.",
-           "type": "string"
-          },
-          "version": {
-           "description": "Version of the VNFD",
-           "type": "string"
-          },
-          "service-function-chain": {
-           "description": "Type of node in Service Function Chaining Architecture",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "UNAWARE": null,
-              "CLASSIFIER": null,
-              "SF": null,
-              "SFF": null
-             }
-            }
-           },
-           "default": "UNAWARE"
-          },
-          "service-function-type": {
-           "description": "Type of Service Function.\nNOTE: This needs to map with Service Function Type in ODL to\nsupport VNFFG. Service Function Type is manadatory param in ODL\nSFC. This is temporarily set to string for ease of use",
-           "type": "string"
-          }
-         },
-         "container": {
-          "mgmt-interface": {
-           "description": "Interface over which the VNF is managed.",
-           "uses": "manotypes:vnf-configuration",
-           "choice": {
-            "endpoint-type": {
-             "description": "Indicates the type of management endpoint.",
-             "case": {
-              "ip": {
-               "description": "Specifies the static IP address for managing the VNF.",
-               "leaf": {
-                "ip-address": {
-                 "type": "inet:ip-address"
-                }
-               }
-              },
-              "vdu-id": {
-               "description": "Use the default management interface on this VDU.",
-               "leaf": {
-                "vdu-id": {
-                 "type": {
-                  "leafref": {
-                   "path": "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:vdu/vnfd:id"
-                  }
-                 }
-                }
-               }
-              },
-              "cp": {
-               "description": "Use the ip address associated with this connection point.",
-               "leaf": {
-                "cp": {
-                 "type": {
-                  "leafref": {
-                   "path": "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:connection-point/vnfd:name"
-                  }
-                 }
-                }
-               }
-              }
-             }
-            }
-           },
-           "leaf": {
-            "port": {
-             "description": "Port for the management interface.",
-             "type": "inet:port-number"
-            }
-           },
-           "container": {
-            "dashboard-params": {
-             "description": "Parameters for the VNF dashboard",
-             "leaf": {
-              "path": {
-               "description": "The HTTP path for the dashboard",
-               "type": "string"
-              },
-              "https": {
-               "description": "Pick HTTPS instead of HTTP , Default is false",
-               "type": "boolean"
-              },
-              "port": {
-               "description": "The HTTP port for the dashboard",
-               "type": "inet:port-number"
-              }
-             }
-            }
-           }
-          }
-         },
-         "list": {
-          "internal-vld": {
-           "key": "id",
-           "description": "List of Internal Virtual Link Descriptors (VLD).\nThe internal VLD describes the basic topology of\nthe connectivity (e.g. E-LAN, E-Line, E-Tree)\nbetween internal VNF components of the system.",
-           "leaf": {
-            "id": {
-             "description": "Identifier for the VLD",
-             "type": "string"
-            },
-            "name": {
-             "description": "Name of the internal VLD",
-             "type": "string"
-            },
-            "short-name": {
-             "description": "Short name of the internal VLD",
-             "type": "string"
-            },
-            "description": {
-             "type": "string"
-            },
-            "type": {
-             "type": "manotypes:virtual-link-type"
-            },
-            "root-bandwidth": {
-             "description": "For ELAN this is the aggregate bandwidth.",
-             "type": "uint64"
-            },
-            "leaf-bandwidth": {
-             "description": "For ELAN this is the bandwidth of branches.",
-             "type": "uint64"
-            }
-           },
-           "leaf-list": {
-            "internal-connection-point-ref": {
-             "type": {
-              "leafref": {
-               "path": "../../vdu/internal-connection-point/id"
-              }
-             }
-            }
-           },
-           "uses": "manotypes:provider-network"
-          },
-          "connection-point": {
-           "key": "name",
-           "description": "List for external connection points. Each VNF has one\nor more external connection points. As the name\nimplies that external connection points are used for\nconnecting the VNF to other VNFs or to external networks.\nEach VNF exposes these connection points to the\norchestrator. The orchestrator can construct network\nservices by connecting the connection points between\ndifferent VNFs. The NFVO will use VLDs and VNFFGs at\nthe network service level to construct network services.",
-           "uses": "common-connection-point"
-          },
-          "vdu": {
-           "description": "List of Virtual Deployment Units",
-           "key": "id",
-           "leaf": {
-            "id": {
-             "description": "Unique id for the VDU",
-             "type": "string"
-            },
-            "name": {
-             "description": "Unique name for the VDU",
-             "type": "string"
-            },
-            "description": {
-             "description": "Description of the VDU.",
-             "type": "string"
-            },
-            "count": {
-             "description": "Number of instances of VDU",
-             "type": "uint64"
-            },
-            "mgmt-vpci": {
-             "description": "Specifies the virtual PCI address. Expressed in\nthe following format dddd:dd:dd.d. For example\n0000:00:12.0. This information can be used to\npass as metadata during the VM creation.",
-             "type": "string"
-            },
-            "image": {
-             "description": "Image name for the software image.\nIf the image name is found within the VNF packaage it will\nbe uploaded to all cloud accounts during onboarding process.\nOtherwise, the image must be added to the cloud account with\nthe same name as entered here.\n",
-             "mandatory": "true",
-             "type": "string"
-            },
-            "image-checksum": {
-             "description": "Image md5sum for the software image.\nThe md5sum, if provided, along with the image name uniquely\nidentifies an image uploaded to the CAL.\n",
-             "type": "string"
-            },
-            "cloud-init": {
-             "description": "Content of cloud-init script",
-             "type": "string"
-            }
-           },
-           "uses": {
-            "manotypes:vm-flavor": null,
-            "manotypes:guest-epa": null,
-            "manotypes:vswitch-epa": null,
-            "manotypes:hypervisor-epa": null,
-            "manotypes:host-epa": null
-           },
-           "list": {
-            "internal-connection-point": {
-             "key": "id",
-             "description": "List for internal connection points. Each VNFC\nhas zero or more internal connection points.\nInternal connection points are used for connecting\nthe VNF components internal to the VNF. If a VNF\nhas only one VNFC, it may not have any internal\nconnection points.",
-             "uses": "common-connection-point",
-             "leaf": {
-              "internal-vld-ref": {
-               "type": {
-                "leafref": {
-                 "path": "../../../internal-vld/id"
-                }
-               }
-              }
-             }
-            },
-            "internal-interface": {
-             "description": "List of internal interfaces for the VNF",
-             "key": "name",
-             "leaf": {
-              "name": {
-               "description": "Name of internal interface. Note that this\nname has only local significance to the VDU.",
-               "type": "string"
-              },
-              "vdu-internal-connection-point-ref": {
-               "type": {
-                "leafref": {
-                 "path": "../../internal-connection-point/id"
-                }
-               }
-              }
-             },
-             "uses": "virtual-interface"
-            },
-            "external-interface": {
-             "description": "List of external interfaces for the VNF.\nThe external interfaces enable sending\ntraffic to and from VNF.",
-             "key": "name",
-             "leaf": {
-              "name": {
-               "description": "Name of the external interface. Note that\nthis name has only local significance.",
-               "type": "string"
-              },
-              "vnfd-connection-point-ref": {
-               "description": "Name of the external connection point.",
-               "type": {
-                "leafref": {
-                 "path": "../../../connection-point/name"
-                }
-               }
-              }
-             },
-             "uses": "virtual-interface"
-            }
-           }
-          },
-          "vdu-dependency": {
-           "description": "List of VDU dependencies.",
-           "key": "vdu-source-ref",
-           "leaf": {
-            "vdu-source-ref": {
-             "type": {
-              "leafref": {
-               "path": "../../vdu/id"
-              }
-             }
-            },
-            "vdu-depends-on-ref": {
-             "description": "Reference to the VDU that\nsource VDU depends.",
-             "type": {
-              "leafref": {
-               "path": "../../vdu/id"
-              }
-             }
-            }
-           }
-          },
-          "placement-groups": {
-           "description": "List of placement groups at VNF level",
-           "key": "name",
-           "uses": "manotypes:placement-group-info",
-           "list": {
-            "constituent-vdus": {
-             "description": "List of VDUs that are part of this placement group",
-             "key": "member-vdu-ref",
-             "leaf": {
-              "member-vdu-ref": {
-               "type": {
-                "leafref": {
-                 "path": "../../../vdu/id"
-                }
-               }
-              }
-             }
-            }
-           }
-          }
-         },
-         "uses": "manotypes:monitoring-param"
-        }
-       }
-      }
-     }
-    }
-   }
-  },
-  "mano-types": {
-   "module": {
-    "mano-types": {
-     "namespace": "urn:ietf:params:xml:ns:yang:nfvo:mano-types",
-     "prefix": "manotypes",
-     "import": {
-      "ietf-inet-types": {
-       "prefix": "inet"
-      },
-      "rw-pb-ext": {
-       "prefix": "rwpb"
-      }
-     },
-     "revision": {
-      "2015-04-23": {
-       "description": "Initial revision. This YANG file defines\nthe reusable base types for VNF Management\nand Orchestration (MANO).",
-       "reference": "Derived from earlier versions of base YANG files"
-      }
-     },
-     "typedef": {
-      "parameter-data-type": {
-       "type": {
-        "enumeration": {
-         "enum": {
-          "STRING": {
-           "value": 0
-          },
-          "INTEGER": {
-           "value": 1
-          },
-          "BOOLEAN": {
-           "value": 2
-          }
-         }
-        }
-       }
-      },
-      "virtual-link-type": {
-       "description": "Type of virtual link\nELAN: A multipoint service connecting a set of VNFs\n// ELINE: For a simple point to point connection\n//        between a VNF and the existing network.\n// ETREE: A multipoint service connecting one or\n//        more roots and a set of leaves, but\n//        preventing inter-leaf communication.",
-       "type": {
-        "enumeration": {
-         "enum": "ELAN"
-        }
-       }
-      },
-      "http-method": {
-       "description": "Type of HTTP operation",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "POST": {
-           "value": 0
-          },
-          "PUT": {
-           "value": 1
-          },
-          "GET": {
-           "value": 2
-          },
-          "DELETE": {
-           "value": 3
-          },
-          "OPTIONS": {
-           "value": 4
-          },
-          "PATCH": {
-           "value": 5
-          }
-         }
-        }
-       }
-      },
-      "api-type": {
-       "description": "Type of API to fetch monitoring params",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "HTTP": {
-           "value": 0
-          },
-          "NETCONF": {
-           "value": 1
-          },
-          "SOAP": {
-           "value": 2
-          }
-         }
-        }
-       }
-      },
-      "json-query-method": {
-       "description": "The method to extract a value from a JSON response\n\nNAMEKEY - Use the name as the key for a non-nested value.\nJSONPATH - Use jsonpath-rw implemenation to extract a value.\nOBJECTPATH - Use objectpath implemenation to extract a value.",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "NAMEKEY": {
-           "value": 0
-          },
-          "JSONPATH": {
-           "value": 1
-          },
-          "OBJECTPATH": {
-           "value": 2
-          }
-         }
-        }
-       }
-      },
-      "param-value-type": {
-       "description": "The type of the parameter value",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "INT": {
-           "value": 0
-          },
-          "DECIMAL": {
-           "value": 1
-          },
-          "STRING": {
-           "value": 2
-          }
-         }
-        }
-       }
-      },
-      "connection-point-type": {
-       "description": "Type of connection point\nVPORT: Virtual Port\n// VNIC_ADDR: Virtual NIC Address\n// PNIC_ADDR: Physical NIC Address\n// PPORT: Phsical Port.",
-       "type": {
-        "enumeration": {
-         "enum": "VPORT"
-        }
-       }
-      },
-      "widget-type": {
-       "description": "Type of the widget, typically used by the UI.",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "HISTOGRAM": {
-           "value": 0
-          },
-          "BAR": {
-           "value": 1
-          },
-          "GAUGE": {
-           "value": 2
-          },
-          "SLIDER": {
-           "value": 3
-          },
-          "COUNTER": {
-           "value": 4
-          },
-          "TEXTBOX": {
-           "value": 5
-          }
-         }
-        }
-       }
-      },
-      "cpu-feature-type": {
-       "description": "Enumeration for CPU features.\n\nAES: CPU supports advanced instruction set for\nAES (Advanced Encryption Standard).\n\nCAT: Cache Allocation Technology (CAT) allows\nan Operating System, Hypervisor, or similar\nsystem management agent to specify the amount\nof L3 cache (currently the last-level cache\nin most server and client platforms) space an\napplication can fill (as a hint to hardware\nfunctionality, certain features such as power\nmanagement may override CAT settings).\n\nCMT: Cache Monitoring Technology (CMT) allows\nan Operating System, Hypervisor, or similar\nsystem management agent to determine the\nusage of cache based on applications running\non the platform. The implementation is\ndirected at L3 cache monitoring (currently\nthe last-level cache in most server and\nclient platforms).\n\nDDIO: Intel Data Direct I/O (DDIO) enables\nEthernet server NICs and controllers talk\ndirectly to the processor cache without a\ndetour via system memory. This enumeration\nspecifies if the VM requires a DDIO\ncapable host.",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "PREFER_AES": {
-           "value": 0
-          },
-          "REQUIRE_AES": {
-           "value": 1
-          },
-          "PREFER_CAT": {
-           "value": 2
-          },
-          "REQUIRE_CAT": {
-           "value": 3
-          },
-          "PREFER_CMT": {
-           "value": 4
-          },
-          "REQUIRE_CMT": {
-           "value": 5
-          },
-          "PREFER_DDIO": {
-           "value": 6
-          },
-          "REQUIRE_DDIO": {
-           "value": 7
-          }
-         }
-        }
-       }
-      },
-      "alarm-severity-type": {
-       "description": "An indication of the importance or ugency of the alarm",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "LOW": {
-           "value": 0
-          },
-          "MODERATE": {
-           "value": 1
-          },
-          "CRITICAL": {
-           "value": 2
-          }
-         }
-        }
-       }
-      },
-      "alarm-metric-type": {
-       "description": "The type of metrics to register the alarm for",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "CPU_UTILIZATION": {
-           "value": 0
-          },
-          "MEMORY_UTILIZATION": {
-           "value": 1
-          },
-          "STORAGE_UTILIZATION": {
-           "value": 2
-          }
-         }
-        }
-       }
-      },
-      "alarm-statistic-type": {
-       "description": "The type of statistic to used to measure a metric to determine\nthreshold crossing for an alarm.",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "AVERAGE": {
-           "value": 0
-          },
-          "MINIMUM": {
-           "value": 1
-          },
-          "MAXIMUM": {
-           "value": 2
-          },
-          "COUNT": {
-           "value": 3
-          },
-          "SUM": {
-           "value": 4
-          }
-         }
-        }
-       }
-      },
-      "alarm-operation-type": {
-       "description": "The relational operator used to define whether an alarm should be\ntriggered when, say, the metric statistic goes above or below a\nspecified value.",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "GE": {
-           "value": 0
-          },
-          "LE": {
-           "value": 1
-          },
-          "GT": {
-           "value": 2
-          },
-          "LT": {
-           "value": 3
-          },
-          "EQ": {
-           "value": 4
-          }
-         }
-        }
-       }
-      }
-     },
-     "grouping": {
-      "primitive-parameter": {
-       "leaf": {
-        "name": {
-         "description": "Name of the parameter.",
-         "type": "string"
-        },
-        "data-type": {
-         "description": "Data type associated with the name.",
-         "type": "manotypes:parameter-data-type"
-        },
-        "mandatory": {
-         "description": "Is this field mandatory",
-         "type": "boolean",
-         "default": "false"
-        },
-        "default-value": {
-         "description": "The default value for this field",
-         "type": "string"
-        },
-        "parameter-pool": {
-         "description": "NSD Parameter pool name to use for this paramter",
-         "type": "string"
-        },
-        "read-only": {
-         "description": "The value should be greyed out by the UI.\nOnly applies to parameters with default values.",
-         "type": "boolean"
-        },
-        "hidden": {
-         "description": "The value should be hidden by the UI.\nOnly applies to parameters with default values.",
-         "type": "boolean"
-        }
-       }
-      },
-      "vnf-configuration": {
-       "container": {
-        "vnf-configuration": {
-         "description": "Information regarding the VNF configuration\nis captured here. ",
-         "choice": {
-          "config-method": {
-           "description": "Defines the configuration method for the VNF.",
-           "case": {
-            "netconf": {
-             "description": "Use NETCONF for configuring the VNF.",
-             "container": {
-              "netconf": {
-               "leaf": {
-                "target": {
-                 "description": "Netconf configuration target",
-                 "type": {
-                  "enumeration": {
-                   "enum": {
-                    "running": {
-                     "value": 0
-                    },
-                    "candidate": {
-                     "value": 1
-                    }
-                   }
-                  }
-                 }
-                },
-                "protocol": {
-                 "description": "Protocol to use for netconf (e.g. ssh)",
-                 "type": {
-                  "enumeration": {
-                   "enum": {
-                    "None": {
-                     "value": 0
-                    },
-                    "ssh": {
-                     "value": 1
-                    }
-                   }
-                  }
-                 }
-                },
-                "port": {
-                 "description": "Port for the netconf server.",
-                 "type": "inet:port-number"
-                }
-               }
-              }
-             }
-            },
-            "rest": {
-             "description": "Use REST for configuring the VNF.",
-             "container": {
-              "rest": {
-               "leaf": {
-                "port": {
-                 "description": "Port for the REST server.",
-                 "type": "inet:port-number"
-                }
-               }
-              }
-             }
-            },
-            "script": {
-             "description": "Use custom script for configuring the VNF.\nThis script is executed in the context of\nOrchestrator.",
-             "container": {
-              "script": {
-               "leaf": {
-                "script-type": {
-                 "description": "Script type - currently supported : bash, expect",
-                 "type": {
-                  "enumeration": {
-                   "enum": {
-                    "bash": {
-                     "value": 0
-                    },
-                    "expect": {
-                     "value": 1
-                    }
-                   }
-                  }
-                 }
-                }
-               }
-              }
-             }
-            },
-            "juju": {
-             "description": "Configure the VNF through Juju.",
-             "container": {
-              "juju": {
-               "leaf": {
-                "charm": {
-                 "description": "Juju charm to use with the VNF.",
-                 "type": "string"
-                }
-               }
-              }
-             }
-            }
-           }
-          }
-         },
-         "container": {
-          "config-access": {
-           "leaf": {
-            "mgmt-ip-address": {
-             "description": "IP address to be used to configure this VNF,\noptional if it is possible to resolve dynamically.",
-             "type": "inet:ip-address"
-            },
-            "username": {
-             "description": "username for configuration.",
-             "type": "string"
-            },
-            "password": {
-             "description": "Password for configuration access authentication.",
-             "type": "string"
-            }
-           }
-          },
-          "config-attributes": {
-           "description": "Miscelaneous input parameters to be considered\nwhile processing the NSD to apply configuration",
-           "leaf": {
-            "config-priority": {
-             "description": "Configuration priority - order of confgiration\nto be applied to each VNF in this NS,\nlow number gets precedence over high number",
-             "type": "uint64"
-            },
-            "config-delay": {
-             "description": "Wait (seconds) before applying the configuration to VNF",
-             "type": "uint64"
-            }
-           }
-          }
-         },
-         "list": {
-          "config-primitive": {
-           "description": "List of configuration primitives supported by the\nconfiguration agent for this VNF.",
-           "key": "name",
-           "leaf": {
-            "name": {
-             "description": "Name of the configuration primitive.",
-             "type": "string"
-            }
-           },
-           "list": {
-            "parameter": {
-             "description": "List of parameters to the configuration primitive.",
-             "key": "name",
-             "leaf": {
-              "name": {
-               "description": "Name of the parameter.",
-               "type": "string"
-              },
-              "data-type": {
-               "description": "Data type associated with the name.",
-               "type": "manotypes:parameter-data-type"
-              },
-              "mandatory": {
-               "description": "Is this field mandatory",
-               "type": "boolean",
-               "default": "false"
-              },
-              "default-value": {
-               "description": "The default value for this field",
-               "type": "string"
-              },
-              "parameter-pool": {
-               "description": "NSD Parameter pool name to use for this paramter",
-               "type": "string"
-              },
-              "read-only": {
-               "description": "The value should be greyed out by the UI.\nOnly applies to parameters with default values.",
-               "type": "boolean"
-              },
-              "hidden": {
-               "description": "The value should be hidden by the UI.\nOnly applies to parameters with default values.",
-               "type": "boolean"
-              }
-             }
-            }
-           }
-          },
-          "initial-config-primitive": {
-           "description": "Initial set of configuration primitives.",
-           "key": "seq",
-           "leaf": {
-            "seq": {
-             "description": "Sequence number for the configuration primitive.",
-             "type": "uint64"
-            },
-            "name": {
-             "description": "Name of the configuration primitive.",
-             "type": "string"
-            }
-           },
-           "list": {
-            "parameter": {
-             "key": "name",
-             "leaf": {
-              "name": {
-               "type": "string"
-              },
-              "value": {
-               "type": "string"
-              }
-             }
-            }
-           }
-          }
-         },
-         "leaf": {
-          "config-template": {
-           "description": "Configuration template for each VNF",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "named-value": {
-       "leaf": {
-        "name": {
-         "type": "string"
-        },
-        "value": {
-         "type": "string"
-        }
-       }
-      },
-      "vm-flavor": {
-       "container": {
-        "vm-flavor": {
-         "leaf": {
-          "vcpu-count": {
-           "description": "Number of vcpus for the VM.",
-           "type": "uint16"
-          },
-          "memory-mb": {
-           "description": "Amount of memory in MB.",
-           "type": "uint64"
-          },
-          "storage-gb": {
-           "description": "Amount of disk space in GB.",
-           "type": "uint64"
-          }
-         }
-        }
-       }
-      },
-      "vswitch-epa": {
-       "container": {
-        "vswitch-epa": {
-         "leaf": {
-          "ovs-acceleration": {
-           "description": "Specifies Open vSwitch acceleration mode.\nMANDATORY: OVS acceleration is required\nPREFERRED: OVS acceleration is preferred",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "MANDATORY": {
-               "value": 0
-              },
-              "PREFERRED": {
-               "value": 1
-              },
-              "DISABLED": {
-               "value": 2
-              }
-             }
-            }
-           }
-          },
-          "ovs-offload": {
-           "description": "Specifies Open vSwitch hardware offload mode.\nMANDATORY: OVS offload is required\nPREFERRED: OVS offload is preferred",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "MANDATORY": {
-               "value": 0
-              },
-              "PREFERRED": {
-               "value": 1
-              },
-              "DISABLED": {
-               "value": 2
-              }
-             }
-            }
-           }
-          }
-         }
-        }
-       }
-      },
-      "hypervisor-epa": {
-       "container": {
-        "hypervisor-epa": {
-         "leaf": {
-          "type": {
-           "description": "Specifies the type of hypervisor.\nKVM: KVM\nXEN: XEN",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "PREFER_KVM": {
-               "value": 0
-              },
-              "REQUIRE_KVM": {
-               "value": 1
-              }
-             }
-            }
-           }
-          },
-          "version": {
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "host-epa": {
-       "container": {
-        "host-epa": {
-         "description": "Specifies the host level EPA attributes.",
-         "leaf": {
-          "cpu-model": {
-           "description": "Host CPU model. Examples include: SandyBridge,\nIvyBridge",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "PREFER_WESTMERE": {
-               "value": 0
-              },
-              "REQUIRE_WESTMERE": {
-               "value": 1
-              },
-              "PREFER_SANDYBRIDGE": {
-               "value": 2
-              },
-              "REQUIRE_SANDYBRIDGE": {
-               "value": 3
-              },
-              "PREFER_IVYBRIDGE": {
-               "value": 4
-              },
-              "REQUIRE_IVYBRIDGE": {
-               "value": 5
-              },
-              "PREFER_HASWELL": {
-               "value": 6
-              },
-              "REQUIRE_HASWELL": {
-               "value": 7
-              },
-              "PREFER_BROADWELL": {
-               "value": 8
-              },
-              "REQUIRE_BROADWELL": {
-               "value": 9
-              },
-              "PREFER_NEHALEM": {
-               "value": 10
-              },
-              "REQUIRE_NEHALEM": {
-               "value": 11
-              },
-              "PREFER_PENRYN": {
-               "value": 12
-              },
-              "REQUIRE_PENRYN": {
-               "value": 13
-              },
-              "PREFER_CONROE": {
-               "value": 14
-              },
-              "REQUIRE_CONROE": {
-               "value": 15
-              },
-              "PREFER_CORE2DUO": {
-               "value": 16
-              },
-              "REQUIRE_CORE2DUO": {
-               "value": 17
-              }
-             }
-            }
-           }
-          },
-          "cpu-arch": {
-           "description": "Host CPU architecture.",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "PREFER_X86": {
-               "value": 0
-              },
-              "REQUIRE_X86": {
-               "value": 1
-              },
-              "PREFER_X86_64": {
-               "value": 2
-              },
-              "REQUIRE_X86_64": {
-               "value": 3
-              },
-              "PREFER_I686": {
-               "value": 4
-              },
-              "REQUIRE_I686": {
-               "value": 5
-              },
-              "PREFER_IA64": {
-               "value": 6
-              },
-              "REQUIRE_IA64": {
-               "value": 7
-              },
-              "PREFER_ARMV7": {
-               "value": 8
-              },
-              "REQUIRE_ARMV7": {
-               "value": 9
-              },
-              "PREFER_ARMV8": {
-               "value": 10
-              },
-              "REQUIRE_ARMV8": {
-               "value": 11
-              }
-             }
-            }
-           }
-          },
-          "cpu-vendor": {
-           "description": "Host CPU Vendor.",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "PREFER_INTEL": {
-               "value": 0
-              },
-              "REQUIRE_INTEL": {
-               "value": 1
-              },
-              "PREFER_AMD": {
-               "value": 2
-              },
-              "REQUIRE_AMD": {
-               "value": 3
-              }
-             }
-            }
-           }
-          },
-          "cpu-socket-count": {
-           "description": "Number of sockets on the host.",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "PREFER_ONE": {
-               "value": 0
-              },
-              "PREFER_TWO": {
-               "value": 1
-              },
-              "REQUIRE_ONE": {
-               "value": 2
-              },
-              "REQUIRE_TWO": {
-               "value": 3
-              }
-             }
-            }
-           }
-          },
-          "cpu-core-count": {
-           "description": "Number of cores on the host.",
-           "type": "uint64"
-          },
-          "om-cpu-model-string": {
-           "description": "Openmano CPU model string",
-           "type": "string"
-          }
-         },
-         "leaf-list": {
-          "cpu-feature": {
-           "description": "List of CPU features.",
-           "type": "manotypes:cpu-feature-type"
-          },
-          "om-cpu-feature": {
-           "description": "Openmano CPU features",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "guest-epa": {
-       "description": "EPA attributes for the guest",
-       "container": {
-        "guest-epa": {
-         "leaf": {
-          "trusted-execution": {
-           "description": "This VM should be allocated from trusted pool",
-           "type": "boolean"
-          },
-          "mempage-size": {
-           "description": "Memory page allocation size. If a VM requires\nhugepages, it should choose LARGE or SIZE_2MB\nor SIZE_1GB. If the VM prefers hugepages it\nshould chose PREFER_LARGE.\nLARGE        : Require hugepages (either 2MB or 1GB)\nSMALL        : Doesn't require hugepages\nSIZE_2MB     : Requires 2MB hugepages\nSIZE_1GB     : Requires 1GB hugepages\nPREFER_LARGE : Application perfers hugepages",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "LARGE": {
-               "value": 0
-              },
-              "SMALL": {
-               "value": 1
-              },
-              "SIZE_2MB": {
-               "value": 2
-              },
-              "SIZE_1GB": {
-               "value": 3
-              },
-              "PREFER_LARGE": {
-               "value": 4
-              }
-             }
-            }
-           }
-          },
-          "cpu-pinning-policy": {
-           "description": "CPU pinning policy describes association\nbetween virtual CPUs in guest and the\nphysical CPUs in the host.\nDEDICATED : Virtual CPUs are pinned to\n            physical CPUs\nSHARED    : Multiple VMs may share the\n            same physical CPUs.\nANY       : Any policy is acceptable for the VM",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "DEDICATED": {
-               "value": 0
-              },
-              "SHARED": {
-               "value": 1
-              },
-              "ANY": {
-               "value": 2
-              }
-             }
-            }
-           },
-           "default": "ANY"
-          },
-          "cpu-thread-pinning-policy": {
-           "description": "CPU thread pinning policy describes how to\nplace the guest CPUs when the host supports\nhyper threads:\nAVOID   : Avoids placing a guest on a host\n          with threads.\nSEPARATE: Places vCPUs on separate cores,\n          and avoids placing two vCPUs on\n          two threads of same core.\nISOLATE : Places each vCPU on a different core,\n          and places no vCPUs from a different\n          guest on the same core.\nPREFER  : Attempts to place vCPUs on threads\n          of the same core.",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "AVOID": {
-               "value": 0
-              },
-              "SEPARATE": {
-               "value": 1
-              },
-              "ISOLATE": {
-               "value": 2
-              },
-              "PREFER": {
-               "value": 3
-              }
-             }
-            }
-           }
-          }
-         },
-         "list": {
-          "pcie-device": {
-           "description": "List of pcie passthrough devices.",
-           "key": "device-id",
-           "leaf": {
-            "device-id": {
-             "description": "Device identifier.",
-             "type": "string"
-            },
-            "count": {
-             "description": "Number of devices to attach to the VM.",
-             "type": "uint64"
-            }
-           }
-          }
-         },
-         "choice": {
-          "numa-policy": {
-           "case": {
-            "numa-unware": {
-             "leaf": {
-              "numa-unware": {
-               "type": "empty"
-              }
-             }
-            },
-            "numa-aware": {
-             "container": {
-              "numa-node-policy": {
-               "description": "This policy defines numa topology of the\nguest. Specifically identifies if the guest\nshould be run on a host with one numa\nnode or multiple numa nodes. As an example\na guest may want 8 vcpus and 4 GB of\nmemory. But may want the vcpus and memory\ndistributed across multiple numa nodes.\nThe NUMA node 1 may run with 6 vcpus and\n3GB, and NUMA node 2 may run with 2 vcpus\nand 1GB.",
-               "leaf": {
-                "node-cnt": {
-                 "description": "The number of numa nodes to expose to the VM.",
-                 "type": "uint16"
-                },
-                "mem-policy": {
-                 "description": "This policy specifies how the memory should\nbe allocated in a multi-node scenario.\nSTRICT    : The memory must be allocated\n            strictly from the memory attached\n            to the NUMA node.\nPREFERRED : The memory should be allocated\n            perferentially from the memory\n            attached to the NUMA node",
-                 "type": {
-                  "enumeration": {
-                   "enum": {
-                    "STRICT": {
-                     "value": 0
-                    },
-                    "PREFERRED": {
-                     "value": 1
-                    }
-                   }
-                  }
-                 }
-                }
-               },
-               "list": {
-                "node": {
-                 "key": "id",
-                 "leaf": {
-                  "id": {
-                   "description": "NUMA node identification. Typically\nit's 0 or 1",
-                   "type": "uint64"
-                  },
-                  "memory-mb": {
-                   "description": "Memory size expressed in MB\nfor this NUMA node.",
-                   "type": "uint64"
-                  }
-                 },
-                 "leaf-list": {
-                  "vcpu": {
-                   "description": "List of vcpus to allocate on\nthis numa node.",
-                   "type": "uint64"
-                  }
-                 },
-                 "choice": {
-                  "om-numa-type": {
-                   "description": "Openmano Numa type selection",
-                   "case": {
-                    "cores": {
-                     "leaf": {
-                      "num-cores": {
-                       "type": "uint8"
-                      }
-                     }
-                    },
-                    "paired-threads": {
-                     "container": {
-                      "paired-threads": {
-                       "leaf": {
-                        "num-paired-threads": {
-                         "type": "uint8"
-                        }
-                       },
-                       "list": {
-                        "paired-thread-ids": {
-                         "description": "List of thread pairs to use in case of paired-thread numa",
-                         "max-elements": 16,
-                         "key": "thread-a",
-                         "leaf": {
-                          "thread-a": {
-                           "type": "uint8"
-                          },
-                          "thread-b": {
-                           "type": "uint8"
-                          }
-                         }
-                        }
-                       }
-                      }
-                     }
-                    },
-                    "threads": {
-                     "leaf": {
-                      "num-threads": {
-                       "type": "uint8"
-                      }
-                     }
-                    }
-                   }
-                  }
-                 }
-                }
-               }
-              }
-             }
-            }
-           }
-          }
-         }
-        }
-       }
-      },
-      "provider-network": {
-       "container": {
-        "provider-network": {
-         "description": "Container for the provider network.",
-         "leaf": {
-          "physical-network": {
-           "description": "Name of the phsyical network on which the provider\nnetwork is built.",
-           "type": "string"
-          },
-          "overlay-type": {
-           "description": "Type of the overlay network.",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "LOCAL": {
-               "value": 0
-              },
-              "FLAT": {
-               "value": 1
-              },
-              "VLAN": {
-               "value": 2
-              },
-              "VXLAN": {
-               "value": 3
-              },
-              "GRE": {
-               "value": 4
-              }
-             }
-            }
-           }
-          },
-          "segmentation_id": {
-           "description": "Segmentation ID",
-           "type": "uint32"
-          }
-         }
-        }
-       }
-      },
-      "config-primitive": {
-       "list": {
-        "config-primitive": {
-         "description": "Network service level configuration primitives.",
-         "key": "name",
-         "leaf": {
-          "name": {
-           "description": "Name of the configuration primitive.",
-           "type": "string"
-          },
-          "user-defined-script": {
-           "description": "A user defined script.",
-           "type": "string"
-          }
-         },
-         "list": {
-          "parameter": {
-           "description": "List of parameters to the configuration primitive.",
-           "key": "name",
-           "leaf": {
-            "name": {
-             "description": "Name of the parameter.",
-             "type": "string"
-            },
-            "data-type": {
-             "description": "Data type associated with the name.",
-             "type": "manotypes:parameter-data-type"
-            },
-            "mandatory": {
-             "description": "Is this field mandatory",
-             "type": "boolean",
-             "default": "false"
-            },
-            "default-value": {
-             "description": "The default value for this field",
-             "type": "string"
-            },
-            "parameter-pool": {
-             "description": "NSD Parameter pool name to use for this paramter",
-             "type": "string"
-            },
-            "read-only": {
-             "description": "The value should be greyed out by the UI.\nOnly applies to parameters with default values.",
-             "type": "boolean"
-            },
-            "hidden": {
-             "description": "The value should be hidden by the UI.\nOnly applies to parameters with default values.",
-             "type": "boolean"
-            }
-           }
-          },
-          "parameter-group": {
-           "description": "Grouping of parameters which are logically grouped in UI",
-           "key": "name",
-           "leaf": {
-            "name": {
-             "description": "Name of the parameter group",
-             "type": "string"
-            },
-            "mandatory": {
-             "description": "Is this parameter group mandatory",
-             "type": "boolean",
-             "default": "true"
-            }
-           },
-           "list": {
-            "parameter": {
-             "description": "List of parameters to the configuration primitive.",
-             "key": "name",
-             "leaf": {
-              "name": {
-               "description": "Name of the parameter.",
-               "type": "string"
-              },
-              "data-type": {
-               "description": "Data type associated with the name.",
-               "type": "manotypes:parameter-data-type"
-              },
-              "mandatory": {
-               "description": "Is this field mandatory",
-               "type": "boolean",
-               "default": "false"
-              },
-              "default-value": {
-               "description": "The default value for this field",
-               "type": "string"
-              },
-              "parameter-pool": {
-               "description": "NSD Parameter pool name to use for this paramter",
-               "type": "string"
-              },
-              "read-only": {
-               "description": "The value should be greyed out by the UI.\nOnly applies to parameters with default values.",
-               "type": "boolean"
-              },
-              "hidden": {
-               "description": "The value should be hidden by the UI.\nOnly applies to parameters with default values.",
-               "type": "boolean"
-              }
-             }
-            }
-           }
-          },
-          "vnf-primitive-group": {
-           "description": "List of configuration primitives grouped by VNF.",
-           "key": "member-vnf-index-ref",
-           "leaf": {
-            "member-vnf-index-ref": {
-             "description": "Reference to member-vnf within constituent-vnfds",
-             "type": "uint64"
-            },
-            "vnfd-id-ref": {
-             "description": "A reference to a vnfd. This is a\nleafref to path:\n    ../../../../nsd:constituent-vnfd\n    + [nsd:id = current()/../nsd:id-ref]\n    + /nsd:vnfd-id-ref\nNOTE: An issue with confd is preventing the\nuse of xpath. Seems to be an issue with leafref\nto leafref, whose target is in a different module.\nOnce that is resovled this will switched to use\nleafref",
-             "type": "string"
-            },
-            "vnfd-name": {
-             "description": "Name of the VNFD",
-             "type": "string"
-            }
-           },
-           "list": {
-            "primitive": {
-             "key": "index",
-             "leaf": {
-              "index": {
-               "description": "Index of this primitive",
-               "type": "uint32"
-              },
-              "name": {
-               "description": "Name of the primitive in the VNF primitive ",
-               "type": "string"
-              }
-             }
-            }
-           }
-          }
-         }
-        }
-       }
-      },
-      "monitoring-param": {
-       "list": {
-        "http-endpoint": {
-         "description": "List of http endpoints to be used by monitoring params",
-         "key": "path",
-         "leaf": {
-          "path": {
-           "description": "The HTTP path on the management server",
-           "type": "string"
-          },
-          "https": {
-           "description": "Pick HTTPS instead of HTTP , Default is false",
-           "type": "boolean",
-           "default": "false"
-          },
-          "port": {
-           "description": "The HTTP port to connect to",
-           "type": "inet:port-number"
-          },
-          "username": {
-           "description": "The HTTP basic auth username",
-           "type": "string"
-          },
-          "password": {
-           "description": "The HTTP basic auth password",
-           "type": "string"
-          },
-          "polling_interval_secs": {
-           "description": "The HTTP polling interval in seconds",
-           "type": "uint8",
-           "default": "2"
-          },
-          "method": {
-           "description": "This is the method to be performed at the uri.\nGET by default for action",
-           "type": "manotypes:http-method",
-           "default": "GET"
-          }
-         },
-         "list": {
-          "headers": {
-           "description": "Custom HTTP headers to put on HTTP request",
-           "key": "key",
-           "leaf": {
-            "key": {
-             "description": "HTTP header key",
-             "type": "string"
-            },
-            "value": {
-             "description": "HTTP header value",
-             "type": "string"
-            }
-           }
-          }
-         }
-        },
-        "monitoring-param": {
-         "description": "List of monitoring parameters at the NS level",
-         "key": "id",
-         "leaf": {
-          "id": {
-           "type": "string"
-          },
-          "name": {
-           "type": "string"
-          },
-          "http-endpoint-ref": {
-           "type": {
-            "leafref": {
-             "path": "../../http-endpoint/path"
-            }
-           }
-          },
-          "json-query-method": {
-           "type": "manotypes:json-query-method",
-           "default": "NAMEKEY"
-          },
-          "description": {
-           "type": "string"
-          },
-          "group-tag": {
-           "description": "A simple tag to group monitoring parameters",
-           "type": "string"
-          },
-          "value-type": {
-           "type": "manotypes:param-value-type",
-           "default": "INT"
-          },
-          "value-integer": {
-           "description": "Current value for an integer parameter",
-           "type": "int64"
-          },
-          "value-decimal": {
-           "description": "Current value for a decimal parameter",
-           "type": {
-            "decimal64": {
-             "fraction-digits": "4"
-            }
-           }
-          },
-          "value-string": {
-           "description": "Current value for a string parameter",
-           "type": "string"
-          },
-          "widget-type": {
-           "type": "manotypes:widget-type"
-          },
-          "units": {
-           "type": "string"
-          }
-         },
-         "container": {
-          "json-query-params": {
-           "leaf": {
-            "json-path": {
-             "description": "The jsonpath to use to extract value from JSON structure",
-             "type": "string"
-            },
-            "object-path": {
-             "description": "The objectpath to use to extract value from JSON structure",
-             "type": "string"
-            }
-           }
-          },
-          "numeric-constraints": {
-           "leaf": {
-            "min-value": {
-             "description": "Minimum value for the parameter",
-             "type": "uint64"
-            },
-            "max-value": {
-             "description": "Maxium value for the parameter",
-             "type": "uint64"
-            }
-           }
-          },
-          "text-constraints": {
-           "leaf": {
-            "min-length": {
-             "description": "Minimum string length for the parameter",
-             "type": "uint8"
-            },
-            "max-length": {
-             "description": "Maximum string length for the parameter",
-             "type": "uint8"
-            }
-           }
-          }
-         }
-        }
-       }
-      },
-      "control-param": {
-       "list": {
-        "control-param": {
-         "description": "List of control parameters to manage and\nupdate the running configuration of the VNF",
-         "key": "id",
-         "leaf": {
-          "id": {
-           "type": "string"
-          },
-          "name": {
-           "type": "string"
-          },
-          "description": {
-           "type": "string"
-          },
-          "group-tag": {
-           "description": "A simple tag to group control parameters",
-           "type": "string"
-          },
-          "min-value": {
-           "description": "Minimum value for the parameter",
-           "type": "uint64"
-          },
-          "max-value": {
-           "description": "Maxium value for the parameter",
-           "type": "uint64"
-          },
-          "current-value": {
-           "description": "Current value for the parameter",
-           "type": "uint64"
-          },
-          "step-value": {
-           "description": "Step value for the parameter",
-           "type": "uint64"
-          },
-          "units": {
-           "type": "string"
-          },
-          "widget-type": {
-           "type": "manotypes:widget-type"
-          },
-          "url": {
-           "description": "This is the URL where to perform the operation",
-           "type": "inet:uri"
-          },
-          "method": {
-           "description": "This is the method to be performed at the uri.\nPOST by default for action",
-           "type": "manotypes:http-method",
-           "default": "POST"
-          },
-          "payload": {
-           "description": "This is the operation payload or payload template as stringified\nJSON. This field provides the data  to be sent for this operation\ncall",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "action-param": {
-       "list": {
-        "action-param": {
-         "description": "List of action parameters to\ncontrol VNF",
-         "key": "id",
-         "leaf": {
-          "id": {
-           "type": "string"
-          },
-          "name": {
-           "type": "string"
-          },
-          "description": {
-           "type": "string"
-          },
-          "group-tag": {
-           "description": "A simple tag to group monitoring parameter",
-           "type": "string"
-          },
-          "url": {
-           "description": "This is the URL where to perform the operation",
-           "type": "inet:uri"
-          },
-          "method": {
-           "description": "This is the method to be performed at the uri.\nPOST by default for action",
-           "type": "manotypes:http-method",
-           "default": "POST"
-          },
-          "payload": {
-           "description": "This is the operation payload or payload template to be sent in\nthe data for this operation call",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "input-parameter": {
-       "description": "",
-       "list": {
-        "input-parameter": {
-         "description": "List of input parameters",
-         "key": "xpath",
-         "leaf": {
-          "xpath": {
-           "description": "A an xpath that specfies which element in a descriptor is to be\nmodified.",
-           "type": "string"
-          },
-          "value": {
-           "description": "The value that the element specified by the xpath should take when a\nrecord is created.",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "input-parameter-xpath": {
-       "list": {
-        "input-parameter-xpath": {
-         "description": "List of xpaths to parameters inside the NSD\nthe can be customized during the instantiation.",
-         "key": "xpath",
-         "leaf": {
-          "xpath": {
-           "description": "An xpath that specifies the element in a descriptor.",
-           "type": "string"
-          },
-          "label": {
-           "description": "A descriptive string",
-           "type": "string"
-          },
-          "default-value": {
-           "description": " A default value for this input parameter",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "nfvi-metrics": {
-       "container": {
-        "vcpu": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "VCPU"
-          },
-          "total": {
-           "description": "The total number of VCPUs available.",
-           "type": "uint64"
-          },
-          "utilization": {
-           "description": "The VCPU utilization (percentage).",
-           "type": {
-            "decimal64": {
-             "fraction-digits": "2",
-             "range": "0 .. 100"
-            }
-           }
-          }
-         }
-        },
-        "memory": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "MEMORY"
-          },
-          "used": {
-           "description": "The amount of memory (bytes) currently in use.",
-           "type": "uint64"
-          },
-          "total": {
-           "description": "The amount of memory (bytes) available.",
-           "type": "uint64"
-          },
-          "utilization": {
-           "description": "The memory utilization (percentage).",
-           "type": {
-            "decimal64": {
-             "fraction-digits": "2",
-             "range": "0 .. 100"
-            }
-           }
-          }
-         }
-        },
-        "storage": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "STORAGE"
-          },
-          "used": {
-           "description": "The amount of storage (bytes) currently in use.",
-           "type": "uint64"
-          },
-          "total": {
-           "description": "The amount of storage (bytes) available.",
-           "type": "uint64"
-          },
-          "utilization": {
-           "description": "The storage utilization (percentage).",
-           "type": {
-            "decimal64": {
-             "fraction-digits": "2",
-             "range": "0 .. 100"
-            }
-           }
-          }
-         }
-        },
-        "external-ports": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "EXTERNAL PORTS"
-          },
-          "total": {
-           "description": "The total number of external ports.",
-           "type": "uint64"
-          }
-         }
-        },
-        "internal-ports": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "INTERNAL PORTS"
-          },
-          "total": {
-           "description": "The total number of internal ports.",
-           "type": "uint64"
-          }
-         }
-        },
-        "network": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "NETWORK TRAFFIC"
-          }
-         },
-         "container": {
-          "incoming": {
-           "leaf": {
-            "label": {
-             "description": "Label to show in UI",
-             "type": "string",
-             "default": "INCOMING NETWORK TRAFFIC"
-            },
-            "bytes": {
-             "description": "The cumulative number of incoming bytes.",
-             "type": "uint64"
-            },
-            "packets": {
-             "description": "The cumulative number of incoming packets.",
-             "type": "uint64"
-            },
-            "byte-rate": {
-             "description": "The current incoming byte-rate (bytes per second).",
-             "type": {
-              "decimal64": {
-               "fraction-digits": "2"
-              }
-             }
-            },
-            "packet-rate": {
-             "description": "The current incoming packet (packets per second).",
-             "type": {
-              "decimal64": {
-               "fraction-digits": "2"
-              }
-             }
-            }
-           }
-          },
-          "outgoing": {
-           "leaf": {
-            "label": {
-             "description": "Label to show in UI",
-             "type": "string",
-             "default": "OUTGOING NETWORK TRAFFIC"
-            },
-            "bytes": {
-             "description": "The cumulative number of outgoing bytes.",
-             "type": "uint64"
-            },
-            "packets": {
-             "description": "The cumulative number of outgoing packets.",
-             "type": "uint64"
-            },
-            "byte-rate": {
-             "description": "The current outgoing byte-rate (bytes per second).",
-             "type": {
-              "decimal64": {
-               "fraction-digits": "2"
-              }
-             }
-            },
-            "packet-rate": {
-             "description": "The current outgoing packet (packets per second).",
-             "type": {
-              "decimal64": {
-               "fraction-digits": "2"
-              }
-             }
-            }
-           }
-          }
-         }
-        }
-       }
-      },
-      "alarm": {
-       "leaf": {
-        "alarm-id": {
-         "description": "This field is reserved for the identifier assigned by the cloud\nprovider",
-         "type": "string"
-        },
-        "name": {
-         "description": "A human readable string to identify the alarm",
-         "type": "string"
-        },
-        "description": {
-         "description": "A string containing a description of this alarm",
-         "type": "string"
-        },
-        "repeat": {
-         "description": "This flag indicates whether the alarm should be repeatedly emitted\nwhile the associated threshold has been crossed.",
-         "type": "boolean",
-         "default": "true"
-        },
-        "enabled": {
-         "description": "This flag indicates whether the alarm has been enabled or\ndisabled.",
-         "type": "boolean",
-         "default": "true"
-        },
-        "severity": {
-         "description": "A measure of the important or urgency of the alarm",
-         "type": "alarm-severity-type"
-        },
-        "metric": {
-         "description": "The metric to be tracked by this alarm.",
-         "type": "alarm-metric-type"
-        },
-        "statistic": {
-         "description": "The type of metric statistic that is tracked by this alarm",
-         "type": "alarm-statistic-type"
-        },
-        "operation": {
-         "description": "The relational operator that defines whether the alarm should be\ntriggered when the metric statistic is, say, above or below the\nspecified threshold value.",
-         "type": "alarm-operation-type"
-        },
-        "value": {
-         "description": "This value defines the threshold that, if crossed, will trigger\nthe alarm.",
-         "type": {
-          "decimal64": {
-           "fraction-digits": "4"
-          }
-         }
-        },
-        "period": {
-         "description": "The period defines the length of time (seconds) that the metric\ndata are collected over in oreder to evaluate the chosen\nstatistic.",
-         "type": "uint32"
-        },
-        "evaluations": {
-         "description": "This is the number of samples of the metric statistic used to\nevaluate threshold crossing. Each sample or evaluation is equal to\nthe metric statistic obtained for a given period. This can be used\nto mitigate spikes in the metric that may skew the statistic of\ninterest.",
-         "type": "uint32"
-        }
-       },
-       "container": {
-        "actions": {
-         "list": {
-          "ok": {
-           "key": "url",
-           "leaf": {
-            "url": {
-             "type": "string"
-            }
-           }
-          },
-          "insufficient-data": {
-           "key": "url",
-           "leaf": {
-            "url": {
-             "type": "string"
-            }
-           }
-          },
-          "alarm": {
-           "key": "url",
-           "leaf": {
-            "url": {
-             "type": "string"
-            }
-           }
-          }
-         }
-        }
-       }
-      },
-      "placement-group-info": {
-       "description": "",
-       "leaf": {
-        "name": {
-         "description": "Place group construct to define the compute resource placement strategy\nin cloud environment",
-         "type": "string"
-        },
-        "requirement": {
-         "description": "This is free text space used to describe the intent/rationale\nbehind this placement group. This is for human consumption only",
-         "type": "string"
-        },
-        "strategy": {
-         "description": "Strategy associated with this placement group\n  Following values are possible\n    - COLOCATION: Colocation strategy imply intent to share the physical\n                  infrastructure (hypervisor/network) among all members\n                  of this group.\n    - ISOLATION: Isolation strategy imply intent to not share the physical\n                 infrastructure (hypervisor/network) among the members\n                 of this group.\n  ",
-         "type": {
-          "enumeration": {
-           "enum": {
-            "COLOCATION": {
-             "value": 0
-            },
-            "ISOLATION": {
-             "value": 1
-            }
-           }
-          }
-         },
-         "default": "COLOCATION"
-        }
-       }
-      }
-     }
-    }
-   }
-  },
-  "rw-pb-ext": {
-   "module": {
-    "rw-pb-ext": {
-     "namespace": "http://riftio.com/ns/riftware-1.0/rw-pb-ext",
-     "prefix": "rwpb",
-     "revision": {
-      "2014-03-28": {
-       "description": "Initial revision.",
-       "reference": "RIFT yang extensions for converting yang files to Google\nProtocol Buffers (protobuf) using rift protoc-c extensions."
-      }
-     }
-    }
-   }
-  },
-  "rwvcs-types": {
-   "module": {
-    "rwvcs-types": {
-     "namespace": "http://riftio.com/ns/riftware-1.0/rwvcs-types",
-     "prefix": "rwvcstypes",
-     "import": {
-      "rw-pb-ext": {
-       "prefix": "rwpb"
-      },
-      "rw-yang-types": {
-       "prefix": "rwt"
-      },
-      "ietf-inet-types": {
-       "prefix": "inet",
-       "revision-date": "2013-07-15"
-      }
-     },
-     "revision": {
-      "2014-03-12": {
-       "description": "Initial implementation of RW.Manifest.",
-       "reference": "RW.VX Software Component Document"
-      }
-     },
-     "typedef": {
-      "component_type": {
-       "type": {
-        "enumeration": {
-         "enum": {
-          "RWCOLLECTION": null,
-          "RWVM": null,
-          "RWPROC": null,
-          "PROC": null,
-          "RWTASKLET": null
-         }
-        }
-       }
-      },
-      "recovery-type": {
-       "type": {
-        "enumeration": {
-         "enum": {
-          "NONE": null,
-          "RESTART": null,
-          "FAILCRITICAL": null,
-          "IGNORE": null,
-          "CUSTOM": null
-         }
-        }
-       }
-      }
-     },
-     "grouping": {
-      "rwvcs-variable-list": {
-       "leaf-list": {
-        "python-variable": {
-         "description": "List of Python variable assignments",
-         "type": "string"
-        }
-       }
-      },
-      "valgrind": {
-       "container": {
-        "valgrind": {
-         "leaf": {
-          "enable": {
-           "description": "Run the component under valgrind",
-           "type": "boolean"
-          }
-         },
-         "leaf-list": {
-          "opts": {
-           "description": "Command line options to pass to valgrind",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "action-list": {
-       "list": {
-        "action": {
-         "description": "This section contains a sequence\nof RW.VCS actions",
-         "key": "name",
-         "leaf": {
-          "name": {
-           "description": "Name of the action within the sequence",
-           "type": "string"
-          }
-         },
-         "grouping": {
-          "rwvcs-python-loop": {
-           "leaf": {
-            "python-loop-expression": {
-             "description": "Python expression",
-             "type": "string"
-            },
-            "python-loop-iterate": {
-             "description": "Python iteration",
-             "type": "string"
-            }
-           }
-          }
-         },
-         "uses": "rwvcs-python-loop",
-         "choice": {
-          "action": {
-           "case": {
-            "annex": {
-             "container": {
-              "annex": {
-               "leaf": {
-                "component-name": {
-                 "description": "Name of the component type\nin the inventory",
-                 "type": {
-                  "leafref": {
-                   "path": "../../../../../../../component/component-name"
-                  }
-                 }
-                },
-                "instance-id": {
-                 "description": "ID of the component instance\nin the inventory",
-                 "type": "string"
-                }
-               }
-              }
-             }
-            },
-            "start": {
-             "container": {
-              "start": {
-               "uses": "rwvcs-variable-list",
-               "leaf": {
-                "component-name": {
-                 "description": "Name of the component type in\nthe inventory",
-                 "type": {
-                  "leafref": {
-                   "path": "../../../../../../../component/component-name"
-                  }
-                 }
-                },
-                "instance-id": {
-                 "description": "ID of the component instance\nin the inventory",
-                 "type": "string"
-                },
-                "config-ready": {
-                 "description": "Config readiness check enable",
-                 "type": "boolean",
-                 "default": "true"
-                },
-                "recovery-action": {
-                 "description": "Define recovery action if this component fail",
-                 "type": "recovery-type"
-                }
-               }
-              }
-             }
-            },
-            "sleep": {
-             "container": {
-              "sleep": {
-               "leaf": {
-                "wait-time-usec": {
-                 "description": "Time to wait while sleeping",
-                 "type": "uint32"
-                }
-               }
-              }
-             }
-            }
-           }
-          }
-         }
-        }
-       }
-      },
-      "rwvcs-event-list": {
-       "container": {
-        "event-list": {
-         "description": "",
-         "list": {
-          "event": {
-           "description": "This section contains a list\nof RW.VCS events",
-           "key": "name",
-           "leaf": {
-            "name": {
-             "description": "Name of the event",
-             "type": "string"
-            }
-           },
-           "uses": "action-list"
-          }
-         }
-        }
-       }
-      },
-      "rwvcs-rwcollection": {
-       "container": {
-        "rwcollection": {
-         "description": "This section defines a RW.VCS\nrwollection component",
-         "leaf": {
-          "collection-type": {
-           "description": "Collection type",
-           "type": "string"
-          }
-         },
-         "uses": "rwvcs-event-list"
-        }
-       }
-      },
-      "rwvcs-rwvm": {
-       "container": {
-        "rwvm": {
-         "description": "This section defines a RW.VCS\nrwvm component",
-         "leaf": {
-          "pool-name": {
-           "description": "Name of the pool from which to\nallocate the VM",
-           "type": "string"
-          },
-          "leader": {
-           "description": "True if this VM is designated as a leader for\nthe parent collection.",
-           "type": "boolean"
-          }
-         },
-         "uses": {
-          "rwvcs-event-list": null,
-          "valgrind": null
-         }
-        }
-       }
-      },
-      "rwvcs-rwproc": {
-       "container": {
-        "rwproc": {
-         "description": "This section defines a RW.VCS\nrwproc component",
-         "leaf": {
-          "run-as": {
-           "description": "Host OS user that should run this\nprocess, requires sudo -E access\nand non-collapsed processes",
-           "type": "string"
-          }
-         },
-         "list": {
-          "tasklet": {
-           "description": "List of tasklets to be run within\nthis process",
-           "key": "name",
-           "leaf": {
-            "name": {
-             "description": "Local description of the tasklet",
-             "type": "string"
-            },
-            "component-name": {
-             "description": "Component name of the tasklet",
-             "mandatory": "true",
-             "type": "string"
-            },
-            "instance-id": {
-             "description": "If specified, the desired instance-id of\ntasklet component instance",
-             "type": "uint32"
-            },
-            "config-ready": {
-             "description": "Config readiness check enable",
-             "type": "boolean",
-             "default": "true"
-            },
-            "recovery-action": {
-             "description": "Define recovery action if this component fail",
-             "type": "recovery-type"
-            }
-           },
-           "uses": "rwvcs-variable-list"
-          }
-         },
-         "uses": "valgrind"
-        }
-       }
-      },
-      "native-proc": {
-       "container": {
-        "native-proc": {
-         "leaf": {
-          "run-as": {
-           "description": "Host OS user that should run this\nprocess, requires sudo -E access",
-           "type": "string"
-          },
-          "environment": {
-           "description": "Runtime environment for native process",
-           "type": "string"
-          },
-          "exe-path": {
-           "description": "Path to native process executable",
-           "type": "string"
-          },
-          "args": {
-           "description": "Arguments to pass to native process",
-           "type": "string"
-          },
-          "network-namespace": {
-           "description": "Namespace to start process in",
-           "type": "string"
-          },
-          "stdout": {
-           "description": "Redirect stdout to the file at the\nspecified path",
-           "type": "string"
-          },
-          "stderr": {
-           "description": "Redirect stderr to the file at the\nspecified path. Optionally, 'stdout'\nmay be used to redirect to the same\nfile as stdout",
-           "type": "string"
-          },
-          "interactive": {
-           "description": "Native process is interactive and needs\nterminal control",
-           "type": "empty"
-          }
-         },
-         "uses": "valgrind"
-        }
-       }
-      },
-      "rwvcs-rwtasklet": {
-       "container": {
-        "rwtasklet": {
-         "description": "This section defines a RW.VCS\nrwtasklet component",
-         "leaf": {
-          "plugin-directory": {
-           "description": "",
-           "type": "string"
-          },
-          "plugin-name": {
-           "description": "",
-           "type": "string"
-          },
-          "plugin-version": {
-           "description": "",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "rwvcs-component-list": {
-       "list": {
-        "component": {
-         "description": "This section defines the RIFT.ware\nvirtual components",
-         "key": "component-name",
-         "leaf": {
-          "component-name": {
-           "description": "",
-           "type": "string"
-          },
-          "component-type": {
-           "description": "",
-           "type": "component_type",
-           "mandatory": "true"
-          }
-         },
-         "choice": {
-          "component": {
-           "case": {
-            "rwvcs-rwcollection": {
-             "uses": "rwvcs-rwcollection"
-            },
-            "rwvcs-rwvm": {
-             "uses": "rwvcs-rwvm"
-            },
-            "rwvcs-rwproc": {
-             "uses": "rwvcs-rwproc"
-            },
-            "native-proc": {
-             "uses": "native-proc"
-            },
-            "rwvcs-rwtasklet": {
-             "uses": "rwvcs-rwtasklet"
-            }
-           }
-          }
-         }
-        }
-       }
-      }
-     }
-    }
-   }
-  },
-  "rw-yang-types": {
-   "module": {
-    "rw-yang-types": {
-     "namespace": "http://riftio.com/ns/riftware-1.0/rw-yang-types",
-     "prefix": "rwt",
-     "import": {
-      "ietf-inet-types": {
-       "prefix": "inet",
-       "revision-date": "2013-07-15"
-      },
-      "ietf-yang-types": {
-       "prefix": "ietf-yang-types",
-       "revision-date": "2013-07-15"
-      }
-     },
-     "description": "This module contains redefinitions of the ietf-yang-types and\nietf-inet-types modules, which allows customized extensions to be\ndefined for these types when used in RiftWare applications.",
-     "revision": {
-      "2014-04-01": {
-       "description": "Initial revision.",
-       "reference": "RIFT yang types that redefine the IETF types."
-      }
-     },
-     "typedef": {
-      "ip-version": {
-       "type": "inet:ip-version"
-      },
-      "dscp": {
-       "type": "inet:dscp"
-      },
-      "ipv6-flow-label": {
-       "type": "inet:ipv6-flow-label"
-      },
-      "port-number": {
-       "type": "inet:port-number"
-      },
-      "as-number": {
-       "type": "inet:as-number"
-      },
-      "ip-address": {
-       "type": "inet:ip-address"
-      },
-      "ipv4-address": {
-       "type": "inet:ipv4-address"
-      },
-      "ipv6-address": {
-       "type": "inet:ipv6-address"
-      },
-      "ip-address-no-zone": {
-       "type": "inet:ip-address-no-zone"
-      },
-      "ipv4-address-no-zone": {
-       "type": "inet:ipv4-address-no-zone"
-      },
-      "ipv6-address-no-zone": {
-       "type": "inet:ipv6-address-no-zone"
-      },
-      "ip-prefix": {
-       "type": "inet:ip-prefix"
-      },
-      "ip-prefix-non-canonical": {
-       "type": {
-        "union": {
-         "type": {
-          "rwt:ipv4-prefix-non-canonical": null,
-          "rwt:ipv6-prefix-non-canonical": null
-         }
-        }
-       },
-       "description": "The ip-prefix type represents an IP prefix and is IP\nversion neutral.  The format of the textual representations\nimplies the IP version."
-      },
-      "ipv4-prefix": {
-       "type": "inet:ipv4-prefix"
-      },
-      "ipv4-prefix-non-canonical": {
-       "type": {
-        "string": {
-         "pattern": "(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))"
-        }
-       },
-       "description": "The ipv4-prefix type represents an IPv4 address prefix.\nThe prefix length is given by the number following the\nslash character and must be less than or equal to 32.\n\nA prefix length value of n corresponds to an IP address\nmask that has n contiguous 1-bits from the most\nsignificant bit (MSB) and all other bits set to 0."
-      },
-      "ipv6-prefix": {
-       "type": "inet:ipv6-prefix"
-      },
-      "ipv6-prefix-non-canonical": {
-       "type": {
-        "string": {
-         "pattern": {
-          "((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))(/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))": null,
-          "(([^:]+:){6}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(/.+)": null
-         }
-        }
-       },
-       "description": "The ipv6-prefix type represents an IPv6 address prefix.\nThe prefix length is given by the number following the\nslash character and must be less than or equal to 128.\n\nA prefix length value of n corresponds to an IP address\nmask that has n contiguous 1-bits from the most\nsignificant bit (MSB) and all other bits set to 0.\n\nThe IPv6 address should have all bits that do not belong\nto the prefix set to zero."
-      },
-      "domain-name": {
-       "type": "inet:domain-name"
-      },
-      "host": {
-       "type": "inet:host"
-      },
-      "uri": {
-       "type": "inet:uri"
-      },
-      "counter32": {
-       "type": "ietf-yang-types:counter32"
-      },
-      "zero-based-counter32": {
-       "type": "ietf-yang-types:zero-based-counter32"
-      },
-      "counter64": {
-       "type": "ietf-yang-types:counter64"
-      },
-      "zero-based-counter64": {
-       "type": "ietf-yang-types:zero-based-counter64"
-      },
-      "gauge32": {
-       "type": "ietf-yang-types:gauge32"
-      },
-      "gauge64": {
-       "type": "ietf-yang-types:gauge64"
-      },
-      "object-identifier": {
-       "type": "ietf-yang-types:object-identifier"
-      },
-      "object-identifier-128": {
-       "type": "ietf-yang-types:object-identifier-128"
-      },
-      "yang-identifier": {
-       "type": "ietf-yang-types:yang-identifier"
-      },
-      "date-and-time": {
-       "type": "ietf-yang-types:date-and-time"
-      },
-      "timeticks": {
-       "type": "ietf-yang-types:timeticks"
-      },
-      "timestamp": {
-       "type": "ietf-yang-types:timestamp"
-      },
-      "phys-address": {
-       "type": "ietf-yang-types:phys-address"
-      },
-      "mac-address": {
-       "type": "ietf-yang-types:mac-address"
-      },
-      "xpath1.0": {
-       "type": "ietf-yang-types:xpath1.0"
-      },
-      "hex-string": {
-       "type": "ietf-yang-types:hex-string"
-      },
-      "uuid": {
-       "type": "ietf-yang-types:uuid"
-      },
-      "dotted-quad": {
-       "type": "ietf-yang-types:dotted-quad"
-      },
-      "call-id": {
-       "type": {
-        "string": {
-         "pattern": "[0-9]{1,20}:[0-9]{1,20}"
-        }
-       }
-      },
-      "base64-binary": {
-       "type": {
-        "string": {
-         "pattern": "[0-9a-zA-Z+/]{4,}[=]{0,2}"
-        }
-       }
-      },
-      "hex-binary": {
-       "type": {
-        "string": {
-         "pattern": "[0-9A-Fa-f]{2}([0-9A-Fa-f]{2})*"
-        }
-       }
-      },
-      "rw-ip-protocol": {
-       "type": {
-        "enumeration": {
-         "enum": {
-          "icmp": {
-           "value": 1
-          },
-          "tcp": {
-           "value": 6
-          },
-          "udp": {
-           "value": 17
-          },
-          "gre": {
-           "value": 47
-          }
-         }
-        }
-       }
-      }
-     }
-    }
-   }
-  }
- },
- "extension": {
-  "module": {
-   "argument": "name",
-   "include": "0..n",
-   "prefix": "0..1",
-   "anyxml": "0..n",
-   "augment": "0..n",
-   "choice": "0..n",
-   "contact": "0..1",
-   "container": "0..n",
-   "description": "0..1",
-   "deviation": "0..n",
-   "extension": "0..n",
-   "feature": "0..n",
-   "grouping": "0..n",
-   "identity": "0..n",
-   "import": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "namespace": "0..1",
-   "notification": "0..n",
-   "organization": "0..1",
-   "reference": "0..1",
-   "revision": "0..n",
-   "rpc": "0..n",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "yang-version": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  var changes, match, ref, synth, target;\n  synth = this.require('data-synth');\n  ref = params.augment;\n  for (target in ref) {\n    changes = ref[target];\n    match = this.locate(ctx, target);\n    if (match == null) {\n      continue;\n    }\n    synth.copy(match, changes);\n  }\n  return delete this.source[params.prefix];\n}"
-   },
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var k, m, modules, ref, synth, v;\n  synth = this.require('data-synth');\n  modules = {};\n  ref = params[\"import\"];\n  for (k in ref) {\n    v = ref[k];\n    modules[k] = children[k];\n    delete children[k];\n  }\n  m = (synth.Store(params, function() {\n    return this.set({\n      name: arg,\n      modules: modules\n    });\n  })).bind(children);\n  this.define('module', arg, m);\n  return m;\n}"
-   }
-  },
-  "prefix": {
-   "argument": "value",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return this.source[arg] = this.source;\n}"
-   }
-  },
-  "include": {
-   "argument": "module",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  var k, m, ref, ref1, ref2, results, v;\n  m = this.preprocess(this.resolve('dependencies', arg));\n  ref = m.extension;\n  for (k in ref) {\n    v = ref[k];\n    this.define('extension', k, v);\n  }\n  ref1 = m.typedef;\n  for (k in ref1) {\n    v = ref1[k];\n    this.define('typedef', k, v);\n  }\n  ref2 = m.schema;\n  results = [];\n  for (k in ref2) {\n    v = ref2[k];\n    results.push(ctx[k] = v);\n  }\n  return results;\n}"
-   },
-   "revision-date": "0..1"
-  },
-  "augment": {
-   "anyxml": "0..n",
-   "case": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "uses": "0..n",
-   "when": "0..1",
-   "argument": "target-node"
-  },
-  "belongs-to": {
-   "prefix": 1,
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return this.source[params.prefix] = this.source;\n}"
-   },
-   "argument": "module"
-  },
-  "bit": {
-   "description": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "position": "0..1",
-   "argument": "name"
-  },
-  "case": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "uses": "0..n",
-   "when": "0..1",
-   "argument": "name"
-  },
-  "choice": {
-   "anyxml": "0..n",
-   "case": "0..n",
-   "config": "0..1",
-   "container": "0..n",
-   "default": "0..1",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "mandatory": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "when": "0..1",
-   "argument": "condition"
-  },
-  "config": {
-   "preprocess": {
-    "!js/function": "function (arg, p, ctx) {\n  return ctx.config = arg === true || arg === 'true';\n}"
-   },
-   "argument": "value"
-  },
-  "container": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "config": "0..1",
-   "container": "0..n",
-   "description": "0..1",
-   "grouping": "0..n",
-   "if-feature": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "must": "0..n",
-   "presence": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "when": "0..1",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var synth;\n  synth = this.require('data-synth');\n  return (synth.Object(params)).bind(children);\n}"
-   },
-   "argument": "name"
-  },
-  "deviate": {
-   "config": "0..1",
-   "default": "0..1",
-   "mandatory": "0..1",
-   "max-elements": "0..1",
-   "min-elements": "0..1",
-   "must": "0..n",
-   "type": "0..1",
-   "unique": "0..1",
-   "units": "0..1",
-   "argument": "value"
-  },
-  "deviation": {
-   "description": "0..1",
-   "deviate": "1..n",
-   "reference": "0..1",
-   "argument": "target-node"
-  },
-  "enum": {
-   "description": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "value": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  if (params.value == null) {\n    if (this.enumValue == null) {\n      this.enumValue = 0;\n    }\n    params.value = this.enumValue++;\n  } else {\n    params.value = Number(params.value);\n    this.enumValue = params.value + 1;\n  }\n  return ctx[\"enum\"][arg] = params;\n}"
-   },
-   "argument": "name"
-  },
-  "feature": {
-   "description": "0..1",
-   "if-feature": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  if (params.status === 'unavailable') {\n    console.warn(\"feature \" + arg + \" is unavailable\");\n    if (typeof ctx.feature === 'object') {\n      return delete ctx.feature[arg];\n    } else {\n      return delete ctx.feature;\n    }\n  }\n}"
-   },
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var feature;\n  feature = this.resolve('feature', arg);\n  return null;\n}"
-   },
-   "argument": "name"
-  },
-  "grouping": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "description": "0..1",
-   "grouping": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "preprocess": {
-    "!js/function": "function (arg, params) {\n  return this.define('grouping', arg, params);\n}"
-   },
-   "argument": "name"
-  },
-  "identity": {
-   "base": "0..1",
-   "description": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params) {\n  return this.define('identity', arg, params);\n}"
-   },
-   "argument": "name"
-  },
-  "if-feature": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  if ((this.resolve('feature', arg)) == null) {\n    return ctx.status = 'unavailable';\n  }\n}"
-   },
-   "argument": "name"
-  },
-  "import": {
-   "prefix": 1,
-   "revision-date": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  var copy, k, m, original, ref, ref1, rev, schema, source, synth, v;\n  synth = this.require('data-synth');\n  schema = this.resolve('dependencies', arg, false);\n  if (schema == null) {\n    console.warn(\"no explicit dependency for \" + arg + \" defined, searching local filesystem\");\n    schema = this.parse(\"!yang \" + arg + \".yang\", this.source);\n    if (schema != null) {\n      this.define('dependencies', arg, schema);\n      source = this.source.parent;\n      while ((source.parent != null) && source.parent.name !== 'yangforge') {\n        source = source.parent;\n      }\n      if (source.dependencies == null) {\n        source.dependencies = {};\n      }\n      source.dependencies[arg] = schema;\n    }\n  }\n  m = this.preprocess(schema);\n  if (m == null) {\n    throw this.error(\"unable to resolve '\" + arg + \"' in dependencies\", 'import');\n  }\n  rev = params['revision-date'];\n  if ((rev != null) && !(rev in m.revision)) {\n    throw this.error(\"requested \" + rev + \" not available in \" + arg, 'import');\n  }\n  ref = m.extension;\n  for (k in ref) {\n    v = ref[k];\n    if (!(v.override === true)) {\n      continue;\n    }\n    original = this.resolve('extension', k);\n    copy = synth.copy({}, v);\n    copy.origin = synth.copy({}, (ref1 = original.origin) != null ? ref1 : original);\n    delete copy.override;\n    this.define('extension', k, copy);\n  }\n  return this.source[params.prefix] = m;\n}"
-   },
-   "construct": {
-    "!js/function": "function (arg, params, children, ctx) {\n  return this.compile(this.source[params.prefix], this.source);\n}"
-   },
-   "argument": "module"
-  },
-  "input": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "grouping": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var synth;\n  synth = this.require('data-synth');\n  return (synth.Object(params)).bind(children);\n}"
-   }
-  },
-  "leaf": {
-   "config": "0..1",
-   "default": "0..1",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "mandatory": "0..1",
-   "must": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "type": "0..1",
-   "units": "0..1",
-   "when": "0..1",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var synth;\n  synth = this.require('data-synth');\n  return synth.Property(params, function() {\n    if (children.type != null) {\n      return this.set({\n        type: children.type\n      });\n    }\n  });\n}"
-   },
-   "argument": "name"
-  },
-  "leaf-list": {
-   "config": "0..1",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "max-elements": "0..1",
-   "min-elements": "0..1",
-   "must": "0..n",
-   "ordered-by": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "type": "0..1",
-   "units": "0..1",
-   "when": "0..1",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var synth;\n  synth = this.require('data-synth');\n  return synth.List(params, function() {\n    if (children.type != null) {\n      return this.set({\n        type: children.type\n      });\n    }\n  });\n}"
-   },
-   "argument": "name"
-  },
-  "list": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "config": "0..1",
-   "container": "0..n",
-   "description": "0..1",
-   "grouping": "0..n",
-   "if-feature": "0..n",
-   "key": "0..1",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "max-elements": "0..1",
-   "min-elements": "0..1",
-   "must": "0..n",
-   "ordered-by": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "typedef": "0..n",
-   "unique": "0..1",
-   "uses": "0..n",
-   "when": "0..1",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var item, synth;\n  synth = this.require('data-synth');\n  item = (synth.Object(null)).bind(children);\n  return (synth.List(params)).set({\n    type: item\n  });\n}"
-   },
-   "argument": "name"
-  },
-  "mandatory": {
-   "preprocess": {
-    "!js/function": "function (arg, p, ctx) {\n  return ctx.mandatory = arg === true || arg === 'true';\n}"
-   },
-   "argument": "value"
-  },
-  "max-elements": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  if (arg !== 'unbounded') {\n    return ctx['max-elements'] = Number(arg);\n  }\n}"
-   },
-   "argument": "value"
-  },
-  "min-elements": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return ctx['min-elements'] = Number(arg);\n}"
-   },
-   "argument": "value"
-  },
-  "must": {
-   "description": "0..1",
-   "error-app-tag": "0..1",
-   "error-message": "0..1",
-   "reference": "0..1",
-   "argument": "condition"
-  },
-  "notification": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "description": "0..1",
-   "grouping": "0..n",
-   "if-feature": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "preprocess": {
-    "!js/function": "function (arg, params) {\n  return this.define('notification', arg, params);\n}"
-   },
-   "argument": "event"
-  },
-  "output": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "grouping": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var synth;\n  synth = this.require('data-synth');\n  return (synth.Object(params)).bind(children);\n}"
-   }
-  },
-  "path": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return ctx.path = arg.replace(/[_]/g, '.');\n}"
-   },
-   "argument": "value"
-  },
-  "pattern": {
-   "construct": {
-    "!js/function": "function (arg, params, children, ctx) {\n  if (ctx.patterns == null) {\n    ctx.patterns = [];\n  }\n  return ctx.patterns.push(new RegExp(arg));\n}"
-   },
-   "argument": "value"
-  },
-  "refine": {
-   "default": "0..1",
-   "description": "0..1",
-   "reference": "0..1",
-   "config": "0..1",
-   "mandatory": "0..1",
-   "presence": "0..1",
-   "must": "0..n",
-   "min-elements": "0..1",
-   "max-elements": "0..1",
-   "units": "0..1",
-   "argument": "target-node"
-  },
-  "require-instance": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return ctx['require-instance'] = arg === true || arg === 'true';\n}"
-   },
-   "argument": "value"
-  },
-  "revision": {
-   "description": "0..1",
-   "reference": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return this.define('revision', arg, params);\n}"
-   },
-   "argument": "date"
-  },
-  "rpc": {
-   "description": "0..1",
-   "grouping": "0..n",
-   "if-feature": "0..n",
-   "input": "0..1",
-   "output": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "typedef": "0..n",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var func, method, ref, ref1, request, response, synth;\n  synth = this.require('data-synth');\n  func = this.resolve('rpc', arg, false);\n  if (func == null) {\n    func = function(input, output, done) {\n      return done(\"No control logic found for '\" + arg + \"' rpc operation\");\n    };\n  }\n  request = (ref = children.input) != null ? ref : synth.Meta;\n  response = (ref1 = children.output) != null ? ref1 : synth.Meta;\n  method = function(data, resolve, reject) {\n    var e, error, input, output;\n    if (typeof console.debug === \"function\") {\n      console.debug(\"executing rpc \" + arg + \"...\");\n    }\n    try {\n      input = new request(data, this);\n      output = new response(null, this);\n    } catch (error) {\n      e = error;\n      return reject(e);\n    }\n    return func.call(this, input, output, function(e) {\n      if (e == null) {\n        return resolve(output);\n      } else {\n        return reject(e);\n      }\n    });\n  };\n  method.params = params;\n  method.input = request;\n  method.output = response;\n  return method;\n}"
-   },
-   "argument": "name"
-  },
-  "submodule": {
-   "argument": "name",
-   "anyxml": "0..n",
-   "augment": "0..n",
-   "belongs-to": "0..1",
-   "choice": "0..n",
-   "contact": "0..1",
-   "container": "0..n",
-   "description": "0..1",
-   "deviation": "0..n",
-   "extension": "0..n",
-   "feature": "0..n",
-   "grouping": "0..n",
-   "identity": "0..n",
-   "import": "0..n",
-   "include": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "notification": "0..n",
-   "organization": "0..1",
-   "reference": "0..1",
-   "revision": "0..n",
-   "rpc": "0..n",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "yang-version": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  var k, v;\n  for (k in params) {\n    v = params[k];\n    ctx[k] = v;\n  }\n  return delete ctx.submodule;\n}"
-   }
-  },
-  "status": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return ctx.status != null ? ctx.status : ctx.status = arg;\n}"
-   },
-   "argument": "value"
-  },
-  "type": {
-   "base": "0..1",
-   "bit": "0..n",
-   "enum": "0..n",
-   "fraction-digits": "0..1",
-   "length": "0..1",
-   "path": "0..1",
-   "pattern": "0..n",
-   "range": "0..1",
-   "require-instance": "0..1",
-   "type": "0..n",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return delete this.enumValue;\n}"
-   },
-   "construct": {
-    "!js/function": "function (arg, params, children, ctx) {\n  var key, mparams, ref, ref1, synth, typedef, value;\n  synth = this.require('data-synth');\n  typedef = this.resolve('typedef', arg);\n  if (typedef == null) {\n    throw this.error(\"unable to resolve typedef for \" + arg);\n  }\n  switch (false) {\n    case typedef.construct == null:\n      ctx.type = typedef.construct(params, this, arguments.callee);\n      break;\n    case typeof typedef.type !== 'object':\n      ref = typedef.type;\n      for (key in ref) {\n        value = ref[key];\n        mparams = synth.copy({}, value);\n        synth.copy(mparams, params);\n        arguments.callee.call(this, key, mparams, children, ctx);\n      }\n      break;\n    case typeof typedef.type !== 'string':\n      arguments.callee.call(this, typedef.type, params, children, ctx);\n  }\n  if ((ref1 = ctx.type) != null) {\n    ref1.toString = function() {\n      return arg;\n    };\n  }\n  return null;\n}"
-   },
-   "argument": "name"
-  },
-  "typedef": {
-   "default": "0..1",
-   "description": "0..1",
-   "units": "0..1",
-   "type": "0..1",
-   "reference": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params) {\n  return this.define('typedef', arg, params);\n}"
-   },
-   "argument": "name"
-  },
-  "uses": {
-   "augment": "0..n",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "refine": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "when": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  var changes, grouping, k, match, ref, ref1, synth, target, v;\n  synth = this.require('data-synth');\n  grouping = synth.copy({}, this.resolve('grouping', arg));\n  delete grouping.description;\n  delete grouping.reference;\n  synth.copy(ctx, grouping);\n  ref = params.refine;\n  for (target in ref) {\n    changes = ref[target];\n    match = this.locate(ctx, target);\n    if (match == null) {\n      continue;\n    }\n    for (k in changes) {\n      v = changes[k];\n      match[k] = v;\n    }\n  }\n  ref1 = params.augment;\n  for (target in ref1) {\n    changes = ref1[target];\n    match = this.locate(ctx, target);\n    if (match == null) {\n      continue;\n    }\n    synth.copy(match, changes);\n  }\n  if (typeof ctx.uses === 'object') {\n    return delete ctx.uses[arg];\n  } else {\n    return delete ctx.uses;\n  }\n}"
-   },
-   "argument": "name"
-  },
-  "when": {
-   "description": "0..1",
-   "reference": "0..1",
-   "argument": "condition"
-  },
-  "anyxml": {},
-  "base": {
-   "argument": "name"
-  },
-  "contact": {
-   "argument": {
-    "text": {
-     "yin-element": "true"
-    }
-   }
-  },
-  "default": {
-   "argument": "value"
-  },
-  "description": {
-   "argument": {
-    "text": {
-     "yin-element": "true"
-    }
-   }
-  },
-  "error-app-tag": {
-   "argument": "value"
-  },
-  "error-message": {
-   "argument": {
-    "value": {
-     "yin-element": "true"
-    }
-   }
-  },
-  "fraction-digits": {
-   "argument": "value"
-  },
-  "key": {
-   "argument": "value"
-  },
-  "length": {
-   "argument": "value"
-  },
-  "namespace": {
-   "argument": "uri"
-  },
-  "ordered-by": {
-   "argument": "value"
-  },
-  "organization": {
-   "argument": {
-    "text": {
-     "yin-element": "true"
-    }
-   }
-  },
-  "position": {
-   "argument": "value"
-  },
-  "presence": {
-   "argument": "value"
-  },
-  "range": {
-   "argument": "value"
-  },
-  "reference": {
-   "argument": {
-    "text": {
-     "yin-element": "true"
-    }
-   }
-  },
-  "revision-date": {
-   "argument": "date"
-  },
-  "unique": {
-   "argument": "tag"
-  },
-  "units": {
-   "argument": "value"
-  },
-  "value": {
-   "argument": "value"
-  },
-  "yang-version": {
-   "argument": "value"
-  },
-  "yin-element": {
-   "argument": "value"
-  }
- },
- "pkgdir": "/Users/kkashalk/dev/rift/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang",
- "module": {}
-}
\ No newline at end of file
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/mano-base.yang.src b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/mano-base.yang.src
deleted file mode 100755 (executable)
index 357c891..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-
-/*
- * STANDARD_RIFT_IO_COPYRIGHT
- *
- */
-
-module mano-base
-{
-  namespace "http://riftio.com/ns/riftware-1.0/mano-base";
-  prefix "manobase";
-
-  import ietf-yang-types {
-    prefix "yang";
-  }
-
-  import rw-cli-ext {
-    prefix "rwcli";
-  }
-
-  revision 2015-08-25 {
-    description
-      "This YANG file provides agument points for VNF specific 
-       configuration and operational data";
-    reference
-      "Derived from earlier versions of base YANG files";
-  }
-
-  container vnf-config {
-    description
-        "Container for VNF configuration data";
-    list vnf {
-      description
-          "The VNF configuration data YANG moodel augments this path";
-      rwcli:new-mode "vnf";
-      key "name instance";
-      leaf name {
-        description
-            "Name of the VNF.";
-        type string;
-      }
-      leaf instance{
-        description
-          "Instance number of the VNF.";
-        type uint32;
-      }
-      leaf id {
-        description
-            "Identifier for the VNF";
-        type yang:uuid;
-      }
-    }
-  }
-
-  container vnf-opdata {
-    description
-        "Container for VNF operational data";
-    config false;
-    list vnf {
-      description
-          "The VNF operational data YANG model augments this path";
-      key "name instance";
-      config false;
-      leaf name {
-        description
-          "Name of the VNF.";
-        type string;
-      }
-      leaf instance{
-        description
-          "Instance number of the VNF.";
-        type uint32;
-      }
-      leaf id {
-        description
-            "Identifier for the VNF";
-        type yang:uuid;
-      }
-    }
-  }
-}
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/mano-types.yang.src b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/mano-types.yang.src
deleted file mode 100755 (executable)
index bb7a443..0000000
+++ /dev/null
@@ -1,1631 +0,0 @@
-
-/*
- * STANDARD_RIFT_IO_COPYRIGHT
- *
- */
-
-module mano-types
-{
-  namespace "urn:ietf:params:xml:ns:yang:nfvo:mano-types";
-  prefix "manotypes";
-
-  import ietf-inet-types {
-    prefix "inet";
-  }
-
-  import rw-pb-ext {
-    prefix "rwpb";
-  }
-
-  revision 2015-04-23 {
-    description
-      "Initial revision. This YANG file defines
-       the reusable base types for VNF Management
-       and Orchestration (MANO).";
-    reference
-      "Derived from earlier versions of base YANG files";
-  }
-
-  typedef parameter-data-type {
-    type enumeration {
-      enum STRING;
-      enum INTEGER;
-      enum BOOLEAN;
-    }
-  }
-
-  grouping primitive-parameter {
-    leaf name {
-      description
-          "Name of the parameter.";
-      type string;
-    }
-
-    leaf data-type {
-      description
-          "Data type associated with the name.";
-      type manotypes:parameter-data-type;
-    }
-
-    leaf mandatory {
-      description "Is this field mandatory";
-      type boolean;
-      default false;
-    }
-
-    leaf default-value {
-      description "The default value for this field";
-      type string;
-    }
-
-    leaf parameter-pool {
-      description "NSD Parameter pool name to use for this paramter";
-      type string;
-    }
-
-    leaf read-only {
-      description
-        "The value should be greyed out by the UI.
-        Only applies to parameters with default values.";
-      type boolean;
-    }
-
-    leaf hidden {
-      description
-        "The value should be hidden by the UI.
-        Only applies to parameters with default values.";
-      type boolean;
-    }
-  }
-  
-
-  grouping vnf-configuration {
-    container vnf-configuration {
-      //rwpb:msg-new VnfConfiguration;
-      description
-          "Information regarding the VNF configuration 
-           is captured here. ";
-
-      choice config-method {
-        description
-            "Defines the configuration method for the VNF.";
-        case netconf {
-          description
-              "Use NETCONF for configuring the VNF.";
-          container netconf {
-            leaf target {
-              description
-                  "Netconf configuration target";
-              type enumeration {
-                enum running;
-                enum candidate;
-              }
-            }
-
-            leaf protocol {
-              description
-                  "Protocol to use for netconf (e.g. ssh)";
-              type enumeration {
-                enum None;
-                enum ssh;
-              }
-            }
-
-            leaf port {
-              description
-                  "Port for the netconf server.";
-              type inet:port-number;
-            }
-          }
-        }
-
-        case rest {
-          description
-              "Use REST for configuring the VNF.";
-          container rest {
-            leaf port {
-              description
-                  "Port for the REST server.";
-              type inet:port-number;
-            }
-          }
-        }
-
-        case script {
-          description
-              "Use custom script for configuring the VNF.
-               This script is executed in the context of 
-               Orchestrator.";
-          container script {
-            leaf script-type {
-              description
-                  "Script type - currently supported : bash, expect";
-              type enumeration {
-                enum bash;
-                enum expect;
-              }
-            }
-          }
-        }
-
-        case juju {
-          description
-            "Configure the VNF through Juju.";
-          container juju {
-            leaf charm {
-              description "Juju charm to use with the VNF.";
-              type string;
-            }
-          }
-        }
-      }
-
-      container config-access {
-        leaf mgmt-ip-address {
-          description
-              "IP address to be used to configure this VNF,
-               optional if it is possible to resolve dynamically.";
-          type inet:ip-address;
-        }
-
-        leaf username {
-          description 
-              "username for configuration.";
-          type string;
-        }
-
-        leaf password {
-          description 
-              "Password for configuration access authentication.";
-          type string;
-        }
-      }
-
-      container config-attributes {
-        description
-            "Miscelaneous input parameters to be considered
-             while processing the NSD to apply configuration";
-
-        leaf config-priority {
-          description
-              "Configuration priority - order of confgiration
-               to be applied to each VNF in this NS,
-               low number gets precedence over high number";
-          type uint64;
-        }
-
-        leaf config-delay {
-          description 
-              "Wait (seconds) before applying the configuration to VNF";
-          type uint64;
-        }
-      }
-
-      list config-primitive {
-        //rwpb:msg-new ConfigPrimitive;
-        description
-            "List of configuration primitives supported by the
-            configuration agent for this VNF.";
-        key "name";
-
-        leaf name {
-          description
-              "Name of the configuration primitive.";
-          type string;
-        }
-
-        list parameter {
-          description
-              "List of parameters to the configuration primitive.";
-          key "name";
-          uses primitive-parameter;
-        }
-      }
-
-      list initial-config-primitive {
-        //rwpb:msg-new InitialConfigPrimitive;
-        description
-            "Initial set of configuration primitives.";
-        key "seq";
-        leaf seq {
-          description
-              "Sequence number for the configuration primitive.";
-          type uint64;
-        }
-
-        leaf name {
-          description 
-              "Name of the configuration primitive.";
-          type string;
-        }
-
-        list parameter {
-          key "name";
-          leaf name {
-            type string;
-          }
-
-          leaf value {
-            type string;
-          }
-        }
-      }
-
-      leaf config-template {
-        description
-            "Configuration template for each VNF";
-        type string;
-      }
-    }
-  } // END - grouping vnf-configuration
-
-  typedef virtual-link-type {
-    description
-        "Type of virtual link
-         ELAN: A multipoint service connecting a set of VNFs
-         // ELINE: For a simple point to point connection
-         //        between a VNF and the existing network.
-         // ETREE: A multipoint service connecting one or
-         //        more roots and a set of leaves, but
-         //        preventing inter-leaf communication.";
-    type enumeration {
-      enum ELAN;
-      // enum ETREE;
-      // enum ELINE;
-    }
-  }
-
-  grouping named-value {
-    leaf name {
-      type string;
-    }
-
-    leaf value {
-      type string;
-    }
-  }
-
-  typedef http-method {
-    description
-      "Type of HTTP operation";
-
-    type enumeration {
-      enum POST;
-      enum PUT;
-      enum GET;
-      enum DELETE;
-      enum OPTIONS;
-      enum PATCH;
-    }
-  }
-
-  typedef api-type {
-    description
-      "Type of API to fetch monitoring params";
-
-    type enumeration {
-      enum HTTP;
-      enum NETCONF;
-      enum SOAP;
-    }
-  }
-
-  typedef json-query-method {
-    description
-      "The method to extract a value from a JSON response
-
-       NAMEKEY - Use the name as the key for a non-nested value.
-       JSONPATH - Use jsonpath-rw implemenation to extract a value.
-       OBJECTPATH - Use objectpath implemenation to extract a value.";
-      type enumeration {
-        enum NAMEKEY;
-        enum JSONPATH;
-        enum OBJECTPATH;
-      }
-  }
-
-  typedef param-value-type {
-    description
-      "The type of the parameter value";
-    type enumeration {
-       enum INT;
-       enum DECIMAL;
-       enum STRING;
-    }
-  }
-
-  typedef connection-point-type {
-    description
-        "Type of connection point
-        VPORT: Virtual Port
-        // VNIC_ADDR: Virtual NIC Address
-        // PNIC_ADDR: Physical NIC Address
-        // PPORT: Phsical Port.";
-
-    type enumeration {
-      enum VPORT;
-    }
-  }
-
-  typedef widget-type {
-    description
-        "Type of the widget, typically used by the UI.";
-    type enumeration {
-      enum HISTOGRAM;
-      enum BAR;
-      enum GAUGE;
-      enum SLIDER;
-      enum COUNTER;
-      enum TEXTBOX;
-    }
-  }
-
-  typedef cpu-feature-type {
-    description
-        "Enumeration for CPU features.
-
-         AES: CPU supports advanced instruction set for
-         AES (Advanced Encryption Standard).
-
-         CAT: Cache Allocation Technology (CAT) allows
-         an Operating System, Hypervisor, or similar
-         system management agent to specify the amount
-         of L3 cache (currently the last-level cache
-         in most server and client platforms) space an
-         application can fill (as a hint to hardware
-         functionality, certain features such as power
-         management may override CAT settings).
-
-         CMT: Cache Monitoring Technology (CMT) allows
-         an Operating System, Hypervisor, or similar
-         system management agent to determine the
-         usage of cache based on applications running
-         on the platform. The implementation is
-         directed at L3 cache monitoring (currently
-         the last-level cache in most server and
-         client platforms).
-
-         DDIO: Intel Data Direct I/O (DDIO) enables
-         Ethernet server NICs and controllers talk
-         directly to the processor cache without a
-         detour via system memory. This enumeration
-         specifies if the VM requires a DDIO
-         capable host.";
-
-    type enumeration {
-      enum PREFER_AES;
-      enum REQUIRE_AES;
-      enum PREFER_CAT;
-      enum REQUIRE_CAT;
-      enum PREFER_CMT;
-      enum REQUIRE_CMT;
-      enum PREFER_DDIO;
-      enum REQUIRE_DDIO;
-    }
-  }
-
-  grouping vm-flavor {
-    container vm-flavor {
-      leaf vcpu-count {
-        description
-            "Number of vcpus for the VM.";
-        type uint16;
-      }
-
-      leaf memory-mb {
-        description
-            "Amount of memory in MB.";
-        type uint64;
-      }
-
-      leaf storage-gb {
-        description
-            "Amount of disk space in GB.";
-        type uint64;
-      }
-    }
-  } //grouping vm-flavor
-
-  grouping vswitch-epa {
-    container vswitch-epa {
-      leaf ovs-acceleration {
-        description
-            "Specifies Open vSwitch acceleration mode.
-             MANDATORY: OVS acceleration is required
-             PREFERRED: OVS acceleration is preferred";
-        type enumeration {
-          enum MANDATORY;
-          enum PREFERRED;
-          enum DISABLED;
-        }
-      }
-
-      leaf ovs-offload {
-        description
-            "Specifies Open vSwitch hardware offload mode.
-             MANDATORY: OVS offload is required
-             PREFERRED: OVS offload is preferred";
-        type enumeration {
-          enum MANDATORY;
-          enum PREFERRED;
-          enum DISABLED;
-        }
-      }
-    }
-  }
-
-  grouping hypervisor-epa {
-    container hypervisor-epa {
-      leaf type {
-        description
-            "Specifies the type of hypervisor.
-             KVM: KVM
-             XEN: XEN";
-        type enumeration {
-          enum PREFER_KVM;
-          enum REQUIRE_KVM;
-        }
-      }
-      leaf version {
-        type string;
-      }
-    }
-  }
-
-  grouping host-epa {
-    container host-epa {
-      description "Specifies the host level EPA attributes.";
-      leaf cpu-model {
-        description
-            "Host CPU model. Examples include: SandyBridge,
-             IvyBridge";
-        type enumeration {
-          enum PREFER_WESTMERE;
-          enum REQUIRE_WESTMERE;
-          enum PREFER_SANDYBRIDGE;
-          enum REQUIRE_SANDYBRIDGE;
-          enum PREFER_IVYBRIDGE;
-          enum REQUIRE_IVYBRIDGE;
-          enum PREFER_HASWELL;
-          enum REQUIRE_HASWELL;
-          enum PREFER_BROADWELL;
-          enum REQUIRE_BROADWELL;
-          enum PREFER_NEHALEM;
-          enum REQUIRE_NEHALEM;
-          enum PREFER_PENRYN;
-          enum REQUIRE_PENRYN;
-          enum PREFER_CONROE;
-          enum REQUIRE_CONROE;
-          enum PREFER_CORE2DUO;
-          enum REQUIRE_CORE2DUO;
-        }
-      }
-
-      leaf cpu-arch {
-        description "Host CPU architecture.";
-        type enumeration {
-          enum PREFER_X86;
-          enum REQUIRE_X86;
-          enum PREFER_X86_64;
-          enum REQUIRE_X86_64;
-          enum PREFER_I686;
-          enum REQUIRE_I686;
-          enum PREFER_IA64;
-          enum REQUIRE_IA64;
-          enum PREFER_ARMV7;
-          enum REQUIRE_ARMV7;
-          enum PREFER_ARMV8;
-          enum REQUIRE_ARMV8;
-        }
-      }
-
-      leaf cpu-vendor {
-        description "Host CPU Vendor.";
-        type enumeration {
-          enum PREFER_INTEL;
-          enum REQUIRE_INTEL;
-          enum PREFER_AMD;
-          enum REQUIRE_AMD;
-        }
-      }
-
-      leaf cpu-socket-count {
-        description "Number of sockets on the host.";
-        type enumeration {
-          enum PREFER_ONE;
-          enum PREFER_TWO;
-          enum REQUIRE_ONE;
-          enum REQUIRE_TWO;
-        }
-      }
-
-      leaf cpu-core-count {
-        description "Number of cores on the host.";
-        type uint64;
-      }
-
-      leaf-list cpu-feature {
-        description
-            "List of CPU features.";
-        type manotypes:cpu-feature-type;
-      }
-
-      leaf om-cpu-model-string {
-        description "Openmano CPU model string";
-        type string;
-      }
-
-      leaf-list om-cpu-feature {
-        description "Openmano CPU features";
-        type string;
-      }
-    }
-  }
-
-  grouping guest-epa {
-    description "EPA attributes for the guest";
-    container guest-epa {
-      leaf trusted-execution {
-        description "This VM should be allocated from trusted pool";
-        type boolean;
-      }
-
-      leaf mempage-size {
-        description
-            "Memory page allocation size. If a VM requires
-             hugepages, it should choose LARGE or SIZE_2MB
-             or SIZE_1GB. If the VM prefers hugepages it
-             should chose PREFER_LARGE.
-             LARGE        : Require hugepages (either 2MB or 1GB)
-             SMALL        : Doesn't require hugepages
-             SIZE_2MB     : Requires 2MB hugepages
-             SIZE_1GB     : Requires 1GB hugepages
-             PREFER_LARGE : Application perfers hugepages";
-        type enumeration {
-          enum LARGE;
-          enum SMALL;
-          enum SIZE_2MB;
-          enum SIZE_1GB;
-          enum PREFER_LARGE;
-        }
-      }
-
-      leaf cpu-pinning-policy {
-        description
-            "CPU pinning policy describes association
-             between virtual CPUs in guest and the
-             physical CPUs in the host.
-             DEDICATED : Virtual CPUs are pinned to
-                         physical CPUs
-             SHARED    : Multiple VMs may share the
-                         same physical CPUs.
-             ANY       : Any policy is acceptable for the VM";
-        type enumeration {
-          enum DEDICATED;
-          enum SHARED;
-          enum ANY;
-        }
-        default "ANY";
-      }
-
-      leaf cpu-thread-pinning-policy {
-          description
-            "CPU thread pinning policy describes how to
-             place the guest CPUs when the host supports
-             hyper threads:
-             AVOID   : Avoids placing a guest on a host
-                       with threads.
-             SEPARATE: Places vCPUs on separate cores,
-                       and avoids placing two vCPUs on
-                       two threads of same core.
-             ISOLATE : Places each vCPU on a different core,
-                       and places no vCPUs from a different
-                       guest on the same core.
-             PREFER  : Attempts to place vCPUs on threads
-                       of the same core.";
-        type enumeration {
-          enum AVOID;
-          enum SEPARATE;
-          enum ISOLATE;
-          enum PREFER;
-        }
-      }
-
-      list pcie-device {
-        description
-            "List of pcie passthrough devices.";
-        key device-id;
-        leaf device-id {
-          description
-              "Device identifier.";
-          type string;
-        }
-        leaf count {
-          description
-              "Number of devices to attach to the VM.";
-          type uint64;
-        }
-      }
-
-      choice numa-policy {
-        case numa-unware {
-          leaf numa-unware {
-            type empty;
-          }
-        }
-
-        case numa-aware {
-          container numa-node-policy {
-            description
-                "This policy defines numa topology of the
-                 guest. Specifically identifies if the guest
-                 should be run on a host with one numa
-                 node or multiple numa nodes. As an example
-                 a guest may want 8 vcpus and 4 GB of
-                 memory. But may want the vcpus and memory
-                 distributed across multiple numa nodes.
-                 The NUMA node 1 may run with 6 vcpus and
-                 3GB, and NUMA node 2 may run with 2 vcpus
-                 and 1GB.";
-
-            leaf node-cnt {
-              description
-                  "The number of numa nodes to expose to the VM.";
-              type uint16;
-            }
-
-            leaf mem-policy {
-              description
-                  "This policy specifies how the memory should
-                   be allocated in a multi-node scenario.
-                   STRICT    : The memory must be allocated
-                               strictly from the memory attached
-                               to the NUMA node.
-                   PREFERRED : The memory should be allocated
-                               perferentially from the memory
-                               attached to the NUMA node";
-              type enumeration {
-                enum STRICT;
-                enum PREFERRED;
-              }
-            }
-
-           list node {
-              key id;
-              leaf id {
-                description
-                    "NUMA node identification. Typically
-                     it's 0 or 1";
-                type uint64;
-              }
-
-              leaf-list vcpu {
-                description
-                    "List of vcpus to allocate on
-                     this numa node.";
-                type uint64;
-              }
-
-              leaf memory-mb {
-                description
-                    "Memory size expressed in MB
-                     for this NUMA node.";
-                type uint64;
-              }
-
-              choice om-numa-type {
-                description
-                    "Openmano Numa type selection";
-
-                case cores {
-                  leaf num-cores {
-                    type uint8;
-                  }
-                }
-
-                case paired-threads {
-                  container paired-threads {
-                    leaf num-paired-threads {
-                      type uint8;
-                    }
-
-                    list paired-thread-ids {
-                      description
-                          "List of thread pairs to use in case of paired-thread numa";
-                      max-elements 16;
-                      key thread-a;
-
-                      leaf thread-a {
-                          type uint8;
-                      }
-
-                      leaf thread-b {
-                          type uint8;
-                      }
-                    }
-                  }
-                }
-                case threads {
-                  leaf num-threads {
-                    type uint8;
-                  }
-                }
-              }
-            }
-
-          }
-        }
-      }
-    }
-  }
-
-  grouping provider-network {
-    container provider-network {
-      description "Container for the provider network.";
-      leaf physical-network {
-        description
-            "Name of the phsyical network on which the provider
-             network is built.";
-        type string;
-      }
-
-      leaf overlay-type {
-        description
-            "Type of the overlay network.";
-        type enumeration {
-          enum LOCAL;
-          enum FLAT;
-          enum VLAN;
-          enum VXLAN;
-          enum GRE;
-        }
-      }
-      leaf segmentation_id {
-        description
-            "Segmentation ID";
-            type uint32;
-      }
-    }
-  }
-  grouping config-primitive {
-    list config-primitive {
-      description
-          "Network service level configuration primitives.";
-
-      key "name";
-
-      leaf name {
-        description
-            "Name of the configuration primitive.";
-        type string;
-      }
-
-      list parameter {
-        description
-            "List of parameters to the configuration primitive.";
-
-        key "name";
-        uses manotypes:primitive-parameter;
-      }
-
-      list parameter-group {
-        description
-            "Grouping of parameters which are logically grouped in UI";
-        key "name";
-
-        leaf name {
-          description
-              "Name of the parameter group";
-          type string;
-        }
-
-        list parameter {
-          description
-              "List of parameters to the configuration primitive.";
-          key "name";
-          uses manotypes:primitive-parameter;
-        }
-
-        leaf mandatory {
-          description "Is this parameter group mandatory";
-          type boolean;
-          default true;
-        }
-      }
-
-      list vnf-primitive-group {
-        description
-            "List of configuration primitives grouped by VNF.";
-
-        key "member-vnf-index-ref";
-        leaf member-vnf-index-ref {
-          description
-              "Reference to member-vnf within constituent-vnfds";
-          type uint64;
-        }
-
-        leaf vnfd-id-ref {
-          description
-              "A reference to a vnfd. This is a 
-               leafref to path:
-                   ../../../../nsd:constituent-vnfd
-                   + [nsd:id = current()/../nsd:id-ref]
-                   + /nsd:vnfd-id-ref
-               NOTE: An issue with confd is preventing the
-               use of xpath. Seems to be an issue with leafref
-               to leafref, whose target is in a different module.
-               Once that is resovled this will switched to use
-               leafref";
-
-          type string;
-        }
-
-        leaf vnfd-name {
-          description
-              "Name of the VNFD";
-          type string;
-        }
-
-        list primitive {
-          key "index";
-
-          leaf index {
-            description "Index of this primitive";
-            type uint32;
-          }
-
-          leaf name {
-            description "Name of the primitive in the VNF primitive ";
-            type string;
-          }
-        }
-      }
-
-      leaf user-defined-script {
-        description
-            "A user defined script.";
-        type string;
-      }
-      }
-  }
-
-  grouping monitoring-param {
-    list http-endpoint {
-      description
-          "List of http endpoints to be used by monitoring params";
-      key path;
-
-      leaf path {
-        description "The HTTP path on the management server";
-        type string;
-      }
-
-      leaf https {
-        description "Pick HTTPS instead of HTTP , Default is false";
-        type boolean;
-        default "false";
-      }
-
-      leaf port {
-        description "The HTTP port to connect to";
-        type inet:port-number;
-      }
-
-      leaf username {
-        description "The HTTP basic auth username";
-        type string;
-      }
-
-      leaf password {
-        description "The HTTP basic auth password";
-        type string;
-      }
-
-      leaf polling_interval_secs {
-        description "The HTTP polling interval in seconds";
-        type uint8;
-        default 2;
-      }
-
-      leaf method {
-        description
-          "This is the method to be performed at the uri.
-           GET by default for action";
-
-        type manotypes:http-method;
-        default "GET";
-      }
-
-      list headers {
-        description "Custom HTTP headers to put on HTTP request";
-        key key;
-        leaf key{
-          description "HTTP header key";
-          type string;
-        }
-
-        leaf value{
-          description "HTTP header value";
-          type string;
-        }
-      }
-    }
-
-    list monitoring-param {
-      description
-          "List of monitoring parameters at the NS level";
-      key id;
-      leaf id {
-        type string;
-      }
-
-      leaf name {
-        type string;
-      }
-
-      leaf http-endpoint-ref {
-        type leafref {
-          path "../../http-endpoint/path";
-        }
-      }
-
-      leaf json-query-method {
-        type manotypes:json-query-method;
-        default "NAMEKEY";
-      }
-
-      container json-query-params {
-        leaf json-path {
-          description
-            "The jsonpath to use to extract value from JSON structure";
-          type string;
-        }
-        leaf object-path {
-          description
-            "The objectpath to use to extract value from JSON structure";
-          type string;
-        }
-      }
-
-      leaf description {
-        type string;
-      }
-
-      leaf group-tag {
-        description "A simple tag to group monitoring parameters";
-        type string;
-      }
-
-      leaf value-type {
-        type manotypes:param-value-type;
-        default "INT";
-      }
-
-      container numeric-constraints {
-        leaf min-value {
-          description
-              "Minimum value for the parameter";
-          type uint64;
-        }
-        leaf max-value {
-          description
-              "Maxium value for the parameter";
-          type uint64;
-        }
-      }
-
-      container text-constraints {
-        leaf min-length {
-          description
-              "Minimum string length for the parameter";
-          type uint8;
-        }
-        leaf max-length {
-          description
-              "Maximum string length for the parameter";
-          type uint8;
-        }
-      }
-
-      leaf value-integer {
-        description
-            "Current value for an integer parameter";
-        type int64;
-      }
-
-      leaf value-decimal {
-        description
-            "Current value for a decimal parameter";
-        type decimal64 {
-          fraction-digits 4;
-        }
-      }
-
-      leaf value-string {
-        description
-            "Current value for a string parameter";
-        type string;
-      }
-
-      leaf widget-type {
-        type manotypes:widget-type;
-      }
-
-      leaf units {
-        type string;
-      }
-    }
-  }
-
-  grouping control-param {
-    list control-param {
-      description
-          "List of control parameters to manage and
-           update the running configuration of the VNF";
-      key id;
-
-      leaf id {
-        type string;
-      }
-
-      leaf name {
-        type string;
-      }
-
-      leaf description {
-        type string;
-      }
-
-      leaf group-tag {
-        description "A simple tag to group control parameters";
-        type string;
-      }
-
-      leaf min-value {
-        description
-            "Minimum value for the parameter";
-        type uint64;
-      }
-
-      leaf max-value {
-        description
-            "Maxium value for the parameter";
-        type uint64;
-      }
-
-      leaf current-value {
-        description
-            "Current value for the parameter";
-        type uint64;
-      }
-
-      leaf step-value {
-        description
-            "Step value for the parameter";
-        type uint64;
-      }
-
-      leaf units {
-        type string;
-      }
-
-      leaf widget-type {
-        type manotypes:widget-type;
-      }
-
-      leaf url {
-        description
-          "This is the URL where to perform the operation";
-
-        type inet:uri;
-      }
-
-      leaf method {
-        description
-          "This is the method to be performed at the uri.
-           POST by default for action";
-
-        type manotypes:http-method;
-        default "POST";
-      }
-
-      leaf payload {
-        description
-          "This is the operation payload or payload template as stringified
-           JSON. This field provides the data  to be sent for this operation
-           call";
-
-        type string;
-      }
-    }
-  }
-
-  grouping action-param {
-    list action-param {
-      description
-          "List of action parameters to
-           control VNF";
-      key id;
-      leaf id {
-        type string;
-      }
-
-      leaf name {
-        type string;
-      }
-
-      leaf description {
-        type string;
-      }
-
-      leaf group-tag {
-        description "A simple tag to group monitoring parameter";
-        type string;
-      }
-
-      leaf url {
-        description
-          "This is the URL where to perform the operation";
-        type inet:uri;
-      }
-
-      leaf method {
-        description
-          "This is the method to be performed at the uri.
-           POST by default for action";
-
-        type manotypes:http-method;
-        default "POST";
-      }
-
-      leaf payload {
-        description
-          "This is the operation payload or payload template to be sent in
-           the data for this operation call";
-
-        type string;
-      }
-    }
-  }
-
-  grouping input-parameter {
-    description "";
-
-    list input-parameter {
-      description
-          "List of input parameters";
-
-      key xpath;
-
-
-      leaf xpath {
-        description
-          "A an xpath that specfies which element in a descriptor is to be
-          modified.";
-        type string;
-      }
-
-      leaf value {
-        description
-          "The value that the element specified by the xpath should take when a
-          record is created.";
-        type string;
-      }
-    }
-  }
-
-  grouping input-parameter-xpath {
-    list input-parameter-xpath {
-      description
-          "List of xpaths to parameters inside the NSD
-           the can be customized during the instantiation.";
-
-      key "xpath";
-      leaf xpath {
-        description
-            "An xpath that specifies the element in a descriptor.";
-        type string;
-      }
-
-      leaf label {
-        description "A descriptive string";
-        type string;
-      }
-
-      leaf default-value {
-        description " A default value for this input parameter";
-        type string;
-      }
-    }
-  }
-
-  grouping nfvi-metrics {
-    container vcpu {
-      leaf label {
-        description
-          "Label to show in UI";
-        type string;
-        default "VCPU";
-      }
-
-      leaf total {
-        description
-          "The total number of VCPUs available.";
-        type uint64;
-      }
-
-      leaf utilization {
-        description
-          "The VCPU utilization (percentage).";
-        type decimal64 {
-          fraction-digits 2;
-          range "0 .. 100";
-        }
-      }
-    }
-
-    container memory {
-      leaf label {
-        description
-          "Label to show in UI";
-        type string;
-        default "MEMORY";
-      }
-
-      leaf used {
-        description
-          "The amount of memory (bytes) currently in use.";
-        type uint64;
-      }
-
-      leaf total {
-        description
-          "The amount of memory (bytes) available.";
-        type uint64;
-      }
-
-      leaf utilization {
-        description
-          "The memory utilization (percentage).";
-        type decimal64 {
-          fraction-digits 2;
-          range "0 .. 100";
-        }
-      }
-    }
-
-    container storage {
-      leaf label {
-        description
-          "Label to show in UI";
-        type string;
-        default "STORAGE";
-      }
-
-      leaf used {
-        description
-          "The amount of storage (bytes) currently in use.";
-        type uint64;
-      }
-
-      leaf total {
-        description
-          "The amount of storage (bytes) available.";
-        type uint64;
-      }
-
-      leaf utilization {
-        description
-          "The storage utilization (percentage).";
-        type decimal64 {
-          fraction-digits 2;
-          range "0 .. 100";
-        }
-      }
-    }
-
-    container external-ports {
-      leaf label {
-        description
-          "Label to show in UI";
-        type string;
-        default "EXTERNAL PORTS";
-      }
-
-      leaf total {
-        description
-          "The total number of external ports.";
-        type uint64;
-      }
-    }
-
-    container internal-ports {
-      leaf label {
-        description
-          "Label to show in UI";
-        type string;
-        default "INTERNAL PORTS";
-      }
-
-      leaf total {
-        description
-          "The total number of internal ports.";
-        type uint64;
-      }
-    }
-
-    container network {
-      leaf label {
-        description
-          "Label to show in UI";
-        type string;
-        default "NETWORK TRAFFIC";
-      }
-
-      container incoming {
-        leaf label {
-          description
-            "Label to show in UI";
-          type string;
-          default "INCOMING NETWORK TRAFFIC";
-        }
-
-        leaf bytes {
-          description
-            "The cumulative number of incoming bytes.";
-          type uint64;
-        }
-
-        leaf packets {
-          description
-            "The cumulative number of incoming packets.";
-          type uint64;
-        }
-
-        leaf byte-rate {
-          description
-            "The current incoming byte-rate (bytes per second).";
-          type decimal64 {
-            fraction-digits 2;
-          }
-        }
-
-        leaf packet-rate {
-          description
-            "The current incoming packet (packets per second).";
-          type decimal64 {
-            fraction-digits 2;
-          }
-        }
-      }
-
-      container outgoing {
-        leaf label {
-          description
-            "Label to show in UI";
-          type string;
-          default "OUTGOING NETWORK TRAFFIC";
-        }
-
-        leaf bytes {
-          description
-            "The cumulative number of outgoing bytes.";
-          type uint64;
-        }
-
-        leaf packets {
-          description
-            "The cumulative number of outgoing packets.";
-          type uint64;
-        }
-
-        leaf byte-rate {
-          description
-            "The current outgoing byte-rate (bytes per second).";
-          type decimal64 {
-            fraction-digits 2;
-          }
-        }
-
-        leaf packet-rate {
-          description
-            "The current outgoing packet (packets per second).";
-          type decimal64 {
-            fraction-digits 2;
-          }
-        }
-      }
-    }
-  }
-
-  typedef alarm-severity-type {
-    description "An indication of the importance or ugency of the alarm";
-    type enumeration {
-      enum LOW;
-      enum MODERATE;
-      enum CRITICAL;
-    }
-  }
-
-  typedef alarm-metric-type {
-    description "The type of metrics to register the alarm for";
-    type enumeration {
-      enum CPU_UTILIZATION;
-      enum MEMORY_UTILIZATION;
-      enum STORAGE_UTILIZATION;
-    }
-  }
-
-  typedef alarm-statistic-type {
-    description
-        "The type of statistic to used to measure a metric to determine
-        threshold crossing for an alarm.";
-    type enumeration {
-      enum AVERAGE;
-      enum MINIMUM;
-      enum MAXIMUM;
-      enum COUNT;
-      enum SUM;
-    }
-  }
-
-  typedef alarm-operation-type {
-    description
-        "The relational operator used to define whether an alarm should be
-        triggered when, say, the metric statistic goes above or below a
-        specified value.";
-    type enumeration {
-      enum GE; // greater than or equal
-      enum LE; // less than or equal
-      enum GT; // greater than
-      enum LT; // less than
-      enum EQ; // equal
-    }
-  }
-
-  grouping alarm {
-    leaf alarm-id {
-      description
-          "This field is reserved for the identifier assigned by the cloud
-          provider";
-
-      type string;
-    }
-
-    leaf name {
-      description "A human readable string to identify the alarm";
-      type string;
-    }
-
-    leaf description {
-      description "A string containing a description of this alarm";
-      type string;
-    }
-
-    container actions {
-      list ok {
-        key "url";
-        leaf url {
-          type string;
-        }
-      }
-
-      list insufficient-data {
-        key "url";
-        leaf url {
-          type string;
-        }
-      }
-
-      list alarm {
-        key "url";
-        leaf url {
-          type string;
-        }
-      }
-    }
-
-    leaf repeat {
-      description
-          "This flag indicates whether the alarm should be repeatedly emitted
-          while the associated threshold has been crossed.";
-
-      type boolean;
-      default true;
-    }
-
-    leaf enabled {
-      description
-          "This flag indicates whether the alarm has been enabled or
-          disabled.";
-
-      type boolean;
-      default true;
-    }
-
-    leaf severity {
-      description "A measure of the important or urgency of the alarm";
-      type alarm-severity-type;
-    }
-
-    leaf metric {
-      description "The metric to be tracked by this alarm.";
-      type alarm-metric-type;
-    }
-
-    leaf statistic {
-      description "The type of metric statistic that is tracked by this alarm";
-      type alarm-statistic-type;
-    }
-
-    leaf operation {
-      description
-          "The relational operator that defines whether the alarm should be
-          triggered when the metric statistic is, say, above or below the
-          specified threshold value.";
-      type alarm-operation-type;
-    }
-
-    leaf value {
-      description
-          "This value defines the threshold that, if crossed, will trigger
-          the alarm.";
-      type decimal64 {
-        fraction-digits 4;
-      }
-    }
-
-    leaf period {
-      description
-          "The period defines the length of time (seconds) that the metric
-          data are collected over in oreder to evaluate the chosen
-          statistic.";
-      type uint32;
-    }
-
-    leaf evaluations {
-      description
-          "This is the number of samples of the metric statistic used to
-          evaluate threshold crossing. Each sample or evaluation is equal to
-          the metric statistic obtained for a given period. This can be used
-          to mitigate spikes in the metric that may skew the statistic of
-          interest.";
-      type uint32;
-    }
-  }
-
-  grouping placement-group-info {
-    description "";
-
-    leaf name {
-      description
-          "Place group construct to define the compute resource placement strategy
-           in cloud environment";
-      type string;
-    }
-
-    leaf requirement {
-      description "This is free text space used to describe the intent/rationale
-                   behind this placement group. This is for human consumption only";
-      type string;
-    }
-
-    leaf strategy {
-      description
-          "Strategy associated with this placement group
-             Following values are possible
-               - COLOCATION: Colocation strategy imply intent to share the physical
-                             infrastructure (hypervisor/network) among all members
-                             of this group.
-               - ISOLATION: Isolation strategy imply intent to not share the physical
-                            infrastructure (hypervisor/network) among the members
-                            of this group.
-             ";
-      type enumeration {
-        enum COLOCATION;
-        enum ISOLATION;
-      }
-      default "COLOCATION";
-    }
-  }
-}
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/model-meta.json b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/model-meta.json
deleted file mode 100644 (file)
index d03ef95..0000000
+++ /dev/null
@@ -1,3688 +0,0 @@
-{
-     "nsd": {
-          "name": "nsd",
-          "type": "list",
-          "cardinality": "0..N",
-          "properties": [
-               {
-                    "name": "id",
-                    "type": "leaf",
-                    "description": "Identifier for the NSD.",
-                    "cardinality": "0..1",
-                    "data-type": "string",
-                    "properties": []
-               },
-               {
-                    "name": "name",
-                    "type": "leaf",
-                    "description": "NSD name.",
-                    "cardinality": "1",
-                    "data-type": "string",
-                    "properties": []
-               },
-               {
-                    "name": "short-name",
-                    "type": "leaf",
-                    "description": "NSD short name.",
-                    "cardinality": "0..1",
-                    "data-type": "string",
-                    "properties": []
-               },
-               {
-                    "name": "vendor",
-                    "type": "leaf",
-                    "description": "Vendor of the NSD.",
-                    "cardinality": "0..1",
-                    "data-type": "string",
-                    "properties": []
-               },
-               {
-                    "name": "logo",
-                    "type": "leaf",
-                    "description": "File path for the vendor specific logo. For example icons/mylogo.png. The logo should be part of the network service",
-                    "cardinality": "0..1",
-                    "data-type": "string",
-                    "properties": []
-               },
-               {
-                    "name": "description",
-                    "type": "leaf",
-                    "description": "Description of the NSD.",
-                    "cardinality": "0..1",
-                    "data-type": "string",
-                    "properties": []
-               },
-               {
-                    "name": "version",
-                    "type": "leaf",
-                    "description": "Version of the NSD",
-                    "cardinality": "0..1",
-                    "data-type": "string",
-                    "properties": []
-               },
-               {
-                    "name": "meta",
-                    "type": "leaf",
-                    "description": "Any meta-data needed by the UI",
-                    "cardinality": "0..1",
-                    "data-type": "string",
-                    "properties": []
-               },
-               {
-                    "name": "connection-point",
-                    "type": "list",
-                    "description": "List for external connection points. Each NS has one or more external connection points. As the name implies that external connection points are used for connecting the NS to other NS or to external networks. Each NS exposes these connection points to the orchestrator. The orchestrator can construct network service chains by connecting the connection points between different NS.",
-                    "cardinality": "0..N",
-                    "properties": [
-                         {
-                              "name": "name",
-                              "type": "leaf",
-                              "description": "Name of the NS connection point.",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "type",
-                              "type": "leaf",
-                              "description": "Type of connection point VPORT: Virtual Port // VNIC_ADDR: Virtual NIC Address // PNIC_ADDR: Physical NIC Address // PPORT: Phsical Port.",
-                              "cardinality": "0..1",
-                              "data-type": {
-                                   "enumeration": {
-                                        "enum": "VPORT"
-                                   }
-                              },
-                              "properties": []
-                         }
-                    ],
-                    "key": [
-                         "name"
-                    ]
-               },
-               {
-                    "name": "vld",
-                    "type": "list",
-                    "description": "List of Virtual Link Descriptors.",
-                    "cardinality": "0..N",
-                    "properties": [
-                         {
-                              "name": "id",
-                              "type": "leaf",
-                              "description": "Identifier for the VLD.",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "name",
-                              "type": "leaf",
-                              "description": "Virtual Link Descriptor (VLD) name.",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "short-name",
-                              "type": "leaf",
-                              "description": "Short name for VLD for UI",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "vendor",
-                              "type": "leaf",
-                              "description": "Provider of the VLD.",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "description",
-                              "type": "leaf",
-                              "description": "Description of the VLD.",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "version",
-                              "type": "leaf",
-                              "description": "Version of the VLD",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "type",
-                              "type": "leaf",
-                              "description": "Type of virtual link ELAN: A multipoint service connecting a set of VNFs // ELINE: For a simple point to point connection // between a VNF and the existing network. // ETREE: A multipoint service connecting one or // more roots and a set of leaves, but // preventing inter-leaf communication.",
-                              "cardinality": "0..1",
-                              "data-type": {
-                                   "enumeration": {
-                                        "enum": "ELAN"
-                                   }
-                              },
-                              "properties": []
-                         },
-                         {
-                              "name": "root-bandwidth",
-                              "type": "leaf",
-                              "description": "For ELAN this is the aggregate bandwidth.",
-                              "cardinality": "0..1",
-                              "data-type": "uint64",
-                              "properties": []
-                         },
-                         {
-                              "name": "leaf-bandwidth",
-                              "type": "leaf",
-                              "description": "For ELAN this is the bandwidth of branches.",
-                              "cardinality": "0..1",
-                              "data-type": "uint64",
-                              "properties": []
-                         },
-                         {
-                              "name": "vnfd-connection-point-ref",
-                              "type": "list",
-                              "description": "A list of references to connection points.",
-                              "cardinality": "0..N",
-                              "properties": [
-                                   {
-                                        "name": "member-vnf-index-ref",
-                                        "type": "leaf",
-                                        "description": "Reference to member-vnf within constituent-vnfds",
-                                        "cardinality": "0..1",
-                                        "data-type": {
-                                             "leafref": {
-                                                  "path": "../../../nsd:constituent-vnfd/nsd:member-vnf-index"
-                                             }
-                                        },
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "vnfd-id-ref",
-                                        "type": "leaf",
-                                        "description": "A reference to a vnfd. This is a leafref to path: ../../../nsd:constituent-vnfd + [nsd:id = current()/../nsd:id-ref] + /nsd:vnfd-id-ref NOTE: An issue with confd is preventing the use of xpath. Seems to be an issue with leafref to leafref, whose target is in a different module. Once that is resovled this will switched to use leafref",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "vnfd-connection-point-ref",
-                                        "type": "leaf",
-                                        "description": "A reference to a connection point name in a vnfd. This is a leafref to path: /vnfd:vnfd-catalog/vnfd:vnfd + [vnfd:id = current()/../nsd:vnfd-id-ref] + /vnfd:connection-point/vnfd:name NOTE: An issue with confd is preventing the use of xpath. Seems to be an issue with leafref to leafref, whose target is in a different module. Once that is resovled this will switched to use leafref",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   }
-                              ],
-                              "key": [
-                                   "member-vnf-index-ref"
-                              ]
-                         },
-                         {
-                              "name": "provider-network",
-                              "type": "container",
-                              "description": "Container for the provider network.",
-                              "cardinality": "0..1",
-                              "properties": [
-                                   {
-                                        "name": "physical-network",
-                                        "type": "leaf",
-                                        "description": "Name of the phsyical network on which the provider network is built.",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "overlay-type",
-                                        "type": "leaf",
-                                        "description": "Type of the overlay network.",
-                                        "cardinality": "0..1",
-                                        "data-type": {
-                                             "enumeration": {
-                                                  "enum": {
-                                                       "LOCAL": {
-                                                            "value": 0
-                                                       },
-                                                       "FLAT": {
-                                                            "value": 1
-                                                       },
-                                                       "VLAN": {
-                                                            "value": 2
-                                                       },
-                                                       "VXLAN": {
-                                                            "value": 3
-                                                       },
-                                                       "GRE": {
-                                                            "value": 4
-                                                       }
-                                                  }
-                                             }
-                                        },
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "segmentation_id",
-                                        "type": "leaf",
-                                        "description": "Segmentation ID",
-                                        "cardinality": "0..1",
-                                        "data-type": "uint32",
-                                        "properties": []
-                                   }
-                              ]
-                         }
-                    ],
-                    "key": [
-                         "id"
-                    ]
-               },
-               {
-                    "name": "constituent-vnfd",
-                    "type": "list",
-                    "description": "List of VNFDs that are part of this network service.",
-                    "cardinality": "0..N",
-                    "properties": [
-                         {
-                              "name": "member-vnf-index",
-                              "type": "leaf",
-                              "description": "Identifier/index for the VNFD. This separate id is required to ensure that multiple VNFs can be part of single NS",
-                              "cardinality": "0..1",
-                              "data-type": "uint64",
-                              "properties": []
-                         },
-                         {
-                              "name": "vnfd-id-ref",
-                              "type": "leaf",
-                              "description": "Identifier for the VNFD.",
-                              "cardinality": "0..1",
-                              "data-type": {
-                                   "leafref": {
-                                        "path": "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id"
-                                   }
-                              },
-                              "properties": []
-                         },
-                         {
-                              "name": "start-by-default",
-                              "type": "leaf",
-                              "description": "VNFD is started as part of the NS instantiation",
-                              "cardinality": "0..1",
-                              "data-type": "boolean",
-                              "properties": []
-                         }
-                    ],
-                    "key": [
-                         "member-vnf-index"
-                    ]
-               },
-               {
-                    "name": "scaling-group-descriptor",
-                    "type": "list",
-                    "description": "scaling group descriptor within this network service. The scaling group defines a group of VNFs, and the ratio of VNFs in the network service that is used as target for scaling action",
-                    "cardinality": "0..N",
-                    "properties": [
-                         {
-                              "name": "name",
-                              "type": "leaf",
-                              "description": "Name of this scaling group.",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "min-instance-count",
-                              "type": "leaf",
-                              "description": "Minimum instances of the scaling group which are allowed. These instances are created by default when the network service is instantiated.",
-                              "cardinality": "0..1",
-                              "data-type": "uint32",
-                              "properties": []
-                         },
-                         {
-                              "name": "max-instance-count",
-                              "type": "leaf",
-                              "description": "Maximum instances of this scaling group that are allowed in a single network service. The network service scaling will fail, when the number of service group instances exceed the max-instance-count specified.",
-                              "cardinality": "0..1",
-                              "data-type": "uint32",
-                              "properties": []
-                         },
-                         {
-                              "name": "vnfd-member",
-                              "type": "list",
-                              "description": "List of VNFs in this scaling group",
-                              "cardinality": "0..N",
-                              "properties": [
-                                   {
-                                        "name": "member-vnf-index-ref",
-                                        "type": "leaf",
-                                        "description": "member VNF index of this member VNF",
-                                        "cardinality": "0..1",
-                                        "data-type": {
-                                             "leafref": {
-                                                  "path": "../../../constituent-vnfd/member-vnf-index"
-                                             }
-                                        },
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "count",
-                                        "type": "leaf",
-                                        "description": "count of this member VNF within this scaling group. The count allows to define the number of instances when a scaling action targets this scaling group",
-                                        "cardinality": "0..1",
-                                        "data-type": "uint32",
-                                        "properties": []
-                                   }
-                              ],
-                              "key": [
-                                   "member-vnf-index-ref"
-                              ]
-                         },
-                         {
-                              "name": "scaling-config-action",
-                              "type": "list",
-                              "description": "List of scaling config actions",
-                              "cardinality": "0..N",
-                              "properties": [
-                                   {
-                                        "name": "trigger",
-                                        "type": "leaf",
-                                        "description": "scaling trigger",
-                                        "cardinality": "0..1",
-                                        "data-type": "scaling-trigger",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "ns-config-primitive-name-ref",
-                                        "type": "leaf",
-                                        "description": "Reference to the NS config name primitive",
-                                        "cardinality": "0..1",
-                                        "data-type": {
-                                             "leafref": {
-                                                  "path": "../../../config-primitive/name"
-                                             }
-                                        },
-                                        "properties": []
-                                   }
-                              ],
-                              "key": [
-                                   "trigger"
-                              ]
-                         }
-                    ],
-                    "key": [
-                         "name"
-                    ]
-               },
-               {
-                    "name": "placement-groups",
-                    "type": "list",
-                    "description": "List of placement groups at NS level",
-                    "cardinality": "0..N",
-                    "properties": [
-                         {
-                              "name": "constituent-vnfd",
-                              "type": "list",
-                              "description": "List of VNFDs that are part of thisplacement group",
-                              "cardinality": "0..N",
-                              "properties": [
-                                   {
-                                        "name": "member-vnf-index-ref",
-                                        "type": "leaf",
-                                        "description": "member VNF index of this member VNF",
-                                        "cardinality": "0..1",
-                                        "data-type": {
-                                             "leafref": {
-                                                  "path": "../../../constituent-vnfd/member-vnf-index"
-                                             }
-                                        },
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "vnfd-id-ref",
-                                        "type": "leaf",
-                                        "description": "Identifier for the VNFD.",
-                                        "cardinality": "0..1",
-                                        "data-type": {
-                                             "leafref": {
-                                                  "path": "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id"
-                                             }
-                                        },
-                                        "properties": []
-                                   }
-                              ],
-                              "key": [
-                                   "member-vnf-index-ref"
-                              ]
-                         },
-                         {
-                              "name": "name",
-                              "type": "leaf",
-                              "description": "Place group construct to define the compute resource placement strategy in cloud environment",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "requirement",
-                              "type": "leaf",
-                              "description": "This is free text space used to describe the intent/rationale behind this placement group. This is for human consumption only",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "strategy",
-                              "type": "leaf",
-                              "description": "Strategy associated with this placement group Following values are possible - COLOCATION: Colocation strategy imply intent to share the physical infrastructure (hypervisor/network) among all members of this group. - ISOLATION: Isolation strategy imply intent to not share the physical infrastructure (hypervisor/network) among the members of this group. ",
-                              "cardinality": "0..1",
-                              "data-type": {
-                                   "enumeration": {
-                                        "enum": {
-                                             "COLOCATION": {
-                                                  "value": 0
-                                             },
-                                             "ISOLATION": {
-                                                  "value": 1
-                                             }
-                                        }
-                                   }
-                              },
-                              "properties": []
-                         }
-                    ],
-                    "key": [
-                         "name"
-                    ]
-               },
-               {
-                    "name": "vnf-dependency",
-                    "type": "list",
-                    "description": "List of VNF dependencies.",
-                    "cardinality": "0..N",
-                    "properties": [
-                         {
-                              "name": "vnf-source-ref",
-                              "type": "leaf",
-                              "cardinality": "0..1",
-                              "data-type": {
-                                   "leafref": {
-                                        "path": "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id"
-                                   }
-                              },
-                              "properties": []
-                         },
-                         {
-                              "name": "vnf-depends-on-ref",
-                              "type": "leaf",
-                              "description": "Reference to VNF that sorce VNF depends.",
-                              "cardinality": "0..1",
-                              "data-type": {
-                                   "leafref": {
-                                        "path": "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id"
-                                   }
-                              },
-                              "properties": []
-                         }
-                    ],
-                    "key": [
-                         "vnf-source-ref"
-                    ]
-               },
-               {
-                    "name": "vnffgd",
-                    "type": "list",
-                    "description": "List of VNF Forwarding Graph Descriptors (VNFFGD).",
-                    "cardinality": "0..N",
-                    "properties": [
-                         {
-                              "name": "id",
-                              "type": "leaf",
-                              "description": "Identifier for the VNFFGD.",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "name",
-                              "type": "leaf",
-                              "description": "VNFFGD name.",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "short-name",
-                              "type": "leaf",
-                              "description": "Short name for VNFFGD for UI",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "vendor",
-                              "type": "leaf",
-                              "description": "Provider of the VNFFGD.",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "description",
-                              "type": "leaf",
-                              "description": "Description of the VNFFGD.",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "version",
-                              "type": "leaf",
-                              "description": "Version of the VNFFGD",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "rsp",
-                              "type": "list",
-                              "description": "List of Rendered Service Paths (RSP).",
-                              "cardinality": "0..N",
-                              "properties": [
-                                   {
-                                        "name": "id",
-                                        "type": "leaf",
-                                        "description": "Identifier for the RSP.",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "name",
-                                        "type": "leaf",
-                                        "description": "RSP name.",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "vnfd-connection-point-ref",
-                                        "type": "list",
-                                        "description": "A list of references to connection points.",
-                                        "cardinality": "0..N",
-                                        "properties": [
-                                             {
-                                                  "name": "member-vnf-index-ref",
-                                                  "type": "leaf",
-                                                  "description": "Reference to member-vnf within constituent-vnfds",
-                                                  "cardinality": "0..1",
-                                                  "data-type": {
-                                                       "leafref": {
-                                                            "path": "../../../../nsd:constituent-vnfd/nsd:member-vnf-index"
-                                                       }
-                                                  },
-                                                  "properties": []
-                                             },
-                                             {
-                                                  "name": "order",
-                                                  "type": "leaf",
-                                                  "description": "A number that denotes the order of a VNF in a chain",
-                                                  "cardinality": "0..1",
-                                                  "data-type": "uint8",
-                                                  "properties": []
-                                             },
-                                             {
-                                                  "name": "vnfd-id-ref",
-                                                  "type": "leaf",
-                                                  "description": "A reference to a vnfd. This is a leafref to path: ../../../../nsd:constituent-vnfd + [nsd:id = current()/../nsd:id-ref] + /nsd:vnfd-id-ref NOTE: An issue with confd is preventing the use of xpath. Seems to be an issue with leafref to leafref, whose target is in a different module. Once that is resovled this will switched to use leafref",
-                                                  "cardinality": "0..1",
-                                                  "data-type": "string",
-                                                  "properties": []
-                                             },
-                                             {
-                                                  "name": "vnfd-connection-point-ref",
-                                                  "type": "leaf",
-                                                  "description": "A reference to a connection point name in a vnfd. This is a leafref to path: /vnfd:vnfd-catalog/vnfd:vnfd + [vnfd:id = current()/../nsd:vnfd-id-ref] + /vnfd:connection-point/vnfd:name NOTE: An issue with confd is preventing the use of xpath. Seems to be an issue with leafref to leafref, whose target is in a different module. Once that is resovled this will switched to use leafref",
-                                                  "cardinality": "0..1",
-                                                  "data-type": "string",
-                                                  "properties": []
-                                             }
-                                        ],
-                                        "key": [
-                                             "member-vnf-index-ref"
-                                        ]
-                                   }
-                              ],
-                              "key": [
-                                   "id"
-                              ]
-                         },
-                         {
-                              "name": "classifier",
-                              "type": "list",
-                              "description": "List of classifier rules.",
-                              "cardinality": "0..N",
-                              "properties": [
-                                   {
-                                        "name": "id",
-                                        "type": "leaf",
-                                        "description": "Identifier for the classifier rule.",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "name",
-                                        "type": "leaf",
-                                        "description": "Name of the classifier.",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "rsp-id-ref",
-                                        "type": "leaf",
-                                        "description": "A reference to the RSP.",
-                                        "cardinality": "0..1",
-                                        "data-type": {
-                                             "leafref": {
-                                                  "path": "../../nsd:rsp/nsd:id"
-                                             }
-                                        },
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "member-vnf-index-ref",
-                                        "type": "leaf",
-                                        "description": "Reference to member-vnf within constituent-vnfds",
-                                        "cardinality": "0..1",
-                                        "data-type": {
-                                             "leafref": {
-                                                  "path": "../../../nsd:constituent-vnfd/nsd:member-vnf-index"
-                                             }
-                                        },
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "vnfd-id-ref",
-                                        "type": "leaf",
-                                        "description": "A reference to a vnfd. This is a leafref to path: ../../../nsd:constituent-vnfd + [nsd:id = current()/../nsd:id-ref] + /nsd:vnfd-id-ref NOTE: An issue with confd is preventing the use of xpath. Seems to be an issue with leafref to leafref, whose target is in a different module. Once that is resovled this will switched to use leafref",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "vnfd-connection-point-ref",
-                                        "type": "leaf",
-                                        "description": "A reference to a connection point name in a vnfd. This is a leafref to path: /vnfd:vnfd-catalog/vnfd:vnfd + [vnfd:id = current()/../nsd:vnfd-id-ref] + /vnfd:connection-point/vnfd:name NOTE: An issue with confd is preventing the use of xpath. Seems to be an issue with leafref to leafref, whose target is in a different module. Once that is resovled this will switched to use leafref",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "match-attributes",
-                                        "type": "list",
-                                        "description": "List of match attributes.",
-                                        "cardinality": "0..N",
-                                        "properties": [
-                                             {
-                                                  "name": "id",
-                                                  "type": "leaf",
-                                                  "description": "Identifier for the classifier match attribute rule.",
-                                                  "cardinality": "0..1",
-                                                  "data-type": "string",
-                                                  "properties": []
-                                             },
-                                             {
-                                                  "name": "ip-proto",
-                                                  "type": "leaf",
-                                                  "description": "IP Protocol.",
-                                                  "cardinality": "0..1",
-                                                  "data-type": "uint8",
-                                                  "properties": []
-                                             },
-                                             {
-                                                  "name": "source-ip-address",
-                                                  "type": "leaf",
-                                                  "description": "The ip-address type represents an IP address and is IP version neutral. The format of the textual representation implies the IP version. This type supports scoped addresses by allowing zone identifiers in the address format.",
-                                                  "cardinality": "0..1",
-                                                  "data-type": {
-                                                       "union": {
-                                                            "type": {
-                                                                 "inet:ipv4-address": null,
-                                                                 "inet:ipv6-address": null
-                                                            }
-                                                       }
-                                                  },
-                                                  "properties": []
-                                             },
-                                             {
-                                                  "name": "destination-ip-address",
-                                                  "type": "leaf",
-                                                  "description": "The ip-address type represents an IP address and is IP version neutral. The format of the textual representation implies the IP version. This type supports scoped addresses by allowing zone identifiers in the address format.",
-                                                  "cardinality": "0..1",
-                                                  "data-type": {
-                                                       "union": {
-                                                            "type": {
-                                                                 "inet:ipv4-address": null,
-                                                                 "inet:ipv6-address": null
-                                                            }
-                                                       }
-                                                  },
-                                                  "properties": []
-                                             },
-                                             {
-                                                  "name": "source-port",
-                                                  "type": "leaf",
-                                                  "description": "The port-number type represents a 16-bit port number of an Internet transport-layer protocol such as UDP, TCP, DCCP, or SCTP. Port numbers are assigned by IANA. A current list of all assignments is available from <http://www.iana.org/>. Note that the port number value zero is reserved by IANA. In situations where the value zero does not make sense, it can be excluded by subtyping the port-number type. In the value set and its semantics, this type is equivalent to the InetPortNumber textual convention of the SMIv2.",
-                                                  "cardinality": "0..1",
-                                                  "data-type": {
-                                                       "uint16": {
-                                                            "range": "0..65535"
-                                                       }
-                                                  },
-                                                  "properties": []
-                                             },
-                                             {
-                                                  "name": "destination-port",
-                                                  "type": "leaf",
-                                                  "description": "The port-number type represents a 16-bit port number of an Internet transport-layer protocol such as UDP, TCP, DCCP, or SCTP. Port numbers are assigned by IANA. A current list of all assignments is available from <http://www.iana.org/>. Note that the port number value zero is reserved by IANA. In situations where the value zero does not make sense, it can be excluded by subtyping the port-number type. In the value set and its semantics, this type is equivalent to the InetPortNumber textual convention of the SMIv2.",
-                                                  "cardinality": "0..1",
-                                                  "data-type": {
-                                                       "uint16": {
-                                                            "range": "0..65535"
-                                                       }
-                                                  },
-                                                  "properties": []
-                                             }
-                                        ],
-                                        "key": [
-                                             "id"
-                                        ]
-                                   }
-                              ],
-                              "key": [
-                                   "id"
-                              ]
-                         }
-                    ],
-                    "key": [
-                         "id"
-                    ]
-               },
-               {
-                    "name": "parameter-pool",
-                    "type": "list",
-                    "description": "Pool of parameter values which must be pulled from during configuration",
-                    "cardinality": "0..N",
-                    "properties": [
-                         {
-                              "name": "name",
-                              "type": "leaf",
-                              "description": "Name of the configuration value pool",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "range",
-                              "type": "container",
-                              "description": "Create a range of values to populate the pool with",
-                              "cardinality": "0..1",
-                              "properties": [
-                                   {
-                                        "name": "start-value",
-                                        "type": "leaf",
-                                        "description": "Generated pool values start at this value",
-                                        "cardinality": "1",
-                                        "data-type": "uint32",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "end-value",
-                                        "type": "leaf",
-                                        "description": "Generated pool values stop at this value",
-                                        "cardinality": "1",
-                                        "data-type": "uint32",
-                                        "properties": []
-                                   }
-                              ]
-                         }
-                    ],
-                    "key": [
-                         "name"
-                    ]
-               },
-               {
-                    "name": "http-endpoint",
-                    "type": "list",
-                    "description": "List of http endpoints to be used by monitoring params",
-                    "cardinality": "0..N",
-                    "properties": [
-                         {
-                              "name": "path",
-                              "type": "leaf",
-                              "description": "The HTTP path on the management server",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "https",
-                              "type": "leaf",
-                              "description": "Pick HTTPS instead of HTTP , Default is false",
-                              "cardinality": "0..1",
-                              "data-type": "boolean",
-                              "properties": []
-                         },
-                         {
-                              "name": "port",
-                              "type": "leaf",
-                              "description": "The port-number type represents a 16-bit port number of an Internet transport-layer protocol such as UDP, TCP, DCCP, or SCTP. Port numbers are assigned by IANA. A current list of all assignments is available from <http://www.iana.org/>. Note that the port number value zero is reserved by IANA. In situations where the value zero does not make sense, it can be excluded by subtyping the port-number type. In the value set and its semantics, this type is equivalent to the InetPortNumber textual convention of the SMIv2.",
-                              "cardinality": "0..1",
-                              "data-type": {
-                                   "uint16": {
-                                        "range": "0..65535"
-                                   }
-                              },
-                              "properties": []
-                         },
-                         {
-                              "name": "username",
-                              "type": "leaf",
-                              "description": "The HTTP basic auth username",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "password",
-                              "type": "leaf",
-                              "description": "The HTTP basic auth password",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "polling_interval_secs",
-                              "type": "leaf",
-                              "description": "The HTTP polling interval in seconds",
-                              "cardinality": "0..1",
-                              "data-type": "uint8",
-                              "properties": []
-                         },
-                         {
-                              "name": "method",
-                              "type": "leaf",
-                              "description": "Type of HTTP operation",
-                              "cardinality": "0..1",
-                              "data-type": {
-                                   "enumeration": {
-                                        "enum": {
-                                             "POST": {
-                                                  "value": 0
-                                             },
-                                             "PUT": {
-                                                  "value": 1
-                                             },
-                                             "GET": {
-                                                  "value": 2
-                                             },
-                                             "DELETE": {
-                                                  "value": 3
-                                             },
-                                             "OPTIONS": {
-                                                  "value": 4
-                                             },
-                                             "PATCH": {
-                                                  "value": 5
-                                             }
-                                        }
-                                   }
-                              },
-                              "properties": []
-                         },
-                         {
-                              "name": "headers",
-                              "type": "list",
-                              "description": "Custom HTTP headers to put on HTTP request",
-                              "cardinality": "0..N",
-                              "properties": [
-                                   {
-                                        "name": "key",
-                                        "type": "leaf",
-                                        "description": "HTTP header key",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "value",
-                                        "type": "leaf",
-                                        "description": "HTTP header value",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   }
-                              ],
-                              "key": [
-                                   "key"
-                              ]
-                         }
-                    ],
-                    "key": [
-                         "path"
-                    ]
-               },
-               {
-                    "name": "monitoring-param",
-                    "type": "list",
-                    "description": "List of monitoring parameters at the NS level",
-                    "cardinality": "0..N",
-                    "properties": [
-                         {
-                              "name": "id",
-                              "type": "leaf",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "name",
-                              "type": "leaf",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "http-endpoint-ref",
-                              "type": "leaf",
-                              "cardinality": "0..1",
-                              "data-type": {
-                                   "leafref": {
-                                        "path": "../../http-endpoint/path"
-                                   }
-                              },
-                              "properties": []
-                         },
-                         {
-                              "name": "json-query-method",
-                              "type": "leaf",
-                              "description": "The method to extract a value from a JSON response NAMEKEY - Use the name as the key for a non-nested value. JSONPATH - Use jsonpath-rw implemenation to extract a value. OBJECTPATH - Use objectpath implemenation to extract a value.",
-                              "cardinality": "0..1",
-                              "data-type": {
-                                   "enumeration": {
-                                        "enum": {
-                                             "NAMEKEY": {
-                                                  "value": 0
-                                             },
-                                             "JSONPATH": {
-                                                  "value": 1
-                                             },
-                                             "OBJECTPATH": {
-                                                  "value": 2
-                                             }
-                                        }
-                                   }
-                              },
-                              "properties": []
-                         },
-                         {
-                              "name": "description",
-                              "type": "leaf",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "group-tag",
-                              "type": "leaf",
-                              "description": "A simple tag to group monitoring parameters",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "value-type",
-                              "type": "leaf",
-                              "description": "The type of the parameter value",
-                              "cardinality": "0..1",
-                              "data-type": {
-                                   "enumeration": {
-                                        "enum": {
-                                             "INT": {
-                                                  "value": 0
-                                             },
-                                             "DECIMAL": {
-                                                  "value": 1
-                                             },
-                                             "STRING": {
-                                                  "value": 2
-                                             }
-                                        }
-                                   }
-                              },
-                              "properties": []
-                         },
-                         {
-                              "name": "value-integer",
-                              "type": "leaf",
-                              "description": "Current value for an integer parameter",
-                              "cardinality": "0..1",
-                              "data-type": "int64",
-                              "properties": []
-                         },
-                         {
-                              "name": "value-decimal",
-                              "type": "leaf",
-                              "description": "Current value for a decimal parameter",
-                              "cardinality": "0..1",
-                              "data-type": {
-                                   "decimal64": {
-                                        "fraction-digits": "4"
-                                   }
-                              },
-                              "properties": []
-                         },
-                         {
-                              "name": "value-string",
-                              "type": "leaf",
-                              "description": "Current value for a string parameter",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "widget-type",
-                              "type": "leaf",
-                              "description": "Type of the widget, typically used by the UI.",
-                              "cardinality": "0..1",
-                              "data-type": {
-                                   "enumeration": {
-                                        "enum": {
-                                             "HISTOGRAM": {
-                                                  "value": 0
-                                             },
-                                             "BAR": {
-                                                  "value": 1
-                                             },
-                                             "GAUGE": {
-                                                  "value": 2
-                                             },
-                                             "SLIDER": {
-                                                  "value": 3
-                                             },
-                                             "COUNTER": {
-                                                  "value": 4
-                                             },
-                                             "TEXTBOX": {
-                                                  "value": 5
-                                             }
-                                        }
-                                   }
-                              },
-                              "properties": []
-                         },
-                         {
-                              "name": "units",
-                              "type": "leaf",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "json-query-params",
-                              "type": "container",
-                              "cardinality": "0..1",
-                              "properties": [
-                                   {
-                                        "name": "json-path",
-                                        "type": "leaf",
-                                        "description": "The jsonpath to use to extract value from JSON structure",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "object-path",
-                                        "type": "leaf",
-                                        "description": "The objectpath to use to extract value from JSON structure",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   }
-                              ]
-                         },
-                         {
-                              "name": "numeric-constraints",
-                              "type": "container",
-                              "cardinality": "0..1",
-                              "properties": [
-                                   {
-                                        "name": "min-value",
-                                        "type": "leaf",
-                                        "description": "Minimum value for the parameter",
-                                        "cardinality": "0..1",
-                                        "data-type": "uint64",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "max-value",
-                                        "type": "leaf",
-                                        "description": "Maxium value for the parameter",
-                                        "cardinality": "0..1",
-                                        "data-type": "uint64",
-                                        "properties": []
-                                   }
-                              ]
-                         },
-                         {
-                              "name": "text-constraints",
-                              "type": "container",
-                              "cardinality": "0..1",
-                              "properties": [
-                                   {
-                                        "name": "min-length",
-                                        "type": "leaf",
-                                        "description": "Minimum string length for the parameter",
-                                        "cardinality": "0..1",
-                                        "data-type": "uint8",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "max-length",
-                                        "type": "leaf",
-                                        "description": "Maximum string length for the parameter",
-                                        "cardinality": "0..1",
-                                        "data-type": "uint8",
-                                        "properties": []
-                                   }
-                              ]
-                         }
-                    ],
-                    "key": [
-                         "id"
-                    ]
-               },
-               {
-                    "name": "input-parameter-xpath",
-                    "type": "list",
-                    "description": "List of xpaths to parameters inside the NSD the can be customized during the instantiation.",
-                    "cardinality": "0..N",
-                    "properties": [
-                         {
-                              "name": "xpath",
-                              "type": "leaf",
-                              "description": "An xpath that specifies the element in a descriptor.",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "label",
-                              "type": "leaf",
-                              "description": "A descriptive string",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "default-value",
-                              "type": "leaf",
-                              "description": " A default value for this input parameter",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         }
-                    ],
-                    "key": [
-                         "xpath"
-                    ]
-               },
-               {
-                    "name": "config-primitive",
-                    "type": "list",
-                    "description": "Network service level configuration primitives.",
-                    "cardinality": "0..N",
-                    "properties": [
-                         {
-                              "name": "name",
-                              "type": "leaf",
-                              "description": "Name of the configuration primitive.",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "user-defined-script",
-                              "type": "leaf",
-                              "description": "A user defined script.",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "parameter",
-                              "type": "list",
-                              "description": "List of parameters to the configuration primitive.",
-                              "cardinality": "0..N",
-                              "properties": [
-                                   {
-                                        "name": "name",
-                                        "type": "leaf",
-                                        "description": "Name of the parameter.",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "data-type",
-                                        "type": "leaf",
-                                        "description": "Data type associated with the name.",
-                                        "cardinality": "0..1",
-                                        "data-type": {
-                                             "enumeration": {
-                                                  "enum": {
-                                                       "STRING": {
-                                                            "value": 0
-                                                       },
-                                                       "INTEGER": {
-                                                            "value": 1
-                                                       },
-                                                       "BOOLEAN": {
-                                                            "value": 2
-                                                       }
-                                                  }
-                                             }
-                                        },
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "mandatory",
-                                        "type": "leaf",
-                                        "description": "Is this field mandatory",
-                                        "cardinality": "0..1",
-                                        "data-type": "boolean",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "default-value",
-                                        "type": "leaf",
-                                        "description": "The default value for this field",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "parameter-pool",
-                                        "type": "leaf",
-                                        "description": "NSD Parameter pool name to use for this paramter",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "read-only",
-                                        "type": "leaf",
-                                        "description": "The value should be greyed out by the UI. Only applies to parameters with default values.",
-                                        "cardinality": "0..1",
-                                        "data-type": "boolean",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "hidden",
-                                        "type": "leaf",
-                                        "description": "The value should be hidden by the UI. Only applies to parameters with default values.",
-                                        "cardinality": "0..1",
-                                        "data-type": "boolean",
-                                        "properties": []
-                                   }
-                              ],
-                              "key": [
-                                   "name"
-                              ]
-                         },
-                         {
-                              "name": "parameter-group",
-                              "type": "list",
-                              "description": "Grouping of parameters which are logically grouped in UI",
-                              "cardinality": "0..N",
-                              "properties": [
-                                   {
-                                        "name": "name",
-                                        "type": "leaf",
-                                        "description": "Name of the parameter group",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "mandatory",
-                                        "type": "leaf",
-                                        "description": "Is this parameter group mandatory",
-                                        "cardinality": "0..1",
-                                        "data-type": "boolean",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "parameter",
-                                        "type": "list",
-                                        "description": "List of parameters to the configuration primitive.",
-                                        "cardinality": "0..N",
-                                        "properties": [
-                                             {
-                                                  "name": "name",
-                                                  "type": "leaf",
-                                                  "description": "Name of the parameter.",
-                                                  "cardinality": "0..1",
-                                                  "data-type": "string",
-                                                  "properties": []
-                                             },
-                                             {
-                                                  "name": "data-type",
-                                                  "type": "leaf",
-                                                  "description": "Data type associated with the name.",
-                                                  "cardinality": "0..1",
-                                                  "data-type": {
-                                                       "enumeration": {
-                                                            "enum": {
-                                                                 "STRING": {
-                                                                      "value": 0
-                                                                 },
-                                                                 "INTEGER": {
-                                                                      "value": 1
-                                                                 },
-                                                                 "BOOLEAN": {
-                                                                      "value": 2
-                                                                 }
-                                                            }
-                                                       }
-                                                  },
-                                                  "properties": []
-                                             },
-                                             {
-                                                  "name": "mandatory",
-                                                  "type": "leaf",
-                                                  "description": "Is this field mandatory",
-                                                  "cardinality": "0..1",
-                                                  "data-type": "boolean",
-                                                  "properties": []
-                                             },
-                                             {
-                                                  "name": "default-value",
-                                                  "type": "leaf",
-                                                  "description": "The default value for this field",
-                                                  "cardinality": "0..1",
-                                                  "data-type": "string",
-                                                  "properties": []
-                                             },
-                                             {
-                                                  "name": "parameter-pool",
-                                                  "type": "leaf",
-                                                  "description": "NSD Parameter pool name to use for this paramter",
-                                                  "cardinality": "0..1",
-                                                  "data-type": "string",
-                                                  "properties": []
-                                             },
-                                             {
-                                                  "name": "read-only",
-                                                  "type": "leaf",
-                                                  "description": "The value should be greyed out by the UI. Only applies to parameters with default values.",
-                                                  "cardinality": "0..1",
-                                                  "data-type": "boolean",
-                                                  "properties": []
-                                             },
-                                             {
-                                                  "name": "hidden",
-                                                  "type": "leaf",
-                                                  "description": "The value should be hidden by the UI. Only applies to parameters with default values.",
-                                                  "cardinality": "0..1",
-                                                  "data-type": "boolean",
-                                                  "properties": []
-                                             }
-                                        ],
-                                        "key": [
-                                             "name"
-                                        ]
-                                   }
-                              ],
-                              "key": [
-                                   "name"
-                              ]
-                         },
-                         {
-                              "name": "vnf-primitive-group",
-                              "type": "list",
-                              "description": "List of configuration primitives grouped by VNF.",
-                              "cardinality": "0..N",
-                              "properties": [
-                                   {
-                                        "name": "member-vnf-index-ref",
-                                        "type": "leaf",
-                                        "description": "Reference to member-vnf within constituent-vnfds",
-                                        "cardinality": "0..1",
-                                        "data-type": "uint64",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "vnfd-id-ref",
-                                        "type": "leaf",
-                                        "description": "A reference to a vnfd. This is a leafref to path: ../../../../nsd:constituent-vnfd + [nsd:id = current()/../nsd:id-ref] + /nsd:vnfd-id-ref NOTE: An issue with confd is preventing the use of xpath. Seems to be an issue with leafref to leafref, whose target is in a different module. Once that is resovled this will switched to use leafref",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "vnfd-name",
-                                        "type": "leaf",
-                                        "description": "Name of the VNFD",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "primitive",
-                                        "type": "list",
-                                        "cardinality": "0..N",
-                                        "properties": [
-                                             {
-                                                  "name": "index",
-                                                  "type": "leaf",
-                                                  "description": "Index of this primitive",
-                                                  "cardinality": "0..1",
-                                                  "data-type": "uint32",
-                                                  "properties": []
-                                             },
-                                             {
-                                                  "name": "name",
-                                                  "type": "leaf",
-                                                  "description": "Name of the primitive in the VNF primitive ",
-                                                  "cardinality": "0..1",
-                                                  "data-type": "string",
-                                                  "properties": []
-                                             }
-                                        ],
-                                        "key": [
-                                             "index"
-                                        ]
-                                   }
-                              ],
-                              "key": [
-                                   "member-vnf-index-ref"
-                              ]
-                         }
-                    ],
-                    "key": [
-                         "name"
-                    ]
-               }
-          ],
-          "key": [
-               "id"
-          ]
-     },
-     "vnfd": {
-          "name": "vnfd",
-          "type": "list",
-          "cardinality": "0..N",
-          "properties": [
-               {
-                    "name": "id",
-                    "type": "leaf",
-                    "description": "Identifier for the VNFD.",
-                    "cardinality": "0..1",
-                    "data-type": "string",
-                    "properties": []
-               },
-               {
-                    "name": "name",
-                    "type": "leaf",
-                    "description": "VNFD name.",
-                    "cardinality": "1",
-                    "data-type": "string",
-                    "properties": []
-               },
-               {
-                    "name": "short-name",
-                    "type": "leaf",
-                    "description": "VNFD short name.",
-                    "cardinality": "0..1",
-                    "data-type": "string",
-                    "properties": []
-               },
-               {
-                    "name": "vendor",
-                    "type": "leaf",
-                    "description": "Vendor of the VNFD.",
-                    "cardinality": "0..1",
-                    "data-type": "string",
-                    "properties": []
-               },
-               {
-                    "name": "logo",
-                    "type": "leaf",
-                    "description": "Vendor logo for the Virtual Network Function",
-                    "cardinality": "0..1",
-                    "data-type": "string",
-                    "properties": []
-               },
-               {
-                    "name": "description",
-                    "type": "leaf",
-                    "description": "Description of the VNFD.",
-                    "cardinality": "0..1",
-                    "data-type": "string",
-                    "properties": []
-               },
-               {
-                    "name": "version",
-                    "type": "leaf",
-                    "description": "Version of the VNFD",
-                    "cardinality": "0..1",
-                    "data-type": "string",
-                    "properties": []
-               },
-               {
-                    "name": "service-function-chain",
-                    "type": "leaf",
-                    "description": "Type of node in Service Function Chaining Architecture",
-                    "cardinality": "0..1",
-                    "data-type": {
-                         "enumeration": {
-                              "enum": {
-                                   "UNAWARE": null,
-                                   "CLASSIFIER": null,
-                                   "SF": null,
-                                   "SFF": null
-                              }
-                         }
-                    },
-                    "properties": []
-               },
-               {
-                    "name": "service-function-type",
-                    "type": "leaf",
-                    "description": "Type of Service Function. NOTE: This needs to map with Service Function Type in ODL to support VNFFG. Service Function Type is manadatory param in ODL SFC. This is temporarily set to string for ease of use",
-                    "cardinality": "0..1",
-                    "data-type": "string",
-                    "properties": []
-               },
-               {
-                    "name": "meta",
-                    "type": "leaf",
-                    "description": "Any meta-data needed by the UI",
-                    "cardinality": "0..1",
-                    "data-type": "string",
-                    "properties": []
-               },
-               {
-                    "name": "mgmt-interface",
-                    "type": "container",
-                    "description": "Interface over which the VNF is managed.",
-                    "cardinality": "0..1",
-                    "properties": [
-                         {
-                              "name": "endpoint-type",
-                              "type": "choice",
-                              "description": "Indicates the type of management endpoint.",
-                              "cardinality": "0..1",
-                              "properties": [
-                                   {
-                                        "name": "ip",
-                                        "type": "case",
-                                        "description": "Specifies the static IP address for managing the VNF.",
-                                        "cardinality": "0..1",
-                                        "properties": [
-                                             {
-                                                  "name": "ip-address",
-                                                  "type": "leaf",
-                                                  "description": "The ip-address type represents an IP address and is IP version neutral. The format of the textual representation implies the IP version. This type supports scoped addresses by allowing zone identifiers in the address format.",
-                                                  "cardinality": "0..1",
-                                                  "data-type": {
-                                                       "union": {
-                                                            "type": {
-                                                                 "inet:ipv4-address": null,
-                                                                 "inet:ipv6-address": null
-                                                            }
-                                                       }
-                                                  },
-                                                  "properties": []
-                                             }
-                                        ]
-                                   },
-                                   {
-                                        "name": "vdu-id",
-                                        "type": "case",
-                                        "description": "Use the default management interface on this VDU.",
-                                        "cardinality": "0..1",
-                                        "properties": [
-                                             {
-                                                  "name": "vdu-id",
-                                                  "type": "leaf",
-                                                  "cardinality": "0..1",
-                                                  "data-type": {
-                                                       "leafref": {
-                                                            "path": "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:vdu/vnfd:id"
-                                                       }
-                                                  },
-                                                  "properties": []
-                                             }
-                                        ]
-                                   },
-                                   {
-                                        "name": "cp",
-                                        "type": "case",
-                                        "description": "Use the ip address associated with this connection point.",
-                                        "cardinality": "0..1",
-                                        "properties": [
-                                             {
-                                                  "name": "cp",
-                                                  "type": "leaf",
-                                                  "cardinality": "0..1",
-                                                  "data-type": {
-                                                       "leafref": {
-                                                            "path": "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:connection-point/vnfd:name"
-                                                       }
-                                                  },
-                                                  "properties": []
-                                             }
-                                        ]
-                                   }
-                              ]
-                         },
-                         {
-                              "name": "port",
-                              "type": "leaf",
-                              "description": "The port-number type represents a 16-bit port number of an Internet transport-layer protocol such as UDP, TCP, DCCP, or SCTP. Port numbers are assigned by IANA. A current list of all assignments is available from <http://www.iana.org/>. Note that the port number value zero is reserved by IANA. In situations where the value zero does not make sense, it can be excluded by subtyping the port-number type. In the value set and its semantics, this type is equivalent to the InetPortNumber textual convention of the SMIv2.",
-                              "cardinality": "0..1",
-                              "data-type": {
-                                   "uint16": {
-                                        "range": "0..65535"
-                                   }
-                              },
-                              "properties": []
-                         },
-                         {
-                              "name": "dashboard-params",
-                              "type": "container",
-                              "description": "Parameters for the VNF dashboard",
-                              "cardinality": "0..1",
-                              "properties": [
-                                   {
-                                        "name": "path",
-                                        "type": "leaf",
-                                        "description": "The HTTP path for the dashboard",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "https",
-                                        "type": "leaf",
-                                        "description": "Pick HTTPS instead of HTTP , Default is false",
-                                        "cardinality": "0..1",
-                                        "data-type": "boolean",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "port",
-                                        "type": "leaf",
-                                        "description": "The port-number type represents a 16-bit port number of an Internet transport-layer protocol such as UDP, TCP, DCCP, or SCTP. Port numbers are assigned by IANA. A current list of all assignments is available from <http://www.iana.org/>. Note that the port number value zero is reserved by IANA. In situations where the value zero does not make sense, it can be excluded by subtyping the port-number type. In the value set and its semantics, this type is equivalent to the InetPortNumber textual convention of the SMIv2.",
-                                        "cardinality": "0..1",
-                                        "data-type": {
-                                             "uint16": {
-                                                  "range": "0..65535"
-                                             }
-                                        },
-                                        "properties": []
-                                   }
-                              ]
-                         },
-                         {
-                              "name": "vnf-configuration",
-                              "type": "container",
-                              "description": "Information regarding the VNF configuration is captured here. ",
-                              "cardinality": "0..1",
-                              "properties": [
-                                   {
-                                        "name": "config-method",
-                                        "type": "choice",
-                                        "description": "Defines the configuration method for the VNF.",
-                                        "cardinality": "0..1",
-                                        "properties": [
-                                             {
-                                                  "name": "netconf",
-                                                  "type": "case",
-                                                  "description": "Use NETCONF for configuring the VNF.",
-                                                  "cardinality": "0..1",
-                                                  "properties": [
-                                                       {
-                                                            "name": "netconf",
-                                                            "type": "container",
-                                                            "cardinality": "0..1",
-                                                            "properties": [
-                                                                 {
-                                                                      "name": "target",
-                                                                      "type": "leaf",
-                                                                      "description": "Netconf configuration target",
-                                                                      "cardinality": "0..1",
-                                                                      "data-type": {
-                                                                           "enumeration": {
-                                                                                "enum": {
-                                                                                     "running": {
-                                                                                          "value": 0
-                                                                                     },
-                                                                                     "candidate": {
-                                                                                          "value": 1
-                                                                                     }
-                                                                                }
-                                                                           }
-                                                                      },
-                                                                      "properties": []
-                                                                 },
-                                                                 {
-                                                                      "name": "protocol",
-                                                                      "type": "leaf",
-                                                                      "description": "Protocol to use for netconf (e.g. ssh)",
-                                                                      "cardinality": "0..1",
-                                                                      "data-type": {
-                                                                           "enumeration": {
-                                                                                "enum": {
-                                                                                     "None": {
-                                                                                          "value": 0
-                                                                                     },
-                                                                                     "ssh": {
-                                                                                          "value": 1
-                                                                                     }
-                                                                                }
-                                                                           }
-                                                                      },
-                                                                      "properties": []
-                                                                 },
-                                                                 {
-                                                                      "name": "port",
-                                                                      "type": "leaf",
-                                                                      "description": "The port-number type represents a 16-bit port number of an Internet transport-layer protocol such as UDP, TCP, DCCP, or SCTP. Port numbers are assigned by IANA. A current list of all assignments is available from <http://www.iana.org/>. Note that the port number value zero is reserved by IANA. In situations where the value zero does not make sense, it can be excluded by subtyping the port-number type. In the value set and its semantics, this type is equivalent to the InetPortNumber textual convention of the SMIv2.",
-                                                                      "cardinality": "0..1",
-                                                                      "data-type": {
-                                                                           "uint16": {
-                                                                                "range": "0..65535"
-                                                                           }
-                                                                      },
-                                                                      "properties": []
-                                                                 }
-                                                            ]
-                                                       }
-                                                  ]
-                                             },
-                                             {
-                                                  "name": "rest",
-                                                  "type": "case",
-                                                  "description": "Use REST for configuring the VNF.",
-                                                  "cardinality": "0..1",
-                                                  "properties": [
-                                                       {
-                                                            "name": "rest",
-                                                            "type": "container",
-                                                            "cardinality": "0..1",
-                                                            "properties": [
-                                                                 {
-                                                                      "name": "port",
-                                                                      "type": "leaf",
-                                                                      "description": "The port-number type represents a 16-bit port number of an Internet transport-layer protocol such as UDP, TCP, DCCP, or SCTP. Port numbers are assigned by IANA. A current list of all assignments is available from <http://www.iana.org/>. Note that the port number value zero is reserved by IANA. In situations where the value zero does not make sense, it can be excluded by subtyping the port-number type. In the value set and its semantics, this type is equivalent to the InetPortNumber textual convention of the SMIv2.",
-                                                                      "cardinality": "0..1",
-                                                                      "data-type": {
-                                                                           "uint16": {
-                                                                                "range": "0..65535"
-                                                                           }
-                                                                      },
-                                                                      "properties": []
-                                                                 }
-                                                            ]
-                                                       }
-                                                  ]
-                                             },
-                                             {
-                                                  "name": "script",
-                                                  "type": "case",
-                                                  "description": "Use custom script for configuring the VNF. This script is executed in the context of Orchestrator.",
-                                                  "cardinality": "0..1",
-                                                  "properties": [
-                                                       {
-                                                            "name": "script",
-                                                            "type": "container",
-                                                            "cardinality": "0..1",
-                                                            "properties": [
-                                                                 {
-                                                                      "name": "script-type",
-                                                                      "type": "leaf",
-                                                                      "description": "Script type - currently supported : bash, expect",
-                                                                      "cardinality": "0..1",
-                                                                      "data-type": {
-                                                                           "enumeration": {
-                                                                                "enum": {
-                                                                                     "bash": {
-                                                                                          "value": 0
-                                                                                     },
-                                                                                     "expect": {
-                                                                                          "value": 1
-                                                                                     }
-                                                                                }
-                                                                           }
-                                                                      },
-                                                                      "properties": []
-                                                                 }
-                                                            ]
-                                                       }
-                                                  ]
-                                             },
-                                             {
-                                                  "name": "juju",
-                                                  "type": "case",
-                                                  "description": "Configure the VNF through Juju.",
-                                                  "cardinality": "0..1",
-                                                  "properties": [
-                                                       {
-                                                            "name": "juju",
-                                                            "type": "container",
-                                                            "cardinality": "0..1",
-                                                            "properties": [
-                                                                 {
-                                                                      "name": "charm",
-                                                                      "type": "leaf",
-                                                                      "description": "Juju charm to use with the VNF.",
-                                                                      "cardinality": "0..1",
-                                                                      "data-type": "string",
-                                                                      "properties": []
-                                                                 }
-                                                            ]
-                                                       }
-                                                  ]
-                                             }
-                                        ]
-                                   },
-                                   {
-                                        "name": "config-access",
-                                        "type": "container",
-                                        "cardinality": "0..1",
-                                        "properties": [
-                                             {
-                                                  "name": "mgmt-ip-address",
-                                                  "type": "leaf",
-                                                  "description": "The ip-address type represents an IP address and is IP version neutral. The format of the textual representation implies the IP version. This type supports scoped addresses by allowing zone identifiers in the address format.",
-                                                  "cardinality": "0..1",
-                                                  "data-type": {
-                                                       "union": {
-                                                            "type": {
-                                                                 "inet:ipv4-address": null,
-                                                                 "inet:ipv6-address": null
-                                                            }
-                                                       }
-                                                  },
-                                                  "properties": []
-                                             },
-                                             {
-                                                  "name": "username",
-                                                  "type": "leaf",
-                                                  "description": "username for configuration.",
-                                                  "cardinality": "0..1",
-                                                  "data-type": "string",
-                                                  "properties": []
-                                             },
-                                             {
-                                                  "name": "password",
-                                                  "type": "leaf",
-                                                  "description": "Password for configuration access authentication.",
-                                                  "cardinality": "0..1",
-                                                  "data-type": "string",
-                                                  "properties": []
-                                             }
-                                        ]
-                                   },
-                                   {
-                                        "name": "config-attributes",
-                                        "type": "container",
-                                        "description": "Miscelaneous input parameters to be considered while processing the NSD to apply configuration",
-                                        "cardinality": "0..1",
-                                        "properties": [
-                                             {
-                                                  "name": "config-priority",
-                                                  "type": "leaf",
-                                                  "description": "Configuration priority - order of confgiration to be applied to each VNF in this NS, low number gets precedence over high number",
-                                                  "cardinality": "0..1",
-                                                  "data-type": "uint64",
-                                                  "properties": []
-                                             },
-                                             {
-                                                  "name": "config-delay",
-                                                  "type": "leaf",
-                                                  "description": "Wait (seconds) before applying the configuration to VNF",
-                                                  "cardinality": "0..1",
-                                                  "data-type": "uint64",
-                                                  "properties": []
-                                             }
-                                        ]
-                                   },
-                                   {
-                                        "name": "config-primitive",
-                                        "type": "list",
-                                        "description": "List of configuration primitives supported by the configuration agent for this VNF.",
-                                        "cardinality": "0..N",
-                                        "properties": [
-                                             {
-                                                  "name": "name",
-                                                  "type": "leaf",
-                                                  "description": "Name of the configuration primitive.",
-                                                  "cardinality": "0..1",
-                                                  "data-type": "string",
-                                                  "properties": []
-                                             },
-                                             {
-                                                  "name": "parameter",
-                                                  "type": "list",
-                                                  "description": "List of parameters to the configuration primitive.",
-                                                  "cardinality": "0..N",
-                                                  "properties": [
-                                                       {
-                                                            "name": "name",
-                                                            "type": "leaf",
-                                                            "description": "Name of the parameter.",
-                                                            "cardinality": "0..1",
-                                                            "data-type": "string",
-                                                            "properties": []
-                                                       },
-                                                       {
-                                                            "name": "data-type",
-                                                            "type": "leaf",
-                                                            "description": "Data type associated with the name.",
-                                                            "cardinality": "0..1",
-                                                            "data-type": {
-                                                                 "enumeration": {
-                                                                      "enum": {
-                                                                           "STRING": {
-                                                                                "value": 0
-                                                                           },
-                                                                           "INTEGER": {
-                                                                                "value": 1
-                                                                           },
-                                                                           "BOOLEAN": {
-                                                                                "value": 2
-                                                                           }
-                                                                      }
-                                                                 }
-                                                            },
-                                                            "properties": []
-                                                       },
-                                                       {
-                                                            "name": "mandatory",
-                                                            "type": "leaf",
-                                                            "description": "Is this field mandatory",
-                                                            "cardinality": "0..1",
-                                                            "data-type": "boolean",
-                                                            "properties": []
-                                                       },
-                                                       {
-                                                            "name": "default-value",
-                                                            "type": "leaf",
-                                                            "description": "The default value for this field",
-                                                            "cardinality": "0..1",
-                                                            "data-type": "string",
-                                                            "properties": []
-                                                       },
-                                                       {
-                                                            "name": "parameter-pool",
-                                                            "type": "leaf",
-                                                            "description": "NSD Parameter pool name to use for this paramter",
-                                                            "cardinality": "0..1",
-                                                            "data-type": "string",
-                                                            "properties": []
-                                                       },
-                                                       {
-                                                            "name": "read-only",
-                                                            "type": "leaf",
-                                                            "description": "The value should be greyed out by the UI. Only applies to parameters with default values.",
-                                                            "cardinality": "0..1",
-                                                            "data-type": "boolean",
-                                                            "properties": []
-                                                       },
-                                                       {
-                                                            "name": "hidden",
-                                                            "type": "leaf",
-                                                            "description": "The value should be hidden by the UI. Only applies to parameters with default values.",
-                                                            "cardinality": "0..1",
-                                                            "data-type": "boolean",
-                                                            "properties": []
-                                                       }
-                                                  ],
-                                                  "key": [
-                                                       "name"
-                                                  ]
-                                             }
-                                        ],
-                                        "key": [
-                                             "name"
-                                        ]
-                                   },
-                                   {
-                                        "name": "initial-config-primitive",
-                                        "type": "list",
-                                        "description": "Initial set of configuration primitives.",
-                                        "cardinality": "0..N",
-                                        "properties": [
-                                             {
-                                                  "name": "seq",
-                                                  "type": "leaf",
-                                                  "description": "Sequence number for the configuration primitive.",
-                                                  "cardinality": "0..1",
-                                                  "data-type": "uint64",
-                                                  "properties": []
-                                             },
-                                             {
-                                                  "name": "name",
-                                                  "type": "leaf",
-                                                  "description": "Name of the configuration primitive.",
-                                                  "cardinality": "0..1",
-                                                  "data-type": "string",
-                                                  "properties": []
-                                             },
-                                             {
-                                                  "name": "parameter",
-                                                  "type": "list",
-                                                  "cardinality": "0..N",
-                                                  "properties": [
-                                                       {
-                                                            "name": "name",
-                                                            "type": "leaf",
-                                                            "cardinality": "0..1",
-                                                            "data-type": "string",
-                                                            "properties": []
-                                                       },
-                                                       {
-                                                            "name": "value",
-                                                            "type": "leaf",
-                                                            "cardinality": "0..1",
-                                                            "data-type": "string",
-                                                            "properties": []
-                                                       }
-                                                  ],
-                                                  "key": [
-                                                       "name"
-                                                  ]
-                                             }
-                                        ],
-                                        "key": [
-                                             "seq"
-                                        ]
-                                   },
-                                   {
-                                        "name": "config-template",
-                                        "type": "leaf",
-                                        "description": "Configuration template for each VNF",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   }
-                              ]
-                         }
-                    ]
-               },
-               {
-                    "name": "internal-vld",
-                    "type": "list",
-                    "description": "List of Internal Virtual Link Descriptors (VLD). The internal VLD describes the basic topology of the connectivity (e.g. E-LAN, E-Line, E-Tree) between internal VNF components of the system.",
-                    "cardinality": "0..N",
-                    "properties": [
-                         {
-                              "name": "id",
-                              "type": "leaf",
-                              "description": "Identifier for the VLD",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "name",
-                              "type": "leaf",
-                              "description": "Name of the internal VLD",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "short-name",
-                              "type": "leaf",
-                              "description": "Short name of the internal VLD",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "description",
-                              "type": "leaf",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "type",
-                              "type": "leaf",
-                              "description": "Type of virtual link ELAN: A multipoint service connecting a set of VNFs // ELINE: For a simple point to point connection // between a VNF and the existing network. // ETREE: A multipoint service connecting one or // more roots and a set of leaves, but // preventing inter-leaf communication.",
-                              "cardinality": "0..1",
-                              "data-type": {
-                                   "enumeration": {
-                                        "enum": "ELAN"
-                                   }
-                              },
-                              "properties": []
-                         },
-                         {
-                              "name": "root-bandwidth",
-                              "type": "leaf",
-                              "description": "For ELAN this is the aggregate bandwidth.",
-                              "cardinality": "0..1",
-                              "data-type": "uint64",
-                              "properties": []
-                         },
-                         {
-                              "name": "leaf-bandwidth",
-                              "type": "leaf",
-                              "description": "For ELAN this is the bandwidth of branches.",
-                              "cardinality": "0..1",
-                              "data-type": "uint64",
-                              "properties": []
-                         },
-                         {
-                              "name": "internal-connection-point-ref",
-                              "type": "leaf-list",
-                              "cardinality": "0..N",
-                              "data-type": {
-                                   "leafref": {
-                                        "path": "../../vdu/internal-connection-point/id"
-                                   }
-                              },
-                              "properties": []
-                         },
-                         {
-                              "name": "provider-network",
-                              "type": "container",
-                              "description": "Container for the provider network.",
-                              "cardinality": "0..1",
-                              "properties": [
-                                   {
-                                        "name": "physical-network",
-                                        "type": "leaf",
-                                        "description": "Name of the phsyical network on which the provider network is built.",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "overlay-type",
-                                        "type": "leaf",
-                                        "description": "Type of the overlay network.",
-                                        "cardinality": "0..1",
-                                        "data-type": {
-                                             "enumeration": {
-                                                  "enum": {
-                                                       "LOCAL": {
-                                                            "value": 0
-                                                       },
-                                                       "FLAT": {
-                                                            "value": 1
-                                                       },
-                                                       "VLAN": {
-                                                            "value": 2
-                                                       },
-                                                       "VXLAN": {
-                                                            "value": 3
-                                                       },
-                                                       "GRE": {
-                                                            "value": 4
-                                                       }
-                                                  }
-                                             }
-                                        },
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "segmentation_id",
-                                        "type": "leaf",
-                                        "description": "Segmentation ID",
-                                        "cardinality": "0..1",
-                                        "data-type": "uint32",
-                                        "properties": []
-                                   }
-                              ]
-                         }
-                    ],
-                    "key": [
-                         "id"
-                    ]
-               },
-               {
-                    "name": "connection-point",
-                    "type": "list",
-                    "description": "List for external connection points. Each VNF has one or more external connection points. As the name implies that external connection points are used for connecting the VNF to other VNFs or to external networks. Each VNF exposes these connection points to the orchestrator. The orchestrator can construct network services by connecting the connection points between different VNFs. The NFVO will use VLDs and VNFFGs at the network service level to construct network services.",
-                    "cardinality": "0..N",
-                    "properties": [
-                         {
-                              "name": "name",
-                              "type": "leaf",
-                              "description": "Name of the connection point",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "id",
-                              "type": "leaf",
-                              "description": "Identifier for the internal connection points",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "short-name",
-                              "type": "leaf",
-                              "description": "Short name of the connection point",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "type",
-                              "type": "leaf",
-                              "description": "Type of connection point VPORT: Virtual Port // VNIC_ADDR: Virtual NIC Address // PNIC_ADDR: Physical NIC Address // PPORT: Phsical Port.",
-                              "cardinality": "0..1",
-                              "data-type": {
-                                   "enumeration": {
-                                        "enum": "VPORT"
-                                   }
-                              },
-                              "properties": []
-                         }
-                    ],
-                    "key": [
-                         "name"
-                    ]
-               },
-               {
-                    "name": "vdu",
-                    "type": "list",
-                    "description": "List of Virtual Deployment Units",
-                    "cardinality": "0..N",
-                    "properties": [
-                         {
-                              "name": "id",
-                              "type": "leaf",
-                              "description": "Unique id for the VDU",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "name",
-                              "type": "leaf",
-                              "description": "Unique name for the VDU",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "description",
-                              "type": "leaf",
-                              "description": "Description of the VDU.",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "count",
-                              "type": "leaf",
-                              "description": "Number of instances of VDU",
-                              "cardinality": "0..1",
-                              "data-type": "uint64",
-                              "properties": []
-                         },
-                         {
-                              "name": "mgmt-vpci",
-                              "type": "leaf",
-                              "description": "Specifies the virtual PCI address. Expressed in the following format dddd:dd:dd.d. For example 0000:00:12.0. This information can be used to pass as metadata during the VM creation.",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "image",
-                              "type": "leaf",
-                              "description": "Image name for the software image. If the image name is found within the VNF packaage it will be uploaded to all cloud accounts during onboarding process. Otherwise, the image must be added to the cloud account with the same name as entered here. ",
-                              "cardinality": "1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "image-checksum",
-                              "type": "leaf",
-                              "description": "Image md5sum for the software image. The md5sum, if provided, along with the image name uniquely identifies an image uploaded to the CAL. ",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "cloud-init",
-                              "type": "leaf",
-                              "description": "Content of cloud-init script",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "internal-connection-point",
-                              "type": "list",
-                              "description": "List for internal connection points. Each VNFC has zero or more internal connection points. Internal connection points are used for connecting the VNF components internal to the VNF. If a VNF has only one VNFC, it may not have any internal connection points.",
-                              "cardinality": "0..N",
-                              "properties": [
-                                   {
-                                        "name": "internal-vld-ref",
-                                        "type": "leaf",
-                                        "cardinality": "0..1",
-                                        "data-type": {
-                                             "leafref": {
-                                                  "path": "../../../internal-vld/id"
-                                             }
-                                        },
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "name",
-                                        "type": "leaf",
-                                        "description": "Name of the connection point",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "id",
-                                        "type": "leaf",
-                                        "description": "Identifier for the internal connection points",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "short-name",
-                                        "type": "leaf",
-                                        "description": "Short name of the connection point",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "type",
-                                        "type": "leaf",
-                                        "description": "Type of connection point VPORT: Virtual Port // VNIC_ADDR: Virtual NIC Address // PNIC_ADDR: Physical NIC Address // PPORT: Phsical Port.",
-                                        "cardinality": "0..1",
-                                        "data-type": {
-                                             "enumeration": {
-                                                  "enum": "VPORT"
-                                             }
-                                        },
-                                        "properties": []
-                                   }
-                              ],
-                              "key": [
-                                   "id"
-                              ]
-                         },
-                         {
-                              "name": "internal-interface",
-                              "type": "list",
-                              "description": "List of internal interfaces for the VNF",
-                              "cardinality": "0..N",
-                              "properties": [
-                                   {
-                                        "name": "name",
-                                        "type": "leaf",
-                                        "description": "Name of internal interface. Note that this name has only local significance to the VDU.",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "vdu-internal-connection-point-ref",
-                                        "type": "leaf",
-                                        "cardinality": "0..1",
-                                        "data-type": {
-                                             "leafref": {
-                                                  "path": "../../internal-connection-point/id"
-                                             }
-                                        },
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "virtual-interface",
-                                        "type": "container",
-                                        "description": "Container for the virtual interface properties",
-                                        "cardinality": "0..1",
-                                        "properties": [
-                                             {
-                                                  "name": "type",
-                                                  "type": "leaf",
-                                                  "description": "Specifies the type of virtual interface between VM and host. VIRTIO : Use the traditional VIRTIO interface. PCI-PASSTHROUGH : Use PCI-PASSTHROUGH interface. SR-IOV : Use SR-IOV interface. OM-MGMT : Used to specify openmano mgmt external-connection type",
-                                                  "cardinality": "0..1",
-                                                  "data-type": {
-                                                       "enumeration": {
-                                                            "enum": {
-                                                                 "OM-MGMT": null,
-                                                                 "PCI-PASSTHROUGH": null,
-                                                                 "SR-IOV": null,
-                                                                 "VIRTIO": null
-                                                            }
-                                                       }
-                                                  },
-                                                  "properties": []
-                                             },
-                                             {
-                                                  "name": "vpci",
-                                                  "type": "leaf",
-                                                  "description": "Specifies the virtual PCI address. Expressed in the following format dddd:dd:dd.d. For example 0000:00:12.0. This information can be used to pass as metadata during the VM creation.",
-                                                  "cardinality": "0..1",
-                                                  "data-type": "string",
-                                                  "properties": []
-                                             },
-                                             {
-                                                  "name": "bandwidth",
-                                                  "type": "leaf",
-                                                  "description": "Aggregate bandwidth of the NIC.",
-                                                  "cardinality": "0..1",
-                                                  "data-type": "uint64",
-                                                  "properties": []
-                                             }
-                                        ]
-                                   }
-                              ],
-                              "key": [
-                                   "name"
-                              ]
-                         },
-                         {
-                              "name": "external-interface",
-                              "type": "list",
-                              "description": "List of external interfaces for the VNF. The external interfaces enable sending traffic to and from VNF.",
-                              "cardinality": "0..N",
-                              "properties": [
-                                   {
-                                        "name": "name",
-                                        "type": "leaf",
-                                        "description": "Name of the external interface. Note that this name has only local significance.",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "vnfd-connection-point-ref",
-                                        "type": "leaf",
-                                        "description": "Name of the external connection point.",
-                                        "cardinality": "0..1",
-                                        "data-type": {
-                                             "leafref": {
-                                                  "path": "../../../connection-point/name"
-                                             }
-                                        },
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "virtual-interface",
-                                        "type": "container",
-                                        "description": "Container for the virtual interface properties",
-                                        "cardinality": "0..1",
-                                        "properties": [
-                                             {
-                                                  "name": "type",
-                                                  "type": "leaf",
-                                                  "description": "Specifies the type of virtual interface between VM and host. VIRTIO : Use the traditional VIRTIO interface. PCI-PASSTHROUGH : Use PCI-PASSTHROUGH interface. SR-IOV : Use SR-IOV interface. OM-MGMT : Used to specify openmano mgmt external-connection type",
-                                                  "cardinality": "0..1",
-                                                  "data-type": {
-                                                       "enumeration": {
-                                                            "enum": {
-                                                                 "OM-MGMT": null,
-                                                                 "PCI-PASSTHROUGH": null,
-                                                                 "SR-IOV": null,
-                                                                 "VIRTIO": null
-                                                            }
-                                                       }
-                                                  },
-                                                  "properties": []
-                                             },
-                                             {
-                                                  "name": "vpci",
-                                                  "type": "leaf",
-                                                  "description": "Specifies the virtual PCI address. Expressed in the following format dddd:dd:dd.d. For example 0000:00:12.0. This information can be used to pass as metadata during the VM creation.",
-                                                  "cardinality": "0..1",
-                                                  "data-type": "string",
-                                                  "properties": []
-                                             },
-                                             {
-                                                  "name": "bandwidth",
-                                                  "type": "leaf",
-                                                  "description": "Aggregate bandwidth of the NIC.",
-                                                  "cardinality": "0..1",
-                                                  "data-type": "uint64",
-                                                  "properties": []
-                                             }
-                                        ]
-                                   }
-                              ],
-                              "key": [
-                                   "name"
-                              ]
-                         },
-                         {
-                              "name": "vm-flavor",
-                              "type": "container",
-                              "cardinality": "0..1",
-                              "properties": [
-                                   {
-                                        "name": "vcpu-count",
-                                        "type": "leaf",
-                                        "description": "Number of vcpus for the VM.",
-                                        "cardinality": "0..1",
-                                        "data-type": "uint16",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "memory-mb",
-                                        "type": "leaf",
-                                        "description": "Amount of memory in MB.",
-                                        "cardinality": "0..1",
-                                        "data-type": "uint64",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "storage-gb",
-                                        "type": "leaf",
-                                        "description": "Amount of disk space in GB.",
-                                        "cardinality": "0..1",
-                                        "data-type": "uint64",
-                                        "properties": []
-                                   }
-                              ]
-                         },
-                         {
-                              "name": "guest-epa",
-                              "type": "container",
-                              "cardinality": "0..1",
-                              "properties": [
-                                   {
-                                        "name": "trusted-execution",
-                                        "type": "leaf",
-                                        "description": "This VM should be allocated from trusted pool",
-                                        "cardinality": "0..1",
-                                        "data-type": "boolean",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "mempage-size",
-                                        "type": "leaf",
-                                        "description": "Memory page allocation size. If a VM requires hugepages, it should choose LARGE or SIZE_2MB or SIZE_1GB. If the VM prefers hugepages it should chose PREFER_LARGE. LARGE : Require hugepages (either 2MB or 1GB) SMALL : Doesn't require hugepages SIZE_2MB : Requires 2MB hugepages SIZE_1GB : Requires 1GB hugepages PREFER_LARGE : Application perfers hugepages",
-                                        "cardinality": "0..1",
-                                        "data-type": {
-                                             "enumeration": {
-                                                  "enum": {
-                                                       "LARGE": {
-                                                            "value": 0
-                                                       },
-                                                       "SMALL": {
-                                                            "value": 1
-                                                       },
-                                                       "SIZE_2MB": {
-                                                            "value": 2
-                                                       },
-                                                       "SIZE_1GB": {
-                                                            "value": 3
-                                                       },
-                                                       "PREFER_LARGE": {
-                                                            "value": 4
-                                                       }
-                                                  }
-                                             }
-                                        },
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "cpu-pinning-policy",
-                                        "type": "leaf",
-                                        "description": "CPU pinning policy describes association between virtual CPUs in guest and the physical CPUs in the host. DEDICATED : Virtual CPUs are pinned to physical CPUs SHARED : Multiple VMs may share the same physical CPUs. ANY : Any policy is acceptable for the VM",
-                                        "cardinality": "0..1",
-                                        "data-type": {
-                                             "enumeration": {
-                                                  "enum": {
-                                                       "DEDICATED": {
-                                                            "value": 0
-                                                       },
-                                                       "SHARED": {
-                                                            "value": 1
-                                                       },
-                                                       "ANY": {
-                                                            "value": 2
-                                                       }
-                                                  }
-                                             }
-                                        },
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "cpu-thread-pinning-policy",
-                                        "type": "leaf",
-                                        "description": "CPU thread pinning policy describes how to place the guest CPUs when the host supports hyper threads: AVOID : Avoids placing a guest on a host with threads. SEPARATE: Places vCPUs on separate cores, and avoids placing two vCPUs on two threads of same core. ISOLATE : Places each vCPU on a different core, and places no vCPUs from a different guest on the same core. PREFER : Attempts to place vCPUs on threads of the same core.",
-                                        "cardinality": "0..1",
-                                        "data-type": {
-                                             "enumeration": {
-                                                  "enum": {
-                                                       "AVOID": {
-                                                            "value": 0
-                                                       },
-                                                       "SEPARATE": {
-                                                            "value": 1
-                                                       },
-                                                       "ISOLATE": {
-                                                            "value": 2
-                                                       },
-                                                       "PREFER": {
-                                                            "value": 3
-                                                       }
-                                                  }
-                                             }
-                                        },
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "pcie-device",
-                                        "type": "list",
-                                        "description": "List of pcie passthrough devices.",
-                                        "cardinality": "0..N",
-                                        "properties": [
-                                             {
-                                                  "name": "device-id",
-                                                  "type": "leaf",
-                                                  "description": "Device identifier.",
-                                                  "cardinality": "0..1",
-                                                  "data-type": "string",
-                                                  "properties": []
-                                             },
-                                             {
-                                                  "name": "count",
-                                                  "type": "leaf",
-                                                  "description": "Number of devices to attach to the VM.",
-                                                  "cardinality": "0..1",
-                                                  "data-type": "uint64",
-                                                  "properties": []
-                                             }
-                                        ],
-                                        "key": [
-                                             "device-id"
-                                        ]
-                                   },
-                                   {
-                                        "name": "numa-policy",
-                                        "type": "choice",
-                                        "cardinality": "0..1",
-                                        "properties": [
-                                             {
-                                                  "name": "numa-unware",
-                                                  "type": "case",
-                                                  "cardinality": "0..1",
-                                                  "properties": [
-                                                       {
-                                                            "name": "numa-unware",
-                                                            "type": "leaf",
-                                                            "cardinality": "0..1",
-                                                            "data-type": "empty",
-                                                            "properties": []
-                                                       }
-                                                  ]
-                                             },
-                                             {
-                                                  "name": "numa-aware",
-                                                  "type": "case",
-                                                  "cardinality": "0..1",
-                                                  "properties": [
-                                                       {
-                                                            "name": "numa-node-policy",
-                                                            "type": "container",
-                                                            "description": "This policy defines numa topology of the guest. Specifically identifies if the guest should be run on a host with one numa node or multiple numa nodes. As an example a guest may want 8 vcpus and 4 GB of memory. But may want the vcpus and memory distributed across multiple numa nodes. The NUMA node 1 may run with 6 vcpus and 3GB, and NUMA node 2 may run with 2 vcpus and 1GB.",
-                                                            "cardinality": "0..1",
-                                                            "properties": [
-                                                                 {
-                                                                      "name": "node-cnt",
-                                                                      "type": "leaf",
-                                                                      "description": "The number of numa nodes to expose to the VM.",
-                                                                      "cardinality": "0..1",
-                                                                      "data-type": "uint16",
-                                                                      "properties": []
-                                                                 },
-                                                                 {
-                                                                      "name": "mem-policy",
-                                                                      "type": "leaf",
-                                                                      "description": "This policy specifies how the memory should be allocated in a multi-node scenario. STRICT : The memory must be allocated strictly from the memory attached to the NUMA node. PREFERRED : The memory should be allocated perferentially from the memory attached to the NUMA node",
-                                                                      "cardinality": "0..1",
-                                                                      "data-type": {
-                                                                           "enumeration": {
-                                                                                "enum": {
-                                                                                     "STRICT": {
-                                                                                          "value": 0
-                                                                                     },
-                                                                                     "PREFERRED": {
-                                                                                          "value": 1
-                                                                                     }
-                                                                                }
-                                                                           }
-                                                                      },
-                                                                      "properties": []
-                                                                 },
-                                                                 {
-                                                                      "name": "node",
-                                                                      "type": "list",
-                                                                      "cardinality": "0..N",
-                                                                      "properties": [
-                                                                           {
-                                                                                "name": "id",
-                                                                                "type": "leaf",
-                                                                                "description": "NUMA node identification. Typically it's 0 or 1",
-                                                                                "cardinality": "0..1",
-                                                                                "data-type": "uint64",
-                                                                                "properties": []
-                                                                           },
-                                                                           {
-                                                                                "name": "memory-mb",
-                                                                                "type": "leaf",
-                                                                                "description": "Memory size expressed in MB for this NUMA node.",
-                                                                                "cardinality": "0..1",
-                                                                                "data-type": "uint64",
-                                                                                "properties": []
-                                                                           },
-                                                                           {
-                                                                                "name": "vcpu",
-                                                                                "type": "leaf-list",
-                                                                                "description": "List of vcpus to allocate on this numa node.",
-                                                                                "cardinality": "0..N",
-                                                                                "data-type": "uint64",
-                                                                                "properties": []
-                                                                           },
-                                                                           {
-                                                                                "name": "om-numa-type",
-                                                                                "type": "choice",
-                                                                                "description": "Openmano Numa type selection",
-                                                                                "cardinality": "0..1",
-                                                                                "properties": [
-                                                                                     {
-                                                                                          "name": "cores",
-                                                                                          "type": "case",
-                                                                                          "cardinality": "0..1",
-                                                                                          "properties": [
-                                                                                               {
-                                                                                                    "name": "num-cores",
-                                                                                                    "type": "leaf",
-                                                                                                    "cardinality": "0..1",
-                                                                                                    "data-type": "uint8",
-                                                                                                    "properties": []
-                                                                                               }
-                                                                                          ]
-                                                                                     },
-                                                                                     {
-                                                                                          "name": "paired-threads",
-                                                                                          "type": "case",
-                                                                                          "cardinality": "0..1",
-                                                                                          "properties": [
-                                                                                               {
-                                                                                                    "name": "paired-threads",
-                                                                                                    "type": "container",
-                                                                                                    "cardinality": "0..1",
-                                                                                                    "properties": [
-                                                                                                         {
-                                                                                                              "name": "num-paired-threads",
-                                                                                                              "type": "leaf",
-                                                                                                              "cardinality": "0..1",
-                                                                                                              "data-type": "uint8",
-                                                                                                              "properties": []
-                                                                                                         },
-                                                                                                         {
-                                                                                                              "name": "paired-thread-ids",
-                                                                                                              "type": "list",
-                                                                                                              "description": "List of thread pairs to use in case of paired-thread numa",
-                                                                                                              "cardinality": "0..16",
-                                                                                                              "properties": [
-                                                                                                                   {
-                                                                                                                        "name": "thread-a",
-                                                                                                                        "type": "leaf",
-                                                                                                                        "cardinality": "0..1",
-                                                                                                                        "data-type": "uint8",
-                                                                                                                        "properties": []
-                                                                                                                   },
-                                                                                                                   {
-                                                                                                                        "name": "thread-b",
-                                                                                                                        "type": "leaf",
-                                                                                                                        "cardinality": "0..1",
-                                                                                                                        "data-type": "uint8",
-                                                                                                                        "properties": []
-                                                                                                                   }
-                                                                                                              ],
-                                                                                                              "key": [
-                                                                                                                   "thread-a"
-                                                                                                              ]
-                                                                                                         }
-                                                                                                    ]
-                                                                                               }
-                                                                                          ]
-                                                                                     },
-                                                                                     {
-                                                                                          "name": "threads",
-                                                                                          "type": "case",
-                                                                                          "cardinality": "0..1",
-                                                                                          "properties": [
-                                                                                               {
-                                                                                                    "name": "num-threads",
-                                                                                                    "type": "leaf",
-                                                                                                    "cardinality": "0..1",
-                                                                                                    "data-type": "uint8",
-                                                                                                    "properties": []
-                                                                                               }
-                                                                                          ]
-                                                                                     }
-                                                                                ]
-                                                                           }
-                                                                      ],
-                                                                      "key": [
-                                                                           "id"
-                                                                      ]
-                                                                 }
-                                                            ]
-                                                       }
-                                                  ]
-                                             }
-                                        ]
-                                   }
-                              ]
-                         },
-                         {
-                              "name": "vswitch-epa",
-                              "type": "container",
-                              "cardinality": "0..1",
-                              "properties": [
-                                   {
-                                        "name": "ovs-acceleration",
-                                        "type": "leaf",
-                                        "description": "Specifies Open vSwitch acceleration mode. MANDATORY: OVS acceleration is required PREFERRED: OVS acceleration is preferred",
-                                        "cardinality": "0..1",
-                                        "data-type": {
-                                             "enumeration": {
-                                                  "enum": {
-                                                       "MANDATORY": {
-                                                            "value": 0
-                                                       },
-                                                       "PREFERRED": {
-                                                            "value": 1
-                                                       },
-                                                       "DISABLED": {
-                                                            "value": 2
-                                                       }
-                                                  }
-                                             }
-                                        },
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "ovs-offload",
-                                        "type": "leaf",
-                                        "description": "Specifies Open vSwitch hardware offload mode. MANDATORY: OVS offload is required PREFERRED: OVS offload is preferred",
-                                        "cardinality": "0..1",
-                                        "data-type": {
-                                             "enumeration": {
-                                                  "enum": {
-                                                       "MANDATORY": {
-                                                            "value": 0
-                                                       },
-                                                       "PREFERRED": {
-                                                            "value": 1
-                                                       },
-                                                       "DISABLED": {
-                                                            "value": 2
-                                                       }
-                                                  }
-                                             }
-                                        },
-                                        "properties": []
-                                   }
-                              ]
-                         },
-                         {
-                              "name": "hypervisor-epa",
-                              "type": "container",
-                              "cardinality": "0..1",
-                              "properties": [
-                                   {
-                                        "name": "type",
-                                        "type": "leaf",
-                                        "description": "Specifies the type of hypervisor. KVM: KVM XEN: XEN",
-                                        "cardinality": "0..1",
-                                        "data-type": {
-                                             "enumeration": {
-                                                  "enum": {
-                                                       "PREFER_KVM": {
-                                                            "value": 0
-                                                       },
-                                                       "REQUIRE_KVM": {
-                                                            "value": 1
-                                                       }
-                                                  }
-                                             }
-                                        },
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "version",
-                                        "type": "leaf",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   }
-                              ]
-                         },
-                         {
-                              "name": "host-epa",
-                              "type": "container",
-                              "description": "Specifies the host level EPA attributes.",
-                              "cardinality": "0..1",
-                              "properties": [
-                                   {
-                                        "name": "cpu-model",
-                                        "type": "leaf",
-                                        "description": "Host CPU model. Examples include: SandyBridge, IvyBridge",
-                                        "cardinality": "0..1",
-                                        "data-type": {
-                                             "enumeration": {
-                                                  "enum": {
-                                                       "PREFER_WESTMERE": {
-                                                            "value": 0
-                                                       },
-                                                       "REQUIRE_WESTMERE": {
-                                                            "value": 1
-                                                       },
-                                                       "PREFER_SANDYBRIDGE": {
-                                                            "value": 2
-                                                       },
-                                                       "REQUIRE_SANDYBRIDGE": {
-                                                            "value": 3
-                                                       },
-                                                       "PREFER_IVYBRIDGE": {
-                                                            "value": 4
-                                                       },
-                                                       "REQUIRE_IVYBRIDGE": {
-                                                            "value": 5
-                                                       },
-                                                       "PREFER_HASWELL": {
-                                                            "value": 6
-                                                       },
-                                                       "REQUIRE_HASWELL": {
-                                                            "value": 7
-                                                       },
-                                                       "PREFER_BROADWELL": {
-                                                            "value": 8
-                                                       },
-                                                       "REQUIRE_BROADWELL": {
-                                                            "value": 9
-                                                       },
-                                                       "PREFER_NEHALEM": {
-                                                            "value": 10
-                                                       },
-                                                       "REQUIRE_NEHALEM": {
-                                                            "value": 11
-                                                       },
-                                                       "PREFER_PENRYN": {
-                                                            "value": 12
-                                                       },
-                                                       "REQUIRE_PENRYN": {
-                                                            "value": 13
-                                                       },
-                                                       "PREFER_CONROE": {
-                                                            "value": 14
-                                                       },
-                                                       "REQUIRE_CONROE": {
-                                                            "value": 15
-                                                       },
-                                                       "PREFER_CORE2DUO": {
-                                                            "value": 16
-                                                       },
-                                                       "REQUIRE_CORE2DUO": {
-                                                            "value": 17
-                                                       }
-                                                  }
-                                             }
-                                        },
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "cpu-arch",
-                                        "type": "leaf",
-                                        "description": "Host CPU architecture.",
-                                        "cardinality": "0..1",
-                                        "data-type": {
-                                             "enumeration": {
-                                                  "enum": {
-                                                       "PREFER_X86": {
-                                                            "value": 0
-                                                       },
-                                                       "REQUIRE_X86": {
-                                                            "value": 1
-                                                       },
-                                                       "PREFER_X86_64": {
-                                                            "value": 2
-                                                       },
-                                                       "REQUIRE_X86_64": {
-                                                            "value": 3
-                                                       },
-                                                       "PREFER_I686": {
-                                                            "value": 4
-                                                       },
-                                                       "REQUIRE_I686": {
-                                                            "value": 5
-                                                       },
-                                                       "PREFER_IA64": {
-                                                            "value": 6
-                                                       },
-                                                       "REQUIRE_IA64": {
-                                                            "value": 7
-                                                       },
-                                                       "PREFER_ARMV7": {
-                                                            "value": 8
-                                                       },
-                                                       "REQUIRE_ARMV7": {
-                                                            "value": 9
-                                                       },
-                                                       "PREFER_ARMV8": {
-                                                            "value": 10
-                                                       },
-                                                       "REQUIRE_ARMV8": {
-                                                            "value": 11
-                                                       }
-                                                  }
-                                             }
-                                        },
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "cpu-vendor",
-                                        "type": "leaf",
-                                        "description": "Host CPU Vendor.",
-                                        "cardinality": "0..1",
-                                        "data-type": {
-                                             "enumeration": {
-                                                  "enum": {
-                                                       "PREFER_INTEL": {
-                                                            "value": 0
-                                                       },
-                                                       "REQUIRE_INTEL": {
-                                                            "value": 1
-                                                       },
-                                                       "PREFER_AMD": {
-                                                            "value": 2
-                                                       },
-                                                       "REQUIRE_AMD": {
-                                                            "value": 3
-                                                       }
-                                                  }
-                                             }
-                                        },
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "cpu-socket-count",
-                                        "type": "leaf",
-                                        "description": "Number of sockets on the host.",
-                                        "cardinality": "0..1",
-                                        "data-type": {
-                                             "enumeration": {
-                                                  "enum": {
-                                                       "PREFER_ONE": {
-                                                            "value": 0
-                                                       },
-                                                       "PREFER_TWO": {
-                                                            "value": 1
-                                                       },
-                                                       "REQUIRE_ONE": {
-                                                            "value": 2
-                                                       },
-                                                       "REQUIRE_TWO": {
-                                                            "value": 3
-                                                       }
-                                                  }
-                                             }
-                                        },
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "cpu-core-count",
-                                        "type": "leaf",
-                                        "description": "Number of cores on the host.",
-                                        "cardinality": "0..1",
-                                        "data-type": "uint64",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "om-cpu-model-string",
-                                        "type": "leaf",
-                                        "description": "Openmano CPU model string",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "cpu-feature",
-                                        "type": "leaf-list",
-                                        "description": "Enumeration for CPU features. AES: CPU supports advanced instruction set for AES (Advanced Encryption Standard). CAT: Cache Allocation Technology (CAT) allows an Operating System, Hypervisor, or similar system management agent to specify the amount of L3 cache (currently the last-level cache in most server and client platforms) space an application can fill (as a hint to hardware functionality, certain features such as power management may override CAT settings). CMT: Cache Monitoring Technology (CMT) allows an Operating System, Hypervisor, or similar system management agent to determine the usage of cache based on applications running on the platform. The implementation is directed at L3 cache monitoring (currently the last-level cache in most server and client platforms). DDIO: Intel Data Direct I/O (DDIO) enables Ethernet server NICs and controllers talk directly to the processor cache without a detour via system memory. This enumeration specifies if the VM requires a DDIO capable host.",
-                                        "cardinality": "0..N",
-                                        "data-type": {
-                                             "enumeration": {
-                                                  "enum": {
-                                                       "PREFER_AES": {
-                                                            "value": 0
-                                                       },
-                                                       "REQUIRE_AES": {
-                                                            "value": 1
-                                                       },
-                                                       "PREFER_CAT": {
-                                                            "value": 2
-                                                       },
-                                                       "REQUIRE_CAT": {
-                                                            "value": 3
-                                                       },
-                                                       "PREFER_CMT": {
-                                                            "value": 4
-                                                       },
-                                                       "REQUIRE_CMT": {
-                                                            "value": 5
-                                                       },
-                                                       "PREFER_DDIO": {
-                                                            "value": 6
-                                                       },
-                                                       "REQUIRE_DDIO": {
-                                                            "value": 7
-                                                       }
-                                                  }
-                                             }
-                                        },
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "om-cpu-feature",
-                                        "type": "leaf-list",
-                                        "description": "Openmano CPU features",
-                                        "cardinality": "0..N",
-                                        "data-type": "string",
-                                        "properties": []
-                                   }
-                              ]
-                         }
-                    ],
-                    "key": [
-                         "id"
-                    ]
-               },
-               {
-                    "name": "vdu-dependency",
-                    "type": "list",
-                    "description": "List of VDU dependencies.",
-                    "cardinality": "0..N",
-                    "properties": [
-                         {
-                              "name": "vdu-source-ref",
-                              "type": "leaf",
-                              "cardinality": "0..1",
-                              "data-type": {
-                                   "leafref": {
-                                        "path": "../../vdu/id"
-                                   }
-                              },
-                              "properties": []
-                         },
-                         {
-                              "name": "vdu-depends-on-ref",
-                              "type": "leaf",
-                              "description": "Reference to the VDU that source VDU depends.",
-                              "cardinality": "0..1",
-                              "data-type": {
-                                   "leafref": {
-                                        "path": "../../vdu/id"
-                                   }
-                              },
-                              "properties": []
-                         }
-                    ],
-                    "key": [
-                         "vdu-source-ref"
-                    ]
-               },
-               {
-                    "name": "placement-groups",
-                    "type": "list",
-                    "description": "List of placement groups at VNF level",
-                    "cardinality": "0..N",
-                    "properties": [
-                         {
-                              "name": "constituent-vdus",
-                              "type": "list",
-                              "description": "List of VDUs that are part of this placement group",
-                              "cardinality": "0..N",
-                              "properties": [
-                                   {
-                                        "name": "member-vdu-ref",
-                                        "type": "leaf",
-                                        "cardinality": "0..1",
-                                        "data-type": {
-                                             "leafref": {
-                                                  "path": "../../../vdu/id"
-                                             }
-                                        },
-                                        "properties": []
-                                   }
-                              ],
-                              "key": [
-                                   "member-vdu-ref"
-                              ]
-                         },
-                         {
-                              "name": "name",
-                              "type": "leaf",
-                              "description": "Place group construct to define the compute resource placement strategy in cloud environment",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "requirement",
-                              "type": "leaf",
-                              "description": "This is free text space used to describe the intent/rationale behind this placement group. This is for human consumption only",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "strategy",
-                              "type": "leaf",
-                              "description": "Strategy associated with this placement group Following values are possible - COLOCATION: Colocation strategy imply intent to share the physical infrastructure (hypervisor/network) among all members of this group. - ISOLATION: Isolation strategy imply intent to not share the physical infrastructure (hypervisor/network) among the members of this group. ",
-                              "cardinality": "0..1",
-                              "data-type": {
-                                   "enumeration": {
-                                        "enum": {
-                                             "COLOCATION": {
-                                                  "value": 0
-                                             },
-                                             "ISOLATION": {
-                                                  "value": 1
-                                             }
-                                        }
-                                   }
-                              },
-                              "properties": []
-                         }
-                    ],
-                    "key": [
-                         "name"
-                    ]
-               },
-               {
-                    "name": "http-endpoint",
-                    "type": "list",
-                    "description": "List of http endpoints to be used by monitoring params",
-                    "cardinality": "0..N",
-                    "properties": [
-                         {
-                              "name": "path",
-                              "type": "leaf",
-                              "description": "The HTTP path on the management server",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "https",
-                              "type": "leaf",
-                              "description": "Pick HTTPS instead of HTTP , Default is false",
-                              "cardinality": "0..1",
-                              "data-type": "boolean",
-                              "properties": []
-                         },
-                         {
-                              "name": "port",
-                              "type": "leaf",
-                              "description": "The port-number type represents a 16-bit port number of an Internet transport-layer protocol such as UDP, TCP, DCCP, or SCTP. Port numbers are assigned by IANA. A current list of all assignments is available from <http://www.iana.org/>. Note that the port number value zero is reserved by IANA. In situations where the value zero does not make sense, it can be excluded by subtyping the port-number type. In the value set and its semantics, this type is equivalent to the InetPortNumber textual convention of the SMIv2.",
-                              "cardinality": "0..1",
-                              "data-type": {
-                                   "uint16": {
-                                        "range": "0..65535"
-                                   }
-                              },
-                              "properties": []
-                         },
-                         {
-                              "name": "username",
-                              "type": "leaf",
-                              "description": "The HTTP basic auth username",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "password",
-                              "type": "leaf",
-                              "description": "The HTTP basic auth password",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "polling_interval_secs",
-                              "type": "leaf",
-                              "description": "The HTTP polling interval in seconds",
-                              "cardinality": "0..1",
-                              "data-type": "uint8",
-                              "properties": []
-                         },
-                         {
-                              "name": "method",
-                              "type": "leaf",
-                              "description": "Type of HTTP operation",
-                              "cardinality": "0..1",
-                              "data-type": {
-                                   "enumeration": {
-                                        "enum": {
-                                             "POST": {
-                                                  "value": 0
-                                             },
-                                             "PUT": {
-                                                  "value": 1
-                                             },
-                                             "GET": {
-                                                  "value": 2
-                                             },
-                                             "DELETE": {
-                                                  "value": 3
-                                             },
-                                             "OPTIONS": {
-                                                  "value": 4
-                                             },
-                                             "PATCH": {
-                                                  "value": 5
-                                             }
-                                        }
-                                   }
-                              },
-                              "properties": []
-                         },
-                         {
-                              "name": "headers",
-                              "type": "list",
-                              "description": "Custom HTTP headers to put on HTTP request",
-                              "cardinality": "0..N",
-                              "properties": [
-                                   {
-                                        "name": "key",
-                                        "type": "leaf",
-                                        "description": "HTTP header key",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "value",
-                                        "type": "leaf",
-                                        "description": "HTTP header value",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   }
-                              ],
-                              "key": [
-                                   "key"
-                              ]
-                         }
-                    ],
-                    "key": [
-                         "path"
-                    ]
-               },
-               {
-                    "name": "monitoring-param",
-                    "type": "list",
-                    "description": "List of monitoring parameters at the NS level",
-                    "cardinality": "0..N",
-                    "properties": [
-                         {
-                              "name": "id",
-                              "type": "leaf",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "name",
-                              "type": "leaf",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "http-endpoint-ref",
-                              "type": "leaf",
-                              "cardinality": "0..1",
-                              "data-type": {
-                                   "leafref": {
-                                        "path": "../../http-endpoint/path"
-                                   }
-                              },
-                              "properties": []
-                         },
-                         {
-                              "name": "json-query-method",
-                              "type": "leaf",
-                              "description": "The method to extract a value from a JSON response NAMEKEY - Use the name as the key for a non-nested value. JSONPATH - Use jsonpath-rw implemenation to extract a value. OBJECTPATH - Use objectpath implemenation to extract a value.",
-                              "cardinality": "0..1",
-                              "data-type": {
-                                   "enumeration": {
-                                        "enum": {
-                                             "NAMEKEY": {
-                                                  "value": 0
-                                             },
-                                             "JSONPATH": {
-                                                  "value": 1
-                                             },
-                                             "OBJECTPATH": {
-                                                  "value": 2
-                                             }
-                                        }
-                                   }
-                              },
-                              "properties": []
-                         },
-                         {
-                              "name": "description",
-                              "type": "leaf",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "group-tag",
-                              "type": "leaf",
-                              "description": "A simple tag to group monitoring parameters",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "value-type",
-                              "type": "leaf",
-                              "description": "The type of the parameter value",
-                              "cardinality": "0..1",
-                              "data-type": {
-                                   "enumeration": {
-                                        "enum": {
-                                             "INT": {
-                                                  "value": 0
-                                             },
-                                             "DECIMAL": {
-                                                  "value": 1
-                                             },
-                                             "STRING": {
-                                                  "value": 2
-                                             }
-                                        }
-                                   }
-                              },
-                              "properties": []
-                         },
-                         {
-                              "name": "value-integer",
-                              "type": "leaf",
-                              "description": "Current value for an integer parameter",
-                              "cardinality": "0..1",
-                              "data-type": "int64",
-                              "properties": []
-                         },
-                         {
-                              "name": "value-decimal",
-                              "type": "leaf",
-                              "description": "Current value for a decimal parameter",
-                              "cardinality": "0..1",
-                              "data-type": {
-                                   "decimal64": {
-                                        "fraction-digits": "4"
-                                   }
-                              },
-                              "properties": []
-                         },
-                         {
-                              "name": "value-string",
-                              "type": "leaf",
-                              "description": "Current value for a string parameter",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "widget-type",
-                              "type": "leaf",
-                              "description": "Type of the widget, typically used by the UI.",
-                              "cardinality": "0..1",
-                              "data-type": {
-                                   "enumeration": {
-                                        "enum": {
-                                             "HISTOGRAM": {
-                                                  "value": 0
-                                             },
-                                             "BAR": {
-                                                  "value": 1
-                                             },
-                                             "GAUGE": {
-                                                  "value": 2
-                                             },
-                                             "SLIDER": {
-                                                  "value": 3
-                                             },
-                                             "COUNTER": {
-                                                  "value": 4
-                                             },
-                                             "TEXTBOX": {
-                                                  "value": 5
-                                             }
-                                        }
-                                   }
-                              },
-                              "properties": []
-                         },
-                         {
-                              "name": "units",
-                              "type": "leaf",
-                              "cardinality": "0..1",
-                              "data-type": "string",
-                              "properties": []
-                         },
-                         {
-                              "name": "json-query-params",
-                              "type": "container",
-                              "cardinality": "0..1",
-                              "properties": [
-                                   {
-                                        "name": "json-path",
-                                        "type": "leaf",
-                                        "description": "The jsonpath to use to extract value from JSON structure",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "object-path",
-                                        "type": "leaf",
-                                        "description": "The objectpath to use to extract value from JSON structure",
-                                        "cardinality": "0..1",
-                                        "data-type": "string",
-                                        "properties": []
-                                   }
-                              ]
-                         },
-                         {
-                              "name": "numeric-constraints",
-                              "type": "container",
-                              "cardinality": "0..1",
-                              "properties": [
-                                   {
-                                        "name": "min-value",
-                                        "type": "leaf",
-                                        "description": "Minimum value for the parameter",
-                                        "cardinality": "0..1",
-                                        "data-type": "uint64",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "max-value",
-                                        "type": "leaf",
-                                        "description": "Maxium value for the parameter",
-                                        "cardinality": "0..1",
-                                        "data-type": "uint64",
-                                        "properties": []
-                                   }
-                              ]
-                         },
-                         {
-                              "name": "text-constraints",
-                              "type": "container",
-                              "cardinality": "0..1",
-                              "properties": [
-                                   {
-                                        "name": "min-length",
-                                        "type": "leaf",
-                                        "description": "Minimum string length for the parameter",
-                                        "cardinality": "0..1",
-                                        "data-type": "uint8",
-                                        "properties": []
-                                   },
-                                   {
-                                        "name": "max-length",
-                                        "type": "leaf",
-                                        "description": "Maximum string length for the parameter",
-                                        "cardinality": "0..1",
-                                        "data-type": "uint8",
-                                        "properties": []
-                                   }
-                              ]
-                         }
-                    ],
-                    "key": [
-                         "id"
-                    ]
-               }
-          ],
-          "key": [
-               "id"
-          ]
-     }
-}
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/nsd.yang.src b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/nsd.yang.src
deleted file mode 100644 (file)
index 1f2a91f..0000000
+++ /dev/null
@@ -1,641 +0,0 @@
-
-/*
- * STANDARD_RIFT_IO_COPYRIGHT
- *
- */
-
-module nsd
-{
-  namespace "urn:ietf:params:xml:ns:yang:nfvo:nsd";
-  prefix "nsd";
-
-  import rw-pb-ext {
-    prefix "rwpb";
-  }
-
-  import vld {
-    prefix "vld";
-  }
-
-  import vnfd {
-    prefix "vnfd";
-  }
-
-  import ietf-inet-types {
-    prefix "inet";
-  }
-
-  import ietf-yang-types {
-    prefix "yang";
-  }
-
-  import mano-types {
-    prefix "manotypes";
-  }
-
-  revision 2014-10-27 {
-    description
-      "Initial revision. This YANG file defines
-       the Network Service Descriptor (NSD)";
-    reference
-      "Derived from earlier versions of base YANG files";
-  }
-
-  typedef scaling-trigger {
-    type enumeration {
-      enum pre-scale-in {
-        value 1;
-      }
-      enum post-scale-in {
-        value 2;
-      }
-      enum pre-scale-out {
-        value 3;
-      }
-      enum post-scale-out {
-        value 4;
-      }
-    }
-  }
-
-  container nsd-catalog {
-
-    list nsd {
-      key "id";
-
-      leaf id {
-        description "Identifier for the NSD.";
-        type string;
-      }
-
-      leaf name {
-        description "NSD name.";
-        mandatory true;
-        type string;
-      }
-
-      leaf short-name {
-        description "NSD short name.";
-        type string;
-      }
-
-
-      leaf vendor {
-        description "Vendor of the NSD.";
-        type string;
-      }
-
-      leaf logo {
-        description
-          "File path for  the vendor specific logo. For example icons/mylogo.png.
-           The logo  should be part of the network service";
-        type string;
-      }
-
-      leaf description {
-        description "Description of the NSD.";
-        type string;
-      }
-
-      leaf version {
-        description "Version of the NSD";
-        type string;
-      }
-
-      list connection-point {
-        description
-            "List for external connection points.
-            Each NS has one or more external connection
-            points. As the name implies that external
-            connection points are used for connecting
-            the NS to other NS or to external networks.
-            Each NS exposes these connection points to
-            the orchestrator. The orchestrator can
-            construct network service chains by
-            connecting the connection points between
-            different NS.";
-
-        key "name";
-        leaf name {
-          description
-              "Name of the NS connection point.";
-          type string;
-        }
-
-        leaf type {
-          description
-              "Type of the connection point.";
-          type manotypes:connection-point-type;
-        }
-      }
-
-      /* Still having issues modelling this,
-         see the comments under vnfd-connection-point-ref
-       */
-      list vld {
-        description
-            "List of Virtual Link Descriptors.";
-
-        key "id";
-
-        leaf id {
-          description
-              "Identifier for the VLD.";
-          type string;
-        }
-
-        leaf name {
-          description
-              "Virtual Link Descriptor (VLD) name.";
-          type string;
-        }
-
-        leaf short-name {
-          description
-              "Short name for VLD for UI";
-          type string;
-        }
-
-        leaf vendor {
-          description "Provider of the VLD.";
-          type string;
-        }
-
-        leaf description {
-          description "Description of the VLD.";
-          type string;
-        }
-
-        leaf version {
-          description "Version of the VLD";
-          type string;
-        }
-
-        leaf type {
-          type manotypes:virtual-link-type;
-        }
-
-        leaf root-bandwidth {
-          description
-              "For ELAN this is the aggregate bandwidth.";
-          type uint64;
-        }
-
-        leaf leaf-bandwidth {
-          description
-              "For ELAN this is the bandwidth of branches.";
-          type uint64;
-        }
-
-        list vnfd-connection-point-ref {
-          description
-              "A list of references to connection points.";
-          key "member-vnf-index-ref";
-
-          leaf member-vnf-index-ref {
-            description "Reference to member-vnf within constituent-vnfds";
-            type leafref {
-              path "../../../nsd:constituent-vnfd/nsd:member-vnf-index";
-            }
-          }
-
-           leaf vnfd-id-ref {
-             description
-                 "A reference to a vnfd. This is a
-                  leafref to path:
-                      ../../../nsd:constituent-vnfd
-                      + [nsd:id = current()/../nsd:id-ref]
-                      + /nsd:vnfd-id-ref
-                  NOTE: An issue with confd is preventing the
-                  use of xpath. Seems to be an issue with leafref
-                  to leafref, whose target is in a different module.
-                  Once that is resovled this will switched to use
-                  leafref";
-             type string;
-           }
-
-           leaf vnfd-connection-point-ref {
-             description
-                 "A reference to a connection point name
-                  in a vnfd. This is a leafref to path:
-                      /vnfd:vnfd-catalog/vnfd:vnfd
-                      + [vnfd:id = current()/../nsd:vnfd-id-ref]
-                      + /vnfd:connection-point/vnfd:name
-                  NOTE: An issue with confd is preventing the
-                  use of xpath. Seems to be an issue with leafref
-                  to leafref, whose target is in a different module.
-                  Once that is resovled this will switched to use
-                  leafref";
-              type string;
-          }
-        }
-
-        // replicate for pnfd container here
-        uses manotypes:provider-network;
-      }
-
-      list constituent-vnfd {
-        description
-            "List of VNFDs that are part of this
-            network service.";
-
-        key "member-vnf-index";
-
-        leaf member-vnf-index {
-          description
-            "Identifier/index for the VNFD. This separate id
-             is required to ensure that multiple VNFs can be
-             part of single NS";
-          type uint64;
-        }
-
-        leaf vnfd-id-ref {
-          description
-            "Identifier for the VNFD.";
-          type leafref {
-            path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id";
-          }
-        }
-
-        leaf start-by-default {
-          description
-            "VNFD is started as part of the NS instantiation";
-          type boolean;
-          default true;
-        }
-      }
-
-      list scaling-group-descriptor {
-        description
-            "scaling group descriptor within this network service.
-             The scaling group defines a group of VNFs,
-             and the ratio of VNFs in the network service
-             that is used as target for scaling action";
-
-        key "name";
-
-        leaf name {
-          description "Name of this scaling group.";
-          type string;
-        }
-
-        list vnfd-member {
-          description "List of VNFs in this scaling group";
-          key "member-vnf-index-ref";
-
-          leaf member-vnf-index-ref {
-            description "member VNF index of this member VNF";
-            type leafref {
-              path "../../../constituent-vnfd/member-vnf-index";
-            }
-          }
-
-          leaf count {
-            description
-              "count of this member VNF  within this scaling group.
-               The count allows to define  the number of instances
-               when a scaling action targets this scaling group";
-            type uint32;
-            default 1;
-          }
-        }
-
-        leaf min-instance-count {
-          description
-            "Minimum instances of the scaling group which are allowed.
-            These instances are created by default when the network service
-            is instantiated.";
-          type uint32;
-          default 0;
-        }
-
-        leaf max-instance-count {
-          description
-            "Maximum instances of this scaling group that are allowed
-             in a single network service. The network service scaling
-             will fail, when the number of service group instances
-             exceed the max-instance-count specified.";
-          type uint32;
-          default 10;
-        }
-
-        list scaling-config-action {
-          description "List of scaling config actions";
-          key "trigger";
-
-          leaf trigger {
-            description "scaling trigger";
-            type scaling-trigger;
-          }
-
-          leaf ns-config-primitive-name-ref {
-            description "Reference to the NS config name primitive";
-            type leafref {
-              path "../../../config-primitive/name";
-            }
-          }
-        }
-      }
-
-      list placement-groups {
-        description "List of placement groups at NS level";
-
-        key "name";
-        uses manotypes:placement-group-info;
-
-        list constituent-vnfd {
-          description
-              "List of VNFDs that are part of thisplacement group";
-
-          key "member-vnf-index-ref";
-
-          leaf member-vnf-index-ref {
-            description "member VNF index of this member VNF";
-            type leafref {
-              path "../../../constituent-vnfd/member-vnf-index";
-            }
-          }
-
-          leaf vnfd-id-ref {
-            description
-                "Identifier for the VNFD.";
-            type leafref {
-              path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id";
-            }
-          }
-        }
-      }
-
-      list vnf-dependency {
-        description
-            "List of VNF dependencies.";
-        key vnf-source-ref;
-        leaf vnf-source-ref {
-          type leafref {
-            path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id";
-          }
-        }
-        leaf vnf-depends-on-ref {
-          description
-              "Reference to VNF that sorce VNF depends.";
-          type leafref {
-            path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id";
-          }
-        }
-      }
-
-      list vnffgd {
-        description
-            "List of VNF Forwarding Graph Descriptors (VNFFGD).";
-
-        key "id";
-
-        leaf id {
-          description
-              "Identifier for the VNFFGD.";
-          type string;
-        }
-
-        leaf name {
-          description
-              "VNFFGD name.";
-          type string;
-        }
-
-        leaf short-name {
-          description
-              "Short name for VNFFGD for UI";
-          type string;
-        }
-
-        leaf vendor {
-          description "Provider of the VNFFGD.";
-          type string;
-        }
-
-        leaf description {
-          description "Description of the VNFFGD.";
-          type string;
-        }
-
-        leaf version {
-          description "Version of the VNFFGD";
-          type string;
-        }
-
-        list rsp {
-          description
-              "List of Rendered Service Paths (RSP).";
-
-          key "id";
-
-          leaf id {
-            description
-                "Identifier for the RSP.";
-            type string;
-          }
-
-          leaf name {
-            description
-                "RSP name.";
-            type string;
-          }
-
-          list vnfd-connection-point-ref {
-            description
-                  "A list of references to connection points.";
-            key "member-vnf-index-ref";
-
-            leaf member-vnf-index-ref {
-              description "Reference to member-vnf within constituent-vnfds";
-              type leafref {
-                path "../../../../nsd:constituent-vnfd/nsd:member-vnf-index";
-              }
-            }
-
-            leaf order {
-              type uint8;
-              description
-                  "A number that denotes the order of a VNF in a chain";
-            }
-
-             leaf vnfd-id-ref {
-               description
-                   "A reference to a vnfd. This is a
-                    leafref to path:
-                        ../../../../nsd:constituent-vnfd
-                        + [nsd:id = current()/../nsd:id-ref]
-                        + /nsd:vnfd-id-ref
-                    NOTE: An issue with confd is preventing the
-                    use of xpath. Seems to be an issue with leafref
-                    to leafref, whose target is in a different module.
-                    Once that is resovled this will switched to use
-                    leafref";
-               type string;
-             }
-
-             leaf vnfd-connection-point-ref {
-               description
-                   "A reference to a connection point name
-                    in a vnfd. This is a leafref to path:
-                        /vnfd:vnfd-catalog/vnfd:vnfd
-                        + [vnfd:id = current()/../nsd:vnfd-id-ref]
-                        + /vnfd:connection-point/vnfd:name
-                    NOTE: An issue with confd is preventing the
-                    use of xpath. Seems to be an issue with leafref
-                    to leafref, whose target is in a different module.
-                    Once that is resovled this will switched to use
-                    leafref";
-                type string;
-            }
-          }
-        } //rsp
-
-        list classifier {
-          description
-              "List of classifier rules.";
-
-          key "id";
-
-          leaf id {
-            description
-                "Identifier for the classifier rule.";
-            type string;
-          }
-
-          leaf name {
-            description
-                "Name of the classifier.";
-            type string;
-          }
-
-          leaf rsp-id-ref {
-            description
-                "A reference to the RSP.";
-            type leafref {
-              path "../../nsd:rsp/nsd:id";
-            }
-          }
-
-          leaf member-vnf-index-ref {
-            description "Reference to member-vnf within constituent-vnfds";
-            type leafref {
-              path "../../../nsd:constituent-vnfd/nsd:member-vnf-index";
-            }
-          }
-
-          leaf vnfd-id-ref {
-            description
-                "A reference to a vnfd. This is a
-                    leafref to path:
-                        ../../../nsd:constituent-vnfd
-                        + [nsd:id = current()/../nsd:id-ref]
-                        + /nsd:vnfd-id-ref
-                    NOTE: An issue with confd is preventing the
-                    use of xpath. Seems to be an issue with leafref
-                    to leafref, whose target is in a different module.
-                    Once that is resovled this will switched to use
-                    leafref";
-            type string;
-          }
-
-          leaf vnfd-connection-point-ref {
-            description
-                "A reference to a connection point name
-                    in a vnfd. This is a leafref to path:
-                        /vnfd:vnfd-catalog/vnfd:vnfd
-                        + [vnfd:id = current()/../nsd:vnfd-id-ref]
-                        + /vnfd:connection-point/vnfd:name
-                    NOTE: An issue with confd is preventing the
-                    use of xpath. Seems to be an issue with leafref
-                    to leafref, whose target is in a different module.
-                    Once that is resovled this will switched to use
-                    leafref";
-            type string;
-          }
-
-          list match-attributes {
-            description
-                "List of match attributes.";
-
-            key "id";
-
-            leaf id {
-              description
-                  "Identifier for the classifier match attribute rule.";
-              type string;
-            }
-
-            leaf ip-proto {
-              description
-                  "IP Protocol.";
-              type uint8;
-            }
-
-            leaf source-ip-address {
-              description
-                  "Source IP address.";
-              type inet:ip-address;
-            }
-
-            leaf destination-ip-address {
-              description
-                  "Destination IP address.";
-              type inet:ip-address;
-            }
-
-            leaf source-port {
-              description
-                  "Source port number.";
-              type inet:port-number;
-            }
-
-            leaf destination-port {
-              description
-                  "Destination port number.";
-              type inet:port-number;
-            }
-            //TODO: Add more match criteria
-          } //match-attributes
-        } // classifier
-      } // vnffgd
-
-      uses manotypes:monitoring-param;
-      uses manotypes:input-parameter-xpath;
-
-      list parameter-pool {
-        description
-          "Pool of parameter values which must be
-           pulled from during configuration";
-        key "name";
-
-        leaf name {
-          description
-              "Name of the configuration value pool";
-          type string;
-        }
-
-        container range {
-          description
-              "Create a range of values to populate the pool with";
-
-          leaf start-value {
-            description
-                "Generated pool values start at this value";
-            type uint32;
-            mandatory true;
-          }
-
-          leaf end-value {
-            description
-                "Generated pool values stop at this value";
-            type uint32;
-            mandatory true;
-          }
-        }
-      }
-
-      uses manotypes:config-primitive;
-    }
-  }
-}
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/nsr.yang.src b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/nsr.yang.src
deleted file mode 100755 (executable)
index 7c339e5..0000000
+++ /dev/null
@@ -1,1141 +0,0 @@
-
-/*
- * STANDARD_RIFT_IO_COPYRIGHT
- *
- */
-
-module nsr
-{
-  namespace "urn:ietf:params:xml:ns:yang:nfvo:nsr";
-  prefix "nsr";
-
-  import rw-pb-ext {
-    prefix "rwpb";
-  }
-
-  import vlr {
-    prefix "vlr";
-  }
-
-  import vld {
-    prefix "vld";
-  }
-
-  import nsd {
-    prefix "nsd";
-  }
-
-  import vnfd {
-    prefix "vnfd";
-  }
-
-  import vnfr {
-    prefix "vnfr";
-  }
-
-  import ietf-inet-types {
-    prefix "inet";
-  }
-
-  import ietf-yang-types {
-    prefix "yang";
-  }
-
-  import mano-types {
-    prefix "manotypes";
-  }
-
-  import rw-sdn {
-    prefix "rwsdn";
-  }
-
-  revision 2015-09-10 {
-    description
-      "Initial revision. This YANG file defines
-       the Network Service Record (NSR)";
-    reference
-      "Derived from earlier versions of base YANG files";
-  }
-
-  typedef config-states {
-    type enumeration {
-      enum init;
-      enum configuring;
-      enum config_not_needed;
-      enum configured;
-      enum failed;
-    }
-  }
-
-  container ns-instance-config {
-
-    list nsr {
-      key "id";
-      unique "name";
-
-      leaf id {
-        description "Identifier for the NSR.";
-        type yang:uuid;
-      }
-
-      leaf name {
-        description "NSR name.";
-        type string;
-      }
-
-      leaf short-name {
-        description "NSR short name.";
-        type string;
-      }
-
-      leaf description {
-        description "NSR description.";
-        type string;
-      }
-
-      leaf nsd-ref {
-        description "Reference to NSD";
-        type leafref {
-          path "/nsd:nsd-catalog/nsd:nsd/nsd:id";
-        }
-      }
-
-      leaf admin-status {
-        description
-          "This is the administrative status of the NS instance";
-
-        type enumeration {
-          enum ENABLED;
-          enum DISABLED;
-        }
-      }
-
-      uses manotypes:input-parameter;
-
-      list scaling-group {
-        description "List of ns scaling group instances";
-        key "scaling-group-name-ref";
-
-        leaf scaling-group-name-ref {
-          description "name of the scaling group";
-          type leafref {
-            path "/nsd:nsd-catalog/nsd:nsd[nsd:id = current()/" +
-                 "../../nsr:nsd-ref]/nsd:scaling-group-descriptor/nsd:name";
-          }
-        }
-
-        list instance {
-          description "The instance of the scaling group";
-          key "id";
-          leaf id {
-            description "Scaling group instance uuid";
-            type uint16;
-          }
-        }
-      }
-
-      grouping placement-group-input {
-        choice cloud-provider {
-          case openstack {           
-            container availability-zone {
-              description "Name of the Availability Zone";
-              leaf name {
-                type string;
-              }
-            }
-            list host-aggregate {
-              description "Name of the Host Aggregate";
-              key "name";
-              
-              leaf name {
-                type string;
-              }
-              leaf metadata-value {
-                type string;
-              }
-            } 
-            list server-group {
-              description "Name of the Affinity/Anti-Affinity Server Group";
-              key "name";
-              leaf name {
-                type string;
-              }
-            }
-          }
-          case aws {
-            leaf aws-construct {
-              type empty;
-            }
-          }
-          case openmano {
-            leaf openmano-construct {
-              type empty;
-            }
-            
-          }
-          case vsphere {
-            leaf vsphere-construct {
-              type empty;
-            }
-          }
-        }
-      }
-      
-      list nsd-placement-group-maps {
-        description
-            "Mapping from mano-placement groups construct from NSD to cloud
-             platform placement group construct";
-
-        key "placement-group-ref";
-
-        leaf placement-group-ref {
-          description "Reference for NSD placement group";
-          type leafref {
-            path "/nsd:nsd-catalog/nsd:nsd[nsd:id = current()/" +
-                 "../../nsr:nsd-ref]/nsd:placement-groups/nsd:name";
-          }
-        }
-        uses placement-group-input;
-      }
-
-      list vnfd-placement-group-maps {
-        description
-            "Mapping from mano-placement groups construct from VNFD to cloud
-             platform placement group construct";
-
-        key "placement-group-ref vnfd-id-ref";
-
-        leaf member-vnf-index-ref {
-          description
-              "Reference to member-vnf-index within constituent-vnfds in NSD";
-          type leafref {
-            path "/nsd:nsd-catalog/nsd:nsd[nsd:id = current()/" +
-                "../../nsr:nsd-ref]/nsd:constituent-vnfd/nsd:member-vnf-index";
-          }
-        }
-        
-        leaf vnfd-id-ref {
-          description 
-              "A reference to a vnfd. This is a 
-                    leafref to path:
-                        ../../../../nsd:constituent-vnfd
-                        + [nsr:id = current()/../nsd:id-ref]
-                        + /nsd:vnfd-id-ref
-               NOTE: An issue with confd is preventing the
-               use of xpath. Seems to be an issue with leafref
-               to leafref, whose target is in a different module.
-               Once that is resovled this will switched to use
-               leafref";
-          type yang:uuid;
-        }
-
-        leaf placement-group-ref {
-          description
-              "A reference to VNFD placement group";
-          type leafref {
-            path "/vnfd:vnfd-catalog/vnfd:vnfd[vnfd:id = current()/" +
-                "../nsr:vnfd-id-ref]/vnfd:placement-groups/vnfd:name";
-          }
-        }
-        
-        uses placement-group-input;
-      }
-    }
-  }
-
-  grouping vnffgr {
-
-    list vnffgr {
-      key "id";
-
-      leaf id {
-        description "Identifier for the VNFFGR.";
-        type yang:uuid;
-      }
-
-      leaf nsd-id {
-        description
-            "Network sevice descriptor ID reference";
-        type leafref {
-          path "/nsd:nsd-catalog/nsd:nsd/nsd:id";
-        }
-      }
-
-
-      leaf vnffgd-id-ref {
-        description "VNFFG descriptor id reference";
-        type leafref {
-          path "/nsd:nsd-catalog/nsd:nsd"
-              + "[nsd:id = current()/../nsr:nsd-id]"
-              + "/nsd:vnffgd/nsd:id";
-        }
-      }
-
-      leaf vnffgd-name-ref {
-        description "VNFFG descriptor name reference";
-        type leafref {
-          path "/nsd:nsd-catalog/nsd:nsd"
-              + "[nsd:id = current()/../nsr:nsd-id]"
-              + "/nsd:vnffgd[nsd:id = current()/../vnffgd-id-ref]"
-              + "/nsd:name";
-        }
-      }
-
-      leaf sdn-account {
-        description
-            "The SDN account to use when requesting resources for
-            this vnffgr";
-        type leafref {
-          path "/rwsdn:sdn-account/rwsdn:name";
-        }
-      }
-
-      leaf operational-status {
-        description
-          "The operational status of the VNFFGR instance
-            init                : The VNFFGR has just started.
-            running             : The VNFFGR is in running state.
-            terminate           : The VNFFGR is being terminated.
-            terminated          : The VNFFGR is in the terminated state.
-            failed              : The VNFFGR instantiation failed
-          ";
-
-        type enumeration {
-          //rwpb:enum-type "VnffgrOperationalStatus";
-          enum init;
-          enum running;
-          enum terminate;
-          enum terminated;
-          enum failed;
-        }
-      }
-
-      list rsp {
-        key "id";
-
-        leaf id {
-          description
-              "Identifier for the RSP.";
-          type yang:uuid;
-        }
-
-        leaf name {
-          description
-              "Name for the RSP";
-          type string;
-        }
-
-        leaf vnffgd-rsp-id-ref {
-          description
-              "Identifier for the VNFFG Descriptor RSP reference";
-          type leafref {
-            path "/nsd:nsd-catalog/nsd:nsd/nsd:vnffgd"
-                + "[nsd:id = current()/../../nsr:vnffgd-id-ref]"
-                + "/nsd:rsp/nsd:id";
-          }
-        }
-
-        leaf vnffgd-rsp-name-ref {
-          description
-              "Name for the VNFFG Descriptor RSP reference";
-          type leafref {
-            path "/nsd:nsd-catalog/nsd:nsd/nsd:vnffgd"
-                + "[nsd:id = current()/../../nsr:vnffgd-id-ref]"
-                + "/nsd:rsp[nsd:id=current()/../vnffgd-rsp-id-ref]"
-                + "/nsd:name";
-          }
-        }
-
-        leaf classifier-name {
-          type string;
-        }
-
-        leaf path-id {
-          description
-              "Unique Identifier for the service path";
-          type uint32;
-        }
-
-        list vnfr-connection-point-ref {
-          key "hop-number";
-          leaf hop-number {
-            description
-                "Monotonically increasing number to show service path hop
-                order";
-            type uint8;
-          }
-          leaf service-function-type {
-            description
-                "Type of Service Function.
-                NOTE: This needs to map with Service Function Type in ODL to
-                support VNFFG. Service Function Type is manadatory param in ODL
-                SFC. This is temporarily set to string for ease of use";
-            type string;
-          }
-
-          leaf member-vnf-index-ref {
-            type uint64;
-          }
-          leaf vnfd-id-ref {
-            description
-                "Reference to VNF Descriptor Id";
-            type string;
-          }
-          leaf vnfr-id-ref {
-            description
-                "A reference to a vnfr id";
-                type leafref {
-                  path "/vnfr:vnfr-catalog/vnfr:vnfr/vnfr:id";
-                }
-          }
-          leaf vnfr-name-ref {
-            description
-                "A reference to a vnfr name";
-                type leafref {
-                  path "/vnfr:vnfr-catalog/vnfr:vnfr/vnfr:name";
-                }
-          }
-          leaf vnfr-connection-point-ref {
-            description
-                "A reference to a vnfr connection point.";
-            type leafref {
-              path "/vnfr:vnfr-catalog/vnfr:vnfr"
-                 + "[vnfr:id = current()/../nsr:vnfr-id-ref]"
-                 + "/vnfr:connection-point/vnfr:name";
-            }
-          }
-          leaf service-index {
-            description
-                "Location within the service path";
-            type uint8;
-          }
-          container connection-point-params {
-            leaf mgmt-address {
-              type inet:ip-address;
-            }
-            leaf name {
-              type string;
-            }
-            leaf port-id {
-              //rwpb:field-inline "true";
-              //rwpb:field-string-max 64;
-              type string;
-            }
-            leaf vm-id {
-              //rwpb:field-inline "true";
-              //rwpb:field-string-max 64;
-              type string;
-            }
-            leaf address {
-              type inet:ip-address;
-            }
-            leaf port {
-              type inet:port-number;
-            }
-          }
-
-          container service-function-forwarder {
-            leaf name {
-              description
-                  "Service Function Forwarder name";
-              type string;
-            }
-            leaf ip-address {
-              description
-                  "Data Plane IP Address of the SFF";
-              type inet:ip-address;
-            }
-            leaf port {
-              description
-                  "Data Plane Port of the SFF";
-              type inet:port-number;
-            }
-          }
-        }
-      }
-
-      list classifier {
-          key "id";
-
-          leaf id {
-            description
-                "Identifier for the classifier rule.";
-            type yang:uuid;
-          }
-          leaf name {
-            description
-                "Name of the classifier.";
-            type string;
-          }
-          leaf rsp-id-ref {
-            description
-                "A reference to the RSP.";
-            type leafref {
-              path "../../nsr:rsp/nsr:id";
-            }
-          }
-          leaf rsp-name {
-            description
-              "Name for the RSP";
-            type string;
-          }
-          leaf vnfr-id-ref {
-            description
-                "A reference to a vnfr id";
-                type leafref {
-                  path "/vnfr:vnfr-catalog/vnfr:vnfr/vnfr:id";
-                }
-          }
-          leaf vnfr-name-ref {
-            description
-                "A reference to a vnfr name";
-                type leafref {
-                  path "/vnfr:vnfr-catalog/vnfr:vnfr/vnfr:name";
-                }
-          }
-          leaf vnfr-connection-point-ref {
-            description
-                "A reference to a vnfr connection point.";
-            type leafref {
-              path "/vnfr:vnfr-catalog/vnfr:vnfr"
-                 + "[vnfr:id = current()/../nsr:vnfr-id-ref]"
-                 + "/vnfr:connection-point/vnfr:name";
-            }
-          }
-          leaf port-id {
-            //rwpb:field-inline "true";
-            //rwpb:field-string-max 64;
-            type string;
-          }
-          leaf vm-id {
-            //rwpb:field-inline "true";
-            //rwpb:field-string-max 64;
-            type string;
-          }
-          leaf ip-address {
-            type string;
-          }
-          leaf sff-name {
-            type string;
-          }
-      }
-    }
-  }
-
-  container ns-instance-opdata {
-    config false;
-
-    list nsr {
-      key "ns-instance-config-ref";
-
-      leaf ns-instance-config-ref {
-        type leafref {
-          path "/nsr:ns-instance-config/nsr:nsr/nsr:id";
-        }
-      }
-
-      leaf name-ref {
-        description "Network service name reference";
-        type leafref {
-          path "/nsr:ns-instance-config/nsr:nsr/nsr:name";
-        }
-      }
-
-      leaf nsd-ref {
-        description "Network service descriptor id reference";
-        type leafref {
-          path "/nsd:nsd-catalog/nsd:nsd/nsd:id";
-        }
-      }
-
-      leaf nsd-name-ref {
-        description "Network service descriptor name reference";
-        type leafref {
-          path "/nsd:nsd-catalog/nsd:nsd/nsd:name";
-        }
-      }
-
-      leaf create-time {
-        description
-          "Creation timestamp of this Network Service.
-          The timestamp is expressed as seconds
-          since unix epoch - 1970-01-01T00:00:00Z";
-
-        type uint32;
-      }
-
-      list connection-point {
-        description
-            "List for external connection points.
-            Each NS has one or more external connection points.
-            As the name implies that external connection points
-            are used for connecting the NS to other NS or to
-            external networks. Each NS exposes these connection
-            points to the orchestrator. The orchestrator can
-            construct network service chains by connecting the
-            connection points between different NS.";
-
-        key "name";
-        leaf name {
-          description
-              "Name of the NS connection point.";
-          type string;
-        }
-
-        leaf type {
-          description
-              "Type of the connection point.";
-          type manotypes:connection-point-type;
-        }
-      }
-
-      list vlr {
-        key "vlr-ref";
-        leaf vlr-ref {
-          description
-              "Reference to a VLR record in the VLR catalog";
-          type leafref {
-            path "/vlr:vlr-catalog/vlr:vlr/vlr:id";
-          }
-        }
-
-
-        list vnfr-connection-point-ref {
-          description
-            "A list of references to connection points.";
-          key "vnfr-id";
-
-          leaf vnfr-id {
-            description "A reference to a vnfr";
-            type leafref {
-              path "/vnfr:vnfr-catalog/vnfr:vnfr/vnfr:id";
-            }
-          }
-
-          leaf connection-point {
-            description
-                "A reference to a connection point name in a vnfr";
-            type leafref {
-              path "/vnfr:vnfr-catalog/vnfr:vnfr"
-                 + "[vnfr:id = current()/../nsr:vnfr-id]"
-                 + "/vnfr:connection-point/vnfr:name";
-            }
-          }
-        }
-      }
-
-      list constituent-vnfr-ref {
-        description
-            "List of VNFRs that are part of this
-             network service.";
-        key "vnfr-id";
-
-        leaf vnfr-id {
-          description "Reference to the VNFR id";
-          type leafref {
-            path "/vnfr:vnfr-catalog/vnfr:vnfr/vnfr:id";
-          }
-        }
-      }
-
-      list scaling-group-record {
-        description "List of scaling group records";
-        key "scaling-group-name-ref";
-
-        leaf scaling-group-name-ref {
-          description "name of the scaling group";
-          type leafref {
-            path "/nsd:nsd-catalog/nsd:nsd"+
-                 "[nsd:id = current()/../../nsr:nsd-ref]" +
-                 "/nsd:scaling-group-descriptor/nsd:name";
-          }
-        }
-
-        list instance {
-          description "Reference to scaling group instance record";
-          key "instance-id";
-          leaf instance-id {
-            description "Scaling group instance id";
-            type uint16;
-          }
-
-          leaf is-default {
-            description "Flag indicating whether this instance was part of
-                default scaling group (and thus undeletable)";
-            type boolean;
-          }
-
-          leaf op-status {
-            description
-              "The operational status of the NS instance
-                init                : The scaling group has just started.
-                vnf-init-phase      : The VNFs in the scaling group are being instantiated.
-                running             : The scaling group  is in running state.
-                terminate           : The scaling group is being terminated.
-                vnf-terminate-phase : The VNFs in the scaling group are being terminated.
-                terminated          : The scaling group  is in the terminated state.
-                failed              : The scaling group instantiation failed.
-              ";
-
-            type enumeration {
-              enum init;
-              enum vnf-init-phase;
-              enum running;
-              enum terminate;
-              enum vnf-terminate-phase;
-              enum terminated;
-              enum failed;
-            }
-          }
-
-          leaf create-time {
-            description
-              "Creation timestamp of this scaling group record.
-              The timestamp is expressed as seconds
-              since unix epoch - 1970-01-01T00:00:00Z";
-
-              type uint32;
-          }
-
-          leaf-list vnfrs {
-            description "Reference to VNFR within the scale instance";
-            type leafref {
-              path "../../../constituent-vnfr-ref/vnfr-id";
-            }
-          }
-        }
-      }
-
-      uses vnffgr;
-
-      leaf operational-status {
-        description
-          "The operational status of the NS instance
-            init                : The network service has just started.
-            vl-init-phase       : The VLs in the NS are being instantiated.
-            vnf-init-phase      : The VNFs in the NS are being instantiated.
-            running             : The NS is in running state.
-            terminate           : The NS is being terminated.
-            vnf-terminate-phase : The NS is terminating the VNFs in the NS.
-            vl-terminate-phase  : The NS is terminating the VLs in the NS.
-            terminated          : The NS is in the terminated state.
-            failed              : The NS instantiation failed.
-            scaling-out         : The NS is scaling out
-            scaling-in          : The NS is scaling in
-          ";
-
-        type enumeration {
-          enum init;
-          enum vl-init-phase;
-          enum vnf-init-phase;
-          enum running;
-          enum terminate;
-          enum vnf-terminate-phase;
-          enum vl-terminate-phase;
-          enum terminated;
-          enum failed;
-          enum scaling-out;
-          enum scaling-in;
-        }
-      }
-
-      leaf config-status {
-        description
-          "The configuration status of the NS instance
-            configuring: At least one of the VNFs in this instance is in configuring state
-            configured:  All the VNFs in this NS instance are configured or config-not-needed state
-          ";
-        type config-states;
-      }
-
-      uses manotypes:monitoring-param;
-      uses manotypes:config-primitive;
-
-      list vnf-monitoring-param {
-        description
-          "List of VNF monitoring params.";
-
-        key "vnfr-id-ref";
-
-        leaf vnfr-id-ref {
-          description
-            "Reference to vnfr-id";
-          type leafref {
-            path "/vnfr:vnfr-catalog/vnfr:vnfr/vnfr:id";
-          }
-        }
-
-        uses manotypes:monitoring-param;
-      }
-
-      list config-agent-job {
-        key "job-id";
-
-        leaf job-id {
-          description "config agent job Identifier for the NS.";
-          type uint64;
-        }
-
-        leaf job-name {
-          description "Config agent job name";
-          type string;
-        }
-
-        leaf job-status {
-          description
-              "Job status to be set based on each VNF primitive execution,
-               pending  - if at least one VNF is in pending state
-                          and remaining VNFs are in success state.
-               Success  - if all VNF executions are in success state
-               failure  - if one of the VNF executions is failure";
-          type enumeration {
-            enum pending;
-            enum success;
-            enum failure;
-          }
-        }
-
-        list vnfr {
-          key "id";
-          leaf id {
-            description "Identifier for the VNFR.";
-            type yang:uuid;
-          }
-          leaf vnf-job-status {
-            description
-                "Job status to be set based on each VNF primitive execution,
-                 pending  - if at least one primitive is in pending state
-                            and remaining primitives are in success state.
-                 Success  - if all primitive executions are in success state
-                 failure  - if one of the primitive executions is failure";
-            type enumeration {
-              enum pending;
-              enum success;
-              enum failure;
-            }
-          }
-          list primitive {
-            key "name";
-            leaf name {
-              description "the name of the primitive";
-              type string;
-            }
-            leaf execution-id {
-              description "Execution id of the primitive";
-              type string;
-            }
-            leaf execution-status {
-              description "status of the Execution";
-              type enumeration {
-                enum pending;
-                enum success;
-                enum failure;
-              }
-            }
-            leaf execution-error-details {
-              description "Error details if execution-status is failure";
-              type string;
-            }
-          }
-        }
-      }
-    }
-  }
-
-  rpc get-ns-config-primitive-values {
-    description "Executes a VNF configuration primitive";
-    input {
-      leaf nsr_id_ref {
-        description "Reference to NSR ID ref";
-        mandatory true;
-        type leafref {
-          path "/nsr:ns-instance-config/nsr:nsr/nsr:id";
-        }
-      }
-
-      leaf name {
-        description "Name of the NS config primitive group";
-        mandatory true;
-        type string;
-      }
-    }
-
-    output {
-      list ns-parameter {
-        description "Automatically generated parameter";
-        key "name";
-
-        leaf name {
-          description "Parameter name which should be pulled from a parameter pool";
-          type string;
-        }
-        leaf value {
-          description "Automatically generated value";
-          type string;
-        }
-      }
-
-      list ns-parameter-group {
-        description "Automatically generated parameters in parameter group";
-        key "name";
-        leaf name {
-          description "Parameter group name";
-          type string;
-        }
-        list parameter {
-          description "Automatically generated group parameter";
-          key "name";
-
-          leaf name {
-            description "Parameter name which should be pulled from a parameter pool";
-            type string;
-          }
-          leaf value {
-            description "Automatically generated value";
-            type string;
-          }
-        }
-      }
-
-      list vnf-primitive-group {
-        description
-            "List of configuration primitives grouped by VNF.";
-
-        key "member-vnf-index-ref";
-        leaf member-vnf-index-ref {
-          description
-              "Reference to member-vnf within constituent-vnfds";
-          type uint64;
-        }
-
-        leaf vnfd-id-ref {
-          description
-              "A reference to a vnfd. This is a
-               leafref to path:
-                   ../../../../nsd:constituent-vnfd
-                   + [nsd:id = current()/../nsd:id-ref]
-                   + /nsd:vnfd-id-ref
-               NOTE: An issue with confd is preventing the
-               use of xpath. Seems to be an issue with leafref
-               to leafref, whose target is in a different module.
-               Once that is resovled this will switched to use
-               leafref";
-
-          type string;
-        }
-
-        list primitive {
-          key "index";
-          leaf index {
-            description "Index of this primitive";
-            type uint32;
-          }
-
-          leaf name {
-            description "Name of the primitive associated with a value pool";
-            type string;
-          }
-
-          list parameter {
-            description "Automatically generated parameter";
-            key "name";
-
-            leaf name {
-              description "Parameter name which should be pulled from a parameter pool";
-              type string;
-            }
-            leaf value {
-              description "Automatically generated value";
-              type string;
-            }
-          }
-        }
-      }
-    }
-  }
-
-  rpc exec-ns-config-primitive {
-    description "Executes a NS configuration primitive or script";
-
-    input {
-      leaf name {
-        description "Name of the primitive";
-        type string;
-      }
-
-      leaf nsr_id_ref {
-        description "Reference to NSR ID ref";
-        type leafref {
-          path "/nsr:ns-instance-config/nsr:nsr/nsr:id";
-        }
-      }
-
-      list parameter {
-        description
-            "List of NS Primitive parameters";
-        key "name";
-        leaf name {
-          description
-              "Name of the parameter.";
-          type string;
-        }
-
-        leaf value {
-          description
-              "Value associated with the name.";
-          type string;
-        }
-      }
-
-      list parameter-group {
-        description
-            "List of NS Primitive parameter groups";
-        key "name";
-        leaf name {
-          description
-              "Name of the parameter.";
-          type string;
-        }
-
-        list parameter {
-          description
-              "List of NS parameter group parameters";
-          key "name";
-          leaf name {
-            description
-                "Name of the parameter.";
-            type string;
-          }
-
-          leaf value {
-            description
-                "Value associated with the name.";
-            type string;
-          }
-        }
-      }
-
-      list vnf-list {
-        description
-            "List of VNFs whose primitives are being set.";
-        key "member_vnf_index_ref";
-
-        leaf member_vnf_index_ref {
-          description "Member VNF index";
-          type uint64;
-        }
-
-        leaf vnfr-id-ref {
-          description
-              "A reference to a vnfr. This is a
-               leafref to path";
-          type yang:uuid;
-        }
-
-        list vnf-primitive {
-          description
-              "List of configuration primitives supported by the
-            configuration agent for this VNF.";
-          key "index";
-
-          leaf index {
-            description
-                "index of the configuration primitive.";
-            type uint32;
-          }
-          leaf name {
-            description
-                "Name of the configuration primitive.";
-            type string;
-          }
-
-          list parameter {
-            description
-                "List of parameters to the configuration primitive.";
-            key "name";
-            leaf name {
-              description
-                  "Name of the parameter.";
-              type string;
-            }
-
-            leaf value {
-              description
-                  "Value associated with the name.";
-              type string;
-            }
-          }
-        }
-      }
-      leaf user-defined-script {
-        description
-            "A user defined script.";
-        type string;
-      }
-    }
-    output {
-      leaf job-id {
-        description "Job identifier for this RPC";
-        type uint64;
-      }
-
-      leaf name {
-        description "Name of the config";
-        type string;
-      }
-
-      leaf nsr_id_ref {
-        description "Reference to NSR ID ref";
-        type leafref {
-          path "/nsr:ns-instance-config/nsr:nsr/nsr:id";
-        }
-      }
-
-      list vnf-out-list {
-        description
-            "List of VNFs whose primitives were set.";
-        key "member_vnf_index_ref";
-
-        leaf member_vnf_index_ref {
-          description "Member VNF index";
-          type uint64;
-        }
-        leaf vnfr-id-ref {
-          description
-              "A reference to a vnfr. This is a
-               leafref to path";
-          type yang:uuid;
-        }
-
-        list vnf-out-primitive {
-          description
-              "List of configuration primitives supported by the
-            configuration agent for this VNF.";
-          key "index";
-
-          leaf index {
-            description
-                "index of the configuration primitive.";
-            type uint32;
-          }
-
-          leaf name {
-            description
-                "Name of the configuration primitive.";
-            type string;
-          }
-
-          leaf execution-id {
-            description "Execution id of this primitive";
-            type string;
-          }
-
-          leaf execution-status {
-            description "Status of the execution of this primitive";
-            type string;
-          }
-        }
-      }
-    }
-  }
-}
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/pnfd.yang.src b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/pnfd.yang.src
deleted file mode 100755 (executable)
index 32b2ed8..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-
-/*
- * STANDARD_RIFT_IO_COPYRIGHT
- *
- */
-
-module pnfd
-{
-  namespace "urn:ietf:params:xml:ns:yang:nfvo:pnfd";
-  prefix "pnfd";
-
-  import rw-pb-ext {
-    prefix "rwpb";
-  }
-
-  import ietf-inet-types {
-    prefix "inet";
-  }
-
-  import ietf-yang-types {
-    prefix "yang";
-  }
-
-  import mano-types {
-    prefix "manotypes";
-  }
-
-  revision 2015-09-10 {
-    description
-      "Initial revision. This YANG file defines 
-       the Physical Network Function Descriptor (PNFD)";
-    reference
-      "Derived from earlier versions of base YANG files";
-  }
-
-  container pnfd-catalog {
-
-    list pnfd {
-      key "id";
-
-      leaf id {
-        description "Identifier for the PNFD.";
-        type yang:uuid;
-      }
-
-      leaf name {
-        description "PNFD name.";
-        type string;
-      }
-
-      leaf short-name {
-        description "PNFD short name.";
-        type string;
-      }
-
-      leaf vendor {
-        description "Vendor of the PNFD.";
-        type string;
-      }
-
-      leaf description {
-        description "Description of the PNFD.";
-        type string;
-      }
-
-      leaf version {
-        description "Version of the PNFD";
-        type string;
-      }
-
-      list connection-point {
-        description
-            "List for external connection points. Each PNF has one or more external
-            connection points.";
-        key "id";
-        leaf id {
-          description
-              "Identifier for the external connection points";
-          type uint64;
-        }
-
-        leaf cp-type {
-          description
-              "Type of the connection point.";
-          type manotypes:connection-point-type;
-        }
-      }
-    }
-  }
-}
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw-nsd.yang.src b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw-nsd.yang.src
deleted file mode 100755 (executable)
index f113f57..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-
-/*
- * STANDARD_RIFT_IO_COPYRIGHT
- *
- */
-
-module rw-nsd
-{
-  namespace "http://riftio.com/ns/riftware-1.0/rw-nsd";
-  prefix "rw-nsd";
-
-  import nsd {
-    prefix "nsd";
-  }
-
-  import ietf-yang-types {
-    prefix "yang";
-  }
-
-  import mano-types {
-    prefix "manotypes";
-  }
-
-  revision 2015-09-10 {
-    description
-      "Initial revision. This YANG file augments
-       the base MANO NSD";
-    reference
-      "Derived from earlier versions of base YANG files";
-  }
-
-  augment /nsd:nsd-catalog/nsd:nsd {
-    uses manotypes:control-param;
-    uses manotypes:action-param;
-    leaf meta {
-      description
-        "Any meta-data needed by the UI";
-      type string;
-    }
-  }
-}
-
-// vim: sw=2
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw-nsr.yang.src b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw-nsr.yang.src
deleted file mode 100755 (executable)
index 1605f21..0000000
+++ /dev/null
@@ -1,292 +0,0 @@
-
-/*
- * STANDARD_RIFT_IO_COPYRIGHT
- *
- */
-
-module rw-nsr
-{
-  namespace "http://riftio.com/ns/riftware-1.0/rw-nsr";
-  prefix "rw-nsr";
-
-  import mano-types {
-    prefix "manotypes";
-  }
-
-  import nsr {
-    prefix "nsr";
-  }
-
-  import nsd {
-    prefix "nsd";
-  }
-
-  import rw-cloud {
-    prefix "rw-cloud";
-  }
-
-  import ietf-yang-types {
-    prefix "yang";
-  }
-
-  revision 2015-09-10 {
-    description
-      "Initial revision. This YANG file augments
-       the base MANO VNFD";
-    reference
-      "Derived from earlier versions of base YANG files";
-  }
-
-  grouping operational-events {
-    list operational-events {
-      key "id";
-      description
-        "Recent operational events for this network service.
-        Though the model does not impose any restrictions on the numbe of events, 
-        the max operational events will be limited to the most recent 10"; 
-
-      leaf id {
-        description "The id of the instance";
-        type uint64;
-      }
-
-      leaf timestamp {
-        description
-          "The timestamp of this event expressed as seconds since
-          unix epoch - 1970-01-01T00:00:00Z";
-        type uint32;
-      }
-      leaf event {
-        description "Short description of the event";
-        type string;
-      }
-      leaf description {
-        description
-          "The description of this event";
-        type string;
-      }
-    }
-  }
-
-  grouping nsd-ref-count {
-    list nsd-ref-count {
-      key "nsd-id-ref";
-      description "This table maintains the number of NSRs used by each NSD";
-
-      leaf nsd-id-ref {
-        description "Reference to NSD";
-        type leafref {
-          path "/nsd:nsd-catalog/nsd:nsd/nsd:id";
-        }
-      }
-      leaf instance-ref-count {
-        description
-          "Reference count for the number of NSRs refering this NSD.
-           Every NS record instantiated using this descriptor takes
-           a reference on the NSD and releases the reference when the
-           network service is terminated. This desciptor cannot be
-           deleted when this counter is non zero";
-        type uint64;
-      }
-    }
-  }
-
-  augment /nsr:ns-instance-config/nsr:nsr {
-    leaf cloud-account {
-      description
-        "The configured cloud account which the NSR is instantiated within.
-         All VDU's, Virtual Links, and provider networks will be requested
-         using the cloud-account's associated CAL instance";
-      type leafref {
-        path "/rw-cloud:cloud/rw-cloud:account/rw-cloud:name";
-      }
-    }
-
-    leaf om-datacenter {
-      description
-        "Openmano datacenter name to use when instantiating
-         the network service.  This is only used when openmano
-         is selected as the cloud account.  This should be superceded
-         by multiple cloud accounts when that becomes available.";
-      type string;
-    }
-  }
-
-  augment /nsr:ns-instance-opdata/nsr:nsr {
-    uses manotypes:action-param;
-    uses manotypes:control-param;
-
-    leaf cloud-account {
-      description
-        "The configured cloud account which the NSR is instantiated within.
-         All VDU's, Virtual Links, and provider networks will be requested
-         using the cloud-account's associated CAL instance";
-      type leafref {
-        path "/rw-cloud:cloud/rw-cloud:account/rw-cloud:name";
-      }
-    }
-
-    container nfvi-metrics {
-      container vm {
-        leaf label {
-          description
-            "Label to show in UI";
-          type string;
-          default "VM";
-        }
-
-        leaf active-vm {
-          description
-            "The number of active VMs.";
-          type uint64;
-        }
-
-        leaf inactive-vm {
-          description
-            "The number of inactive VMs.";
-          type uint64;
-        }
-      }
-
-      uses manotypes:nfvi-metrics;
-    }
-
-    container epa-param {
-      container ovs-acceleration {
-        leaf label {
-          description
-            "Label to show in UI for the param";
-          type string;
-          default "OVS ACCELERATION";
-        }
-
-        leaf vm {
-          description
-            "Number of VMs with the EPA attribute";
-          type uint64;
-        }
-
-        leaf unit {
-          description
-            "Unit label to show in the UI";
-          type string;
-          default "vms";
-        }
-      }
-
-      container ovs-offload {
-        leaf label {
-          description
-            "Label to show in UI for the param";
-          type string;
-          default "OVS OFFLOAD";
-        }
-
-        leaf vm {
-          description
-            "Number of VMs with the EPA attribute";
-          type uint64;
-        }
-
-        leaf unit {
-          description
-            "Unit label to show in the UI";
-          type string;
-          default "vms";
-        }
-
-      }
-
-      container ddio {
-        leaf label {
-          description
-            "Label to show in UI for the param";
-          type string;
-          default "DDIO";
-        }
-
-        leaf vm {
-          description
-            "Number of VMs with the EPA attribute";
-          type uint64;
-        }
-
-        leaf unit {
-          description
-            "Unit label to show in the UI";
-          type string;
-          default "vms";
-        }
-
-      }
-
-      container cat {
-        leaf label {
-          description
-            "Label to show in UI for the param";
-          type string;
-          default "CAT";
-        }
-
-        leaf vm {
-          description
-            "Number of VMs with the EPA attribute";
-          type uint64;
-        }
-
-        leaf unit {
-          description
-            "Unit label to show in the UI";
-          type string;
-          default "vms";
-        }
-      }
-
-      container cmt {
-        leaf label {
-          description
-            "Label to show in UI for the param";
-          type string;
-          default "CMT";
-        }
-
-        leaf vm {
-          description
-            "Number of VMs with the EPA attribute";
-          type uint64;
-        }
-
-        leaf unit {
-          description
-            "Unit label to show in the UI";
-          type string;
-          default "vms";
-        }
-
-      }
-    }
-    uses operational-events;
-  }
-
-  augment /nsr:ns-instance-opdata {
-    uses nsd-ref-count;
-  }
-
-  augment /nsr:ns-instance-opdata/nsr:nsr/nsr:vlr {
-    leaf assigned-subnet {
-      description "Subnet added for the VL";
-      type string;
-    }
-  }
-
-  augment /nsr:ns-instance-config {
-    leaf nfvi-polling-period {
-      description
-        "Defines the period (secons) that the NFVI metrics are polled at";
-      type uint64;
-      default 4;
-    }
-  }
-}
-
-// vim: sw=2
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw-pb-ext.yang.src b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw-pb-ext.yang.src
deleted file mode 100755 (executable)
index 1b90153..0000000
+++ /dev/null
@@ -1,358 +0,0 @@
-/* STANDARD_RIFT_IO_COPYRIGHT */
-
-/**
- * @file rw-pb-ext.yang
- * @author Tim Mortsolf, Anil Gunturu, Tom Seidenberg
- * @date 2013/03/21
- * @brief RiftWare yang to protobuf conversion extensions
- */
-
-module rw-pb-ext
-{
-  namespace "http://riftio.com/ns/riftware-1.0/rw-pb-ext";
-  prefix "rwpb";
-
-  revision 2014-03-28 {
-    description
-      "Initial revision.";
-    reference
-      "RIFT yang extensions for converting yang files to Google
-      Protocol Buffers (protobuf) using rift protoc-c extensions.";
-  }
-
-  extension msg-new {
-    argument "typename";
-    description
-      "Generate an equivalent, top-level, protobuf message for this
-      container, list, rpc input, rpc output, or notification.  The
-      argument is the name of the protobuf message type.  Allowed
-      values are valid C identifiers.
-
-      The protobuf definition will only be generated when processing
-      the same module that defines the yang object - a duplicate will
-      not be generated when importing reusing a yang object via uses,
-      or when importing the module.";
-  }
-
-  extension msg-name {
-    argument "typename";
-    description
-      "Change the name of an embedded protobuf message type for this
-      container or list.  Allowed values are valid C identifiers.
-
-      In lieu of this extension, embedded protobuf message typenames
-      are based on the fieldname, and further mangled by removing
-      underscores and CamelCased at underscore boundaries.  This
-      extension allows the automatic mangling procedure to be
-      overridden.
-
-      This extension is incompatible with msg-new, which already
-      defines the typename for top-level messages.  Use this extension
-      solely for embedded messages.";
-  }
-
-  extension msg-flat {
-    argument "selection";
-    description
-      "Set the protobuf message rw_msgopts flat option on a container
-      or list statement.  Allowed values are 'true', 'false', and
-      'auto'.  The default is 'false' for top-level messages, and
-      'auto' for embedded messages.  If 'auto' is specified, the
-      behavior is the same as the enclosing container or list.
-
-      Unless overridden, this extension effectively applies to all
-      enclosed descendent container and list statements.  Flatness will
-      be required by the protobuf compilation step.";
-  }
-
-  extension msg-tag-base {
-    argument "value";
-    description
-      "Specify a base tag value for a container, list, grouping, or
-      uses statement.  Field tags may be specified relative to this
-      base.  Allowed values are positive
-      decimal integers.";
-    // ATTN:  would really like to specify field-relative in uses!
-  }
-
-/*
-  extension msg-tag-reserve {
-    argument "value";
-    description
-      "Reserve space in the tag numbering for future expansion of the
-      enclosing grouping, container, or choice.  Must be a positive
-      decimal integer.  Choose carefully, as you cannot increase the
-      value at a later time.";
-  }
-*/
-
-  extension msg-proto-max-size {
-    argument "value";
-    description
-      "Specify the maximum size of this message in the C structure or
-      so in bytes.  Allowed values are positive decimal integers.";
-  }
-
-  extension msg-typedef {
-    argument "typename";
-    description
-      "Create a prototbuf-c message typedef for the original, base
-      definition of the container, list, grouping, rpc input, rpc
-      output, or notification.  Allowed values are valid C identifiers.
-
-      typename will be appended to the mangeled protobuf package name
-      and an underscore, to ensure name uniqueness across the global
-      schema.
-
-      The typedef will only be generated when processing
-      the same module that defines the yang object - a duplicate will
-      not be generated when importing reusing a yang object via uses,
-      or when importing the module.";
-  }
-
-  extension field-name {
-    argument "fieldname";
-    description
-      "Change the name of the element to fieldname, when converting the
-      object to protobuf.  Allowed values are valid C identifiers.
-
-      In lieu of this extension, element names will be used as-is, if
-      possible, or mangled to fit in the C identifier character space
-      (invalid C identifier characters will be replaced with
-      underscore).  This extension allows the automatic mangling
-      procedure to be overridden.";
-  }
-
-  extension field-inline {
-    argument "selection";
-    description
-      "Set the protobuf field 'inline' option on a container, list,
-      leaf-list, or leaf statement.  Allowed values are 'true',
-      'false', and 'auto'.  If 'auto' is specified, the behavior is
-      controlled by the enclosing container or list's protobuf-msg-flat
-      setting.
-
-      When applied to a container or list statement, this extension is
-      inherited by all enclosed objects, unless overridden.";
-  }
-
-  extension field-inline-max {
-    argument "limit";
-    description
-      "Set the protobuf field 'inline_max' option for list and
-      leaf-list statements.  Allowed values are a positive decimal
-      integer, 'yang', or 'none'.  Example limits:
-
-        '64'
-        'yang'
-        'none'
-
-      If 'none' is specified, then the inline_max protobuf extension
-      will not be used.
-
-      If 'yang' is specified, then the number of elements specified in
-      the yang 'max-elements' statement is used.  If there is no
-      'max-elements' statement, the behavior defaults to 'none'.
-
-      If a decimal integer is specified, that number is used as the
-      maximum length.
-
-      If this extension is not specified, the behavior defaults to
-      'yang'.  Descendant list and leaf-list objects do not inherit
-      this extension.";
-  }
-
-  extension field-string-max {
-    argument "limit";
-    description
-      "Set the protobuf field 'string_max' option for a leaf or
-      leaf-list of type string, binary, leafref, identityref, or
-      instance-identifier.  Allowed values are a positive decimal
-      integer, 'yang', or 'none'.  An optional encoding specifier may
-      also be specified, as octet or utf8, which specifies how
-      characters are counted.  If specified, the encoding must come
-      first.  Example limits:
-
-        'octet 64'
-        'utf8 20'
-        'utf8 yang'
-        'utf8'
-        '128'
-        'none'
-
-      If 'none' is specified, then the string_max protobuf extension
-      will not be used.  'none' cannot be combined with 'octet' or
-      'utf8'.
-
-      If 'yang' is specified, the yang type must be string or binary.
-      If the yang type includes the length statement, then the
-      statements maximum length is used as the length.  Otherwise,
-      behavior defaults to 'none'.
-
-      If a decimal integer is specified, that number is used as the
-      length.
-
-      The encoding specifiers are used to determine the actual number
-      of bytes used in the protobuf extension.  If the 'octet'
-      specifier is used, then the maximum length is used literally as
-      the byte length.  If the 'utf8' specified is used, then the
-      maximum length is considered to be in terms of worst-case UTF-8
-      characters, in which case the protobuf byte length will actually
-      be 4 times the specified length.
-
-      For string and binary types, the default encoding is 'octet'.
-      For the remaining types, the default encoding is 'utf8',
-      reflecting those types fundemental description as XML entities
-      assumed to be encoded in UTF-8.
-
-      If this extension is not specified, then the default is 'yang'
-      for string and binary, and 'none' for the other types.  This
-      extension cannot be specified on aggregate objects, and so it
-      cannot be inherited.";
-  }
-
-  extension field-tag {
-    argument "value";
-    description
-      "Set the protobuf field tag.  Allowed values are a positive
-      decimal integer, 'auto', a base-relative addition expression, or
-      a field-relative addition expression.
-
-      If a decimal integer is specified, then the tag is set to the
-      specified number.  You should avoid using this form in a
-      grouping, because you may not be able to guarantee uniqueness
-      across all the uses of the group.  However, the syntax will be
-      allowed.
-
-      A base-relative addition expression allows the tag of a field to
-      be defined in terms of the base tag of an enclosing grouping,
-      container, list, or uses statement.  The expression has the form
-      '+NUMBER', where NUMBER is the value to add to the base to derive
-      the current field's tag.
-
-      A field-relative addition expression allows the tag of one field
-      to be defined in terms of another field.  The expression has the
-      form 'NAME+NUMBER', where NAME is the name of the other field,
-      and NUMBER is the value to add to the other fields tag to derive
-      the current field's tag.
-
-      If this extension is not specified, the default behavior is
-      'auto'.";
-  }
-
-  extension field-type {
-    argument "type";
-    description
-      "Override the default protobuf field type mapping for a leaf or
-      leaf-list type, and use the specified protobuf type instead.
-
-      Allowed values are any of the Protobuf scalar types, as
-      restricted by the yang leaf type:
-
-      +---------------------------+-------------------------------+
-      | (pseudo) yang leaf type   | (pseudo) protobuf scalar type |
-      |---------------------------+-------------------------------+
-      | int8, int16, int32        | int32, sint32, sfixed32, auto |
-      +---------------------------+-------------------------------+
-      | int64                     | int64, sint64, sfixed64, auto |
-      +---------------------------+-------------------------------+
-      | uint8, uint16, uint32     | uint32, fixed32, auto         |
-      +---------------------------+-------------------------------+
-      | uint64                    | uint64, fixed64, auto         |
-      +---------------------------+-------------------------------+
-      | decimal                   | uint64, sint64, int64,        |
-      |                           | fixed64, sfixed64,            |
-      |                           | float, double, auto           |
-      +---------------------------+-------------------------------+
-      | empty, boolean            | bool, auto                    |
-      +---------------------------+-------------------------------+
-      | string, leafref,          | string, auto                  |
-      | identityref,              |                               |
-      | instance-identifier,      |                               |
-      | anyxml                    |                               |
-      +---------------------------+-------------------------------+
-      | bits, binary              | bytes, auto                   |
-      +---------------------------+-------------------------------+
-
-      If 'auto' is specified, the default conversion will be used.  The
-      protobuf pseudo-type utf8 is equivalent to string, except that
-      length limits will be adjusted in protobuf extentions to allow
-      the string to be composed entirely of the maximum sized UTF-8
-      multibyte characters (byte length is 4 times larger than the
-      character length).";
-  }
-
-  extension field-c-type {
-    argument "type";
-    description
-      "Override the default protoc-c C-language type mapping for a leaf
-      or leaf-list type, and use the specified C type instead.";
-  }
-
-  /* ATTN: Stop using this extension? */
-  extension package-name {
-    argument "pkgname";
-    description
-      "Specifies the name of the package name in the generated .proto
-      file on a module statement The argument is the name of the
-      package-name.  Allowed values are valid C identifiers When
-      package-name is not specified the generated package name defaults
-      to the Yang module name";
-  }
-
-  extension application-request-point {
-    description
-      "This extension is used temporarily until the config and data portions
-       are split into different namespaces and keyspecs. This allows
-       applications to provide data at a keyspec, and request config at a
-       different level";
-  }
-
-  extension enum-name {
-    argument "enumname";
-    description
-      "Use the specified name for the enum enumerator in the .proto
-      instead of the default mangled name of the yang identifer.
-      If there is a name conflict with other enum name either specified
-      explicitly or generated one, the yangpbc conversion will fail.
-      Allowed values are valid C identifiers.";
-  }
-
-  extension enum-type {
-    argument "enumtypename";
-    description
-      "Use the specified name for the enum type in the .proto instead
-      of the default mangled name of the yang identifier.  If there is
-      a name conflict with another enum type, either auto-generated or
-      explicitly specified one, the yangpbc conversion will fail.
-      Allowed values are valid C identifiers.";
-  }
-
-  extension file-pbc-include {
-    argument "pathstring";
-    description
-      "A module level extension to specify the include files for pb-c.h
-      when any rift specific c-types are used.  This extension can
-      occur multiple times as a child of module statement.  The value
-      should be a valid path string.";
-  }
-
-  extension field-merge-behavior {
-    argument "value";
-    description
-      "An extension for controlling the merge done for listy types
-       during upacking of protobuf. It can take 3 different value:
-       
-       1) default: The default is whatever protobuf-c does today 
-          (for keyed lists, the default is equivalent to by-keys).
-
-       2) by-keys: allowed on keyed lists (and leaf-lists): merge 
-          elements with matching key.
-
-       3) none: allowed on keyed lists (and leaf-lists): do not 
-          attempt to merge elements. This must ONLY be used when it 
-          is known or expected that the proto message would contain
-          large number of list items.";
-  }
-
-} // rw-pb-ext
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw-topology.yang.src b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw-topology.yang.src
deleted file mode 100755 (executable)
index 6b2e957..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-
-/*
- * STANDARD_RIFT_IO_COPYRIGHT
- *
- */
-
-module rw-topology {
-    namespace "http://riftio.com/ns/riftware-1.0/rw-topology";
-    prefix rw-topology;
-
-    import ietf-inet-types {prefix inet;}
-    import ietf-network {prefix nw;}
-    import ietf-network-topology {prefix nt;}
-    import ietf-l2-topology {prefix l2t;}
-
-    revision "2015-10-20" {
-        description "Initial revision of IP level addressing for L2 host topology";
-    }
-
-    grouping  ip-address-group  {
-      description "IP addresses if present for L2 termination points";
-      container ip-attributes {
-        description "L2 termination points containing IP addresses";
-        list ip-addresses {
-          key ip;
-          leaf ip {
-            type inet:ip-address;
-            description "IPv4 or IPv6 address";
-          }
-        }
-      }
-    } // grouping  ip-address-group
-
-
-    grouping rw-network-attributes {
-      description "RW Topology scope attributes";
-      container rw-network-attributes {
-        description "Containing RW network attributes";
-        leaf name {
-          type string;
-          description "Name of the RW Topology network";
-        }
-        leaf sdn-account-name {
-          type string;
-          description "Name of the SDN account from which topology is got"; 
-        }
-      }
-    }
-
-    grouping  rw-node-attributes {
-      description "RW node attributes";
-      container rw-node-attributes {
-        description "Containing RW node attributes";
-        leaf name {
-          type string;
-          description "Node name";
-        }
-        leaf ovs-bridge-name {
-          type string;
-         description "Name of OVS bridge";
-        } 
-      }
-    }
-
-    grouping rw-link-attributes {
-      description "RW link attributes";
-      container rw-link-attributes {
-        description "Containing RW link attributes";
-        leaf name {
-          type string;
-          description "Link name";
-        }
-      }
-    }
-
-    grouping rw-termination-point-attributes {
-      description "RW termination point attributes";
-      container rw-termination-point-attributes {
-        description "Containing RW TP attributes";
-        leaf description {
-          type string;
-          description "Port description";
-        }
-        uses ip-address-group;
-      }
-    }
-
-    augment "/nw:network" {
-      description
-        "Configuration parameters for the RW network
-         as a whole";
-      uses rw-network-attributes;
-    }
-
-    augment "/nw:network/nw:node" {
-      description
-        "Configuration parameters for RW at the node
-         level";
-      uses rw-node-attributes;
-    }
-
-    augment "/nw:network/nt:link" {
-      description "Augment RW topology link information";
-      uses rw-link-attributes;
-    }
-
-    augment "/nw:network/nw:node/nt:termination-point" {
-      description
-        "Augment RW topology termination point configuration";
-      uses rw-termination-point-attributes;
-    }
-}
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw-vld.yang.src b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw-vld.yang.src
deleted file mode 100755 (executable)
index e6d9cef..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-
-/*
- * STANDARD_RIFT_IO_COPYRIGHT
- *
- */
-
-module rw-vld
-{
-  namespace "http://riftio.com/ns/riftware-1.0/rw-vld";
-  prefix "rw-vld";
-
-  import vld {
-    prefix "vld";
-  }
-
-  revision 2015-09-10 {
-    description
-      "Initial revision. This YANG file augments
-       the base MANO VLD";
-    reference
-      "Derived from earlier versions of base YANG files";
-  }
-}
-
-// vim: sw=2
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw-vlr.yang.src b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw-vlr.yang.src
deleted file mode 100755 (executable)
index 53b74d4..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-
-/*
- * STANDARD_RIFT_IO_COPYRIGHT
- *
- */
-
-module rw-vlr
-{
-  namespace "http://riftio.com/ns/riftware-1.0/rw-vlr";
-  prefix "rw-vlr";
-
-  import mano-types {
-    prefix "manotypes";
-  }
-
-  import vlr {
-    prefix "vlr";
-  }
-
-  import rw-cloud {
-    prefix "rwcloud";
-  }
-
-  import ietf-yang-types {
-    prefix "yang";
-  }
-
-  revision 2015-09-30 {
-    description
-      "Initial revision. This YANG file augments
-       the base MANO VNFD";
-    reference
-      "Derived from earlier versions of base YANG files";
-  }
-
-  augment /vlr:vlr-catalog/vlr:vlr {
-    leaf cloud-account {
-      description
-        "The cloud account to use when requesting resources for
-         this vlr";
-      type leafref {
-        path "/rwcloud:cloud/rwcloud:account/rwcloud:name";
-      }
-    }
-
-    leaf network_pool {
-      description "The network pool the resource was allocated from.";
-      type string;
-    }
-
-    leaf assigned-subnet {
-      description "Subnet added for the VL";
-      type string;
-    }
-  }
-}
-
-// vim: sw=2
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw-vnfd.yang.src b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw-vnfd.yang.src
deleted file mode 100755 (executable)
index 08db3c1..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-
-/*
- * STANDARD_RIFT_IO_COPYRIGHT
- *
- */
-
-module rw-vnfd
-{
-  namespace "http://riftio.com/ns/riftware-1.0/rw-vnfd";
-  prefix "rw-vnfd";
-
-  import vnfd {
-    prefix "vnfd";
-  }
-
-  import rwvcs-types {
-    prefix "rwvcstypes";
-  }
-
-  import rw-pb-ext { prefix "rwpb"; }
-
-  import ietf-yang-types {
-    prefix "yang";
-  }
-
-  import mano-types {
-    prefix "manotypes";
-  }
-
-  revision 2015-09-10 {
-    description
-      "Initial revision. This YANG file augments
-       the base MANO VNFD";
-    reference
-      "Derived from earlier versions of base YANG files";
-  }
-
-  augment /vnfd:vnfd-catalog/vnfd:vnfd {
-    uses manotypes:control-param;
-    uses manotypes:action-param;
-    leaf meta {
-      description
-        "Any meta-data needed by the UI";
-      type string;
-    }
-    list component {
-      description
-          "This section defines the RIFT.ware
-           virtual components";
-      key "component-name";
-      //rwpb:msg-new VcsComponent;
-      //rwpb:application-request-point;
-
-      leaf component-name {
-        description "";
-        type string;
-      }
-
-      leaf component-type {
-        description "";
-        type rwvcstypes:component_type;
-        mandatory true;
-      }
-
-      choice component {
-        case rwvcs-rwcollection {
-          uses rwvcstypes:rwvcs-rwcollection;
-        }
-        case rwvcs-rwvm {
-          uses rwvcstypes:rwvcs-rwvm;
-        }
-        case rwvcs-rwproc {
-          uses rwvcstypes:rwvcs-rwproc;
-        }
-        case native-proc {
-          uses rwvcstypes:native-proc;
-        }
-        case rwvcs-rwtasklet {
-          uses rwvcstypes:rwvcs-rwtasklet;
-        }
-      }
-    } // list component
-  }
-
-  augment /vnfd:vnfd-catalog/vnfd:vnfd/vnfd:vdu {
-    leaf vcs-component-ref {
-      description
-          "This defines the software components using the
-           RIFT.ware Virtual Component System (VCS). This
-           also allows specifying a state machine during
-           the VM startup.
-           NOTE: This is an significant addition to MANO,
-           since MANO doesn't clearly specify a method to
-           identify various software components in a VM.
-           Also using a state machine is not something that
-           is well described in MANO.";
-      type leafref {
-        path "/vnfd:vnfd-catalog/vnfd:vnfd/rw-vnfd:component/rw-vnfd:component-name";
-      }
-    }
-  }
-}
-// vim: sw=2
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw-vnfr.yang.src b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw-vnfr.yang.src
deleted file mode 100755 (executable)
index c596eb6..0000000
+++ /dev/null
@@ -1,259 +0,0 @@
-
-/*
- * STANDARD_RIFT_IO_COPYRIGHT
- *
- */
-
-module rw-vnfr
-{
-  namespace "http://riftio.com/ns/riftware-1.0/rw-vnfr";
-  prefix "rw-vnfr";
-
-  import mano-types {
-    prefix "manotypes";
-  }
-
-  import rw-pb-ext { prefix "rwpb"; }
-
-  import vnfr {
-    prefix "vnfr";
-  }
-
-  import vnfd {
-    prefix "vnfd";
-  }
-
-  import rw-cloud {
-    prefix "rwcloud";
-  }
-
-  import rwvcs-types {
-    prefix "rwvcstypes";
-  }
-
-  import ietf-yang-types {
-    prefix "yang";
-  }
-
-  revision 2015-09-10 {
-    description
-      "Initial revision. This YANG file augments
-       the base MANO VNFD";
-    reference
-      "Derived from earlier versions of base YANG files";
-  }
-
-  grouping vnfr-operational-events {
-    list operational-events {
-      key "id";
-      description
-        "Recent operational events for VNFR
-        Though the model does not impose any restrictions on the numbe of events, 
-        the max operational events will be limited to the most recent 10"; 
-
-      leaf id {
-        description "The id of the instance";
-        type uint64;
-      }
-
-      leaf timestamp {
-        description
-          "The timestamp of this event expressed as seconds since
-          unix epoch - 1970-01-01T00:00:00Z";
-        type uint32;
-      }
-      leaf event {
-        description "The event";
-        type enumeration {
-          //rwpb:enum-type "VnfrOperationalEvent";
-          enum instantiate-rcvd;
-          enum vl-inited;
-          enum vnf-inited;
-          enum running;
-          enum terminate-rcvd;
-          enum vnf-terminated;
-          enum vl-terminated;
-          enum terminated;
-        }
-      }
-      leaf description {
-        description
-          "The description of this event";
-        type string;
-      }
-    }
-  }
-
-  grouping vdur-operational-events {
-    list operational-events {
-      key "id";
-      description
-        "Recent operational events for VDUR
-        Though the model does not impose any restrictions on the numbe of events, 
-        the max operational events will be limited to the most recent 10"; 
-
-      leaf id {
-        description "The id of the instance";
-        type uint64;
-      }
-
-      leaf timestamp {
-        description
-          "The timestamp of this event expressed as seconds since
-          unix epoch - 1970-01-01T00:00:00Z";
-        type uint32;
-      }
-      leaf event {
-        description "The event";
-        type enumeration {
-          //rwpb:enum-type "VdurOperationalEvent";
-          enum instantiate-rcvd;
-          enum vm-allocation-requested;
-          enum running;
-          enum terminate-rcvd;
-          enum vm-terminate-requested;
-          enum terminated;
-        }
-      }
-      leaf description {
-        description
-          "The description of this event";
-        type string;
-      }
-    }
-  }
-
-  augment /vnfr:vnfr-catalog/vnfr:vnfr {
-    uses manotypes:action-param;
-    uses manotypes:control-param;
-
-    leaf cloud-account {
-      description
-        "The cloud account to use when requesting resources for
-         this vnf";
-      type leafref {
-        path "/rwcloud:cloud/rwcloud:account/rwcloud:name";
-      }
-    }
-
-    container nfvi-metrics {
-      container vm {
-        leaf label {
-          description
-            "Label to show in UI";
-          type string;
-          default "VM";
-        }
-
-        leaf active-vm {
-          description
-            "The number of active VMs.";
-          type uint64;
-        }
-
-        leaf inactive-vm {
-          description
-            "The number of inactive VMs.";
-          type uint64;
-        }
-      }
-      
-      uses manotypes:nfvi-metrics;
-    }
-
-    list component {
-      description
-          "This section defines the RIFT.ware
-           virtual components";
-      key "component-name";
-      //rwpb:msg-new VcsComponentOp;
-      //rwpb:application-request-point;
-
-      leaf component-name {
-        description "";
-        type string;
-      }
-
-      leaf component-type {
-        description "";
-        type rwvcstypes:component_type;
-        mandatory true;
-      }
-
-      choice component {
-        case rwvcs-rwcollection {
-          uses rwvcstypes:rwvcs-rwcollection;
-        }
-        case rwvcs-rwvm {
-          uses rwvcstypes:rwvcs-rwvm;
-        }
-        case rwvcs-rwproc {
-          uses rwvcstypes:rwvcs-rwproc;
-        }
-        case native-proc {
-          uses rwvcstypes:native-proc;
-        }
-        case rwvcs-rwtasklet {
-          uses rwvcstypes:rwvcs-rwtasklet;
-        }
-      }
-    } // list component
-    uses vnfr-operational-events;
-  }
-
-  augment /vnfr:vnfr-catalog/vnfr:vnfr/vnfr:vdur {
-    leaf vm-pool {
-      description
-        "The pool from which this vm was allocated from";
-      type string;
-    }
-
-    container nfvi-metrics {
-      uses manotypes:nfvi-metrics;
-    }
-
-    leaf vcs-component-ref {
-      description
-          "This defines the software components using the
-           RIFT.ware Virtual Component System (VCS). This
-           also allows specifying a state machine during
-           the VM startup.
-           NOTE: This is an significant addition to MANO,
-           since MANO doesn't clearly specify a method to
-           identify various software components in a VM.
-           Also using a state machine is not something that
-           is well described in MANO.";
-      type leafref {
-        path "/vnfr:vnfr-catalog/vnfr:vnfr/rw-vnfr:component/rw-vnfr:component-name";
-      }
-    }
-    uses vdur-operational-events;
-  }
-  grouping vnfd-ref-count {
-    list vnfd-ref-count {
-      key "vnfd-id-ref";
-      description "This table maintains the number of VNFRs used by each VNFD";
-
-      leaf vnfd-id-ref {
-        description "Reference to VNFD";
-        type leafref {
-          path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id";
-        }
-      }
-      leaf instance-ref-count {
-        description
-          "Reference count for the number of VNFRs refering this VNFD.
-           Every VNF Record instantiated using this descriptor takes
-           a reference on the VNFD and releases the reference when the
-           virtual network service is terminated. This desciptor cannot
-           be deleted when this counter is non zero";
-        type uint64;
-      }
-    }
-  }
-  augment /vnfr:vnfr-catalog {
-    uses vnfd-ref-count;
-  }
-}
-
-// vim: sw=2
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw-yang-types.yang.src b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw-yang-types.yang.src
deleted file mode 100755 (executable)
index bbf7962..0000000
+++ /dev/null
@@ -1,265 +0,0 @@
-/* STANDARD_RIFT_IO_COPYRIGHT */
-
-/**
- * @file rw-yang-types.yang
- * @author Tom Seidenberg
- * @date 2014/04/01
- * @brief RiftWare yang type overrides
- *
- * These typedefs exist to allow RiftWare to specify special extensions
- * to the types.
- */
-
-module rw-yang-types
-{
-  namespace "http://riftio.com/ns/riftware-1.0/rw-yang-types";
-  prefix "rwt";
-
-  import ietf-inet-types {
-    prefix "inet";
-    revision-date 2013-07-15;
-  }
-
-  import ietf-yang-types {
-    prefix "ietf-yang-types";
-    revision-date 2013-07-15;
-  }
-
-  description
-   "This module contains redefinitions of the ietf-yang-types and
-   ietf-inet-types modules, which allows customized extensions to be
-   defined for these types when used in RiftWare applications.";
-
-  revision 2014-04-01 {
-    description
-      "Initial revision.";
-    reference
-      "RIFT yang types that redefine the IETF types.";
-  }
-
-
-  /* ietf-inet-types */
-
-  typedef ip-version {
-    type inet:ip-version;
-  }
-
-  typedef dscp {
-    type inet:dscp;
-  }
-
-  typedef ipv6-flow-label {
-    type inet:ipv6-flow-label;
-  }
-
-  typedef port-number {
-    type inet:port-number;
-  }
-
-  typedef as-number {
-    type inet:as-number;
-  }
-
-  typedef ip-address {
-    type inet:ip-address;
-  }
-
-  typedef ipv4-address {
-    type inet:ipv4-address;
-  }
-
-  typedef ipv6-address {
-    type inet:ipv6-address;
-  }
-
-  typedef ip-address-no-zone {
-    type inet:ip-address-no-zone;
-  }
-
-  typedef ipv4-address-no-zone {
-    type inet:ipv4-address-no-zone;
-  }
-
-  typedef ipv6-address-no-zone {
-    type inet:ipv6-address-no-zone;
-  }
-
-  typedef ip-prefix {
-    type inet:ip-prefix;
-  }
-
-  typedef ip-prefix-non-canonical {
-    type union {
-      type rwt:ipv4-prefix-non-canonical;
-      type rwt:ipv6-prefix-non-canonical;
-    }
-    description
-      "The ip-prefix type represents an IP prefix and is IP
-      version neutral.  The format of the textual representations
-      implies the IP version.";
-  }
-
-  typedef ipv4-prefix {
-    type inet:ipv4-prefix;
-  }
-
-  typedef ipv4-prefix-non-canonical {
-    type string {
-      pattern
-         '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
-       +  '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
-       + '/(([0-9])|([1-2][0-9])|(3[0-2]))';
-    }
-    description
-     "The ipv4-prefix type represents an IPv4 address prefix.
-      The prefix length is given by the number following the
-      slash character and must be less than or equal to 32.
-
-      A prefix length value of n corresponds to an IP address
-      mask that has n contiguous 1-bits from the most
-      significant bit (MSB) and all other bits set to 0.";
-  }
-
-  typedef ipv6-prefix {
-    type inet:ipv6-prefix;
-  }
-
-  typedef ipv6-prefix-non-canonical {
-    type string {
-      pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}'
-            + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|'
-            + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}'
-            + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))'
-            + '(/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))';
-      pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|'
-            + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)'
-            + '(/.+)';
-    }
-    description
-     "The ipv6-prefix type represents an IPv6 address prefix.
-      The prefix length is given by the number following the
-      slash character and must be less than or equal to 128.
-
-      A prefix length value of n corresponds to an IP address
-      mask that has n contiguous 1-bits from the most
-      significant bit (MSB) and all other bits set to 0.
-
-      The IPv6 address should have all bits that do not belong
-      to the prefix set to zero.";
-  }
-
-
-  typedef domain-name {
-    type inet:domain-name;
-  }
-
-  typedef host {
-    type inet:host;
-  }
-
-  typedef uri {
-    type inet:uri;
-  }
-
-
-  /* ietf-yang-types */
-
-  typedef counter32 {
-    type ietf-yang-types:counter32;
-  }
-
-  typedef zero-based-counter32 {
-    type ietf-yang-types:zero-based-counter32;
-  }
-
-  typedef counter64 {
-    type ietf-yang-types:counter64;
-  }
-
-  typedef zero-based-counter64 {
-    type ietf-yang-types:zero-based-counter64;
-  }
-
-  typedef gauge32 {
-    type ietf-yang-types:gauge32;
-  }
-
-  typedef gauge64 {
-    type ietf-yang-types:gauge64;
-  }
-
-  typedef object-identifier {
-    type ietf-yang-types:object-identifier;
-  }
-
-  typedef object-identifier-128 {
-    type ietf-yang-types:object-identifier-128;
-  }
-
-  typedef yang-identifier {
-    type ietf-yang-types:yang-identifier;
-  }
-
-  typedef date-and-time {
-    type ietf-yang-types:date-and-time;
-  }
-
-  typedef timeticks {
-    type ietf-yang-types:timeticks;
-  }
-
-  typedef timestamp {
-    type ietf-yang-types:timestamp;
-  }
-
-  typedef phys-address {
-    type ietf-yang-types:phys-address;
-  }
-
-  typedef mac-address {
-    type ietf-yang-types:mac-address;
-  }
-
-  typedef xpath1.0 {
-    type ietf-yang-types:xpath1.0;
-  }
-
-  typedef hex-string {
-    type ietf-yang-types:hex-string;
-  }
-
-  typedef uuid {
-    type ietf-yang-types:uuid;
-  }
-
-  typedef dotted-quad {
-    type ietf-yang-types:dotted-quad;
-  }
-
-  typedef call-id {
-    type string {
-      pattern '[0-9]{1,20}:[0-9]{1,20}';
-    }
-  }
-
-  typedef base64-binary {
-    type string {
-      pattern '[0-9a-zA-Z+/]{4,}[=]{0,2}';
-    }
-  }
-  typedef hex-binary {
-    type string {
-      pattern '[0-9A-Fa-f]{2}([0-9A-Fa-f]{2})*';
-    }
-
-  }
-
-  typedef rw-ip-protocol{
-      type enumeration {
-          enum icmp { value 1; }
-          enum tcp  { value 6; }
-          enum udp  { value 17; }
-          enum gre  { value 47; }
-      }
-  }
-}
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw.nsd-yang.json b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw.nsd-yang.json
deleted file mode 100644 (file)
index d2f1d34..0000000
+++ /dev/null
@@ -1,3788 +0,0 @@
-{
- "synth": "source",
- "name": "rw-nsd",
- "schema": {
-  "module": {
-   "rw-nsd": {
-    "namespace": "http://riftio.com/ns/riftware-1.0/rw-nsd",
-    "prefix": "rw-nsd",
-    "import": {
-     "nsd": {
-      "prefix": "nsd"
-     },
-     "ietf-yang-types": {
-      "prefix": "yang"
-     },
-     "mano-types": {
-      "prefix": "manotypes"
-     }
-    },
-    "revision": {
-     "2015-09-10": {
-      "description": "Initial revision. This YANG file augments\nthe base MANO NSD",
-      "reference": "Derived from earlier versions of base YANG files"
-     }
-    },
-    "augment": {
-     "/nsd:nsd-catalog/nsd:nsd": {
-      "uses": {},
-      "leaf": {
-       "meta": {
-        "description": "Any meta-data needed by the UI",
-        "type": "string"
-       },
-       "logo": {
-        "description": "Vendor logo for the Network Service",
-        "type": "string"
-       }
-      },
-      "list": {
-       "control-param": {
-        "description": "List of control parameters to manage and\nupdate the running configuration of the VNF",
-        "key": "id",
-        "leaf": {
-         "id": {
-          "type": "string"
-         },
-         "name": {
-          "type": "string"
-         },
-         "description": {
-          "type": "string"
-         },
-         "group-tag": {
-          "description": "A simple tag to group control parameters",
-          "type": "string"
-         },
-         "min-value": {
-          "description": "Minimum value for the parameter",
-          "type": "uint64"
-         },
-         "max-value": {
-          "description": "Maxium value for the parameter",
-          "type": "uint64"
-         },
-         "current-value": {
-          "description": "Current value for the parameter",
-          "type": "uint64"
-         },
-         "step-value": {
-          "description": "Step value for the parameter",
-          "type": "uint64"
-         },
-         "units": {
-          "type": "string"
-         },
-         "widget-type": {
-          "type": "manotypes:widget-type"
-         },
-         "url": {
-          "description": "This is the URL where to perform the operation",
-          "type": "inet:uri"
-         },
-         "method": {
-          "description": "This is the method to be performed at the uri.\nPOST by default for action",
-          "type": "manotypes:http-method",
-          "default": "POST"
-         },
-         "payload": {
-          "description": "This is the operation payload or payload template as stringified\nJSON. This field provides the data  to be sent for this operation\ncall",
-          "type": "string"
-         }
-        }
-       },
-       "action-param": {
-        "description": "List of action parameters to\ncontrol VNF",
-        "key": "id",
-        "leaf": {
-         "id": {
-          "type": "string"
-         },
-         "name": {
-          "type": "string"
-         },
-         "description": {
-          "type": "string"
-         },
-         "group-tag": {
-          "description": "A simple tag to group monitoring parameter",
-          "type": "string"
-         },
-         "url": {
-          "description": "This is the URL where to perform the operation",
-          "type": "inet:uri"
-         },
-         "method": {
-          "description": "This is the method to be performed at the uri.\nPOST by default for action",
-          "type": "manotypes:http-method",
-          "default": "POST"
-         },
-         "payload": {
-          "description": "This is the operation payload or payload template to be sent in\nthe data for this operation call",
-          "type": "string"
-         }
-        }
-       }
-      }
-     }
-    }
-   }
-  }
- },
- "dependencies": {
-  "nsd": {
-   "module": {
-    "nsd": {
-     "namespace": "urn:ietf:params:xml:ns:yang:nfvo:nsd",
-     "prefix": "nsd",
-     "import": {
-      "rw-pb-ext": {
-       "prefix": "rwpb"
-      },
-      "vld": {
-       "prefix": "vld"
-      },
-      "vnfd": {
-       "prefix": "vnfd"
-      },
-      "ietf-inet-types": {
-       "prefix": "inet"
-      },
-      "ietf-yang-types": {
-       "prefix": "yang"
-      },
-      "mano-types": {
-       "prefix": "manotypes"
-      }
-     },
-     "revision": {
-      "2014-10-27": {
-       "description": "Initial revision. This YANG file defines\nthe Network Service Descriptor (NSD)",
-       "reference": "Derived from earlier versions of base YANG files"
-      }
-     },
-     "typedef": {
-      "parameter-data-type": {
-       "type": {
-        "enumeration": {
-         "enum": {
-          "string": null,
-          "integer": null,
-          "boolean": null
-         }
-        }
-       }
-      }
-     },
-     "grouping": {
-      "primitive-parameter": {
-       "leaf": {
-        "name": {
-         "description": "Name of the parameter.",
-         "type": "string"
-        },
-        "data-type": {
-         "description": "Data type associated with the name.",
-         "type": "parameter-data-type"
-        },
-        "mandatory": {
-         "description": "Is this field mandatory",
-         "type": "boolean",
-         "default": "false"
-        },
-        "default-value": {
-         "description": "The default value for this field",
-         "type": "string"
-        },
-        "parameter-pool": {
-         "description": "NSD Parameter pool name to use for this paramter",
-         "type": "string"
-        }
-       }
-      },
-      "vnf-configuration": {
-       "container": {
-        "vnf-configuration": {
-         "description": "Information regarding the VNF configuration\nis captured here. Note that if the NS contains\nmultiple instances of the same VNF, each instance\nof the VNF may have different configuration",
-         "leaf": {
-          "config-type": {
-           "description": "Must use this configuration type and fill in only pertaining\nconfig-method below",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "none": null,
-              "netconf": null,
-              "rest": null,
-              "script": null,
-              "juju": null
-             }
-            }
-           }
-          },
-          "config-template": {
-           "description": "Configuration template for each VNF",
-           "type": "string"
-          }
-         },
-         "choice": {
-          "config-method": {
-           "description": "Defines the configuration method for the VNF.",
-           "case": {
-            "netconf": {
-             "description": "Use NETCONF for configuring the VNF.",
-             "container": {
-              "netconf": {
-               "leaf": {
-                "target": {
-                 "description": "Netconf configuration target",
-                 "type": {
-                  "enumeration": {
-                   "enum": {
-                    "running": null,
-                    "candidate": null
-                   }
-                  }
-                 }
-                },
-                "protocol": {
-                 "description": "Protocol to use for netconf (e.g. ssh)",
-                 "type": {
-                  "enumeration": {
-                   "enum": {
-                    "None": null,
-                    "ssh": null
-                   }
-                  }
-                 }
-                },
-                "port": {
-                 "description": "Port for the netconf server.",
-                 "type": "inet:port-number"
-                }
-               }
-              }
-             }
-            },
-            "rest": {
-             "description": "Use REST for configuring the VNF.",
-             "container": {
-              "rest": {
-               "leaf": {
-                "port": {
-                 "description": "Port for the REST server.",
-                 "type": "inet:port-number"
-                }
-               }
-              }
-             }
-            },
-            "script": {
-             "description": "Use custom script for configuring the VNF.\nThis script is executed in the context of\nOrchestrator.",
-             "container": {
-              "script": {
-               "leaf": {
-                "script-type": {
-                 "description": "Script type - currently supported : bash, expect",
-                 "type": {
-                  "enumeration": {
-                   "enum": {
-                    "bash": null,
-                    "expect": null
-                   }
-                  }
-                 }
-                }
-               }
-              }
-             }
-            },
-            "juju": {
-             "description": "Configure the VNF through Juju.",
-             "container": {
-              "juju": {
-               "leaf": {
-                "charm": {
-                 "description": "Juju charm to use with the VNF.",
-                 "type": "string"
-                }
-               }
-              }
-             }
-            }
-           }
-          }
-         },
-         "container": {
-          "config-access": {
-           "leaf": {
-            "mgmt-ip-address": {
-             "description": "IP address to be used to configure this VNF,\noptional if it is possible to resolve dynamically.",
-             "type": "inet:ip-address"
-            },
-            "username": {
-             "description": "username for configuration.",
-             "type": "string"
-            },
-            "password": {
-             "description": "Password for configuration access authentication.",
-             "type": "string"
-            }
-           }
-          },
-          "input-params": {
-           "description": "Miscelaneous input parameters to be considered\nwhile processing the NSD to apply configuration",
-           "leaf": {
-            "config-priority": {
-             "description": "Configuration priority - order of confgiration\nto be applied to each VNF in this NS,\nlow number gets precedence over high number",
-             "type": "uint64"
-            },
-            "config-delay": {
-             "description": "Wait (seconds) before applying the configuration to VNF",
-             "type": "uint64"
-            }
-           }
-          }
-         },
-         "list": {
-          "config-primitive": {
-           "description": "List of configuration primitives supported by the\nconfiguration agent for this VNF.",
-           "key": "name",
-           "leaf": {
-            "name": {
-             "description": "Name of the configuration primitive.",
-             "type": "string"
-            }
-           },
-           "list": {
-            "parameter": {
-             "description": "List of parameters to the configuration primitive.",
-             "key": "name",
-             "uses": "primitive-parameter"
-            }
-           }
-          },
-          "initial-config-primitive": {
-           "description": "Initial set of configuration primitives.",
-           "key": "seq",
-           "leaf": {
-            "seq": {
-             "description": "Sequence number for the configuration primitive.",
-             "type": "uint64"
-            },
-            "name": {
-             "description": "Name of the configuration primitive.",
-             "type": "string"
-            }
-           },
-           "list": {
-            "parameter": {
-             "key": "name",
-             "leaf": {
-              "name": {
-               "type": "string"
-              },
-              "value": {
-               "type": "string"
-              }
-             }
-            }
-           }
-          }
-         }
-        }
-       }
-      }
-     },
-     "container": {
-      "nsd-catalog": {
-       "list": {
-        "nsd": {
-         "key": "id",
-         "leaf": {
-          "id": {
-           "description": "Identifier for the NSD.",
-           "type": "yang:uuid"
-          },
-          "name": {
-           "description": "NSD name.",
-           "mandatory": "true",
-           "type": "string"
-          },
-          "short-name": {
-           "description": "NSD short name.",
-           "type": "string"
-          },
-          "vendor": {
-           "description": "Vendor of the NSD.",
-           "type": "string"
-          },
-          "description": {
-           "description": "Description of the NSD.",
-           "type": "string"
-          },
-          "version": {
-           "description": "Version of the NSD",
-           "type": "string"
-          }
-         },
-         "list": {
-          "connection-point": {
-           "description": "List for external connection points.\nEach NS has one or more external connection\npoints. As the name implies that external\nconnection points are used for connecting\nthe NS to other NS or to external networks.\nEach NS exposes these connection points to\nthe orchestrator. The orchestrator can\nconstruct network service chains by\nconnecting the connection points between\ndifferent NS.",
-           "key": "name",
-           "leaf": {
-            "name": {
-             "description": "Name of the NS connection point.",
-             "type": "string"
-            },
-            "type": {
-             "description": "Type of the connection point.",
-             "type": "manotypes:connection-point-type"
-            }
-           }
-          },
-          "vld": {
-           "description": "List of Virtual Link Descriptors.",
-           "key": "id",
-           "leaf": {
-            "id": {
-             "description": "Identifier for the VLD.",
-             "type": "yang:uuid"
-            },
-            "name": {
-             "description": "Virtual Link Descriptor (VLD) name.",
-             "type": "string"
-            },
-            "short-name": {
-             "description": "Short name for VLD for UI",
-             "type": "string"
-            },
-            "vendor": {
-             "description": "Provider of the VLD.",
-             "type": "string"
-            },
-            "description": {
-             "description": "Description of the VLD.",
-             "type": "string"
-            },
-            "version": {
-             "description": "Version of the VLD",
-             "type": "string"
-            },
-            "type": {
-             "type": "manotypes:virtual-link-type"
-            },
-            "root-bandwidth": {
-             "description": "For ELAN this is the aggregate bandwidth.",
-             "type": "uint64"
-            },
-            "leaf-bandwidth": {
-             "description": "For ELAN this is the bandwidth of branches.",
-             "type": "uint64"
-            }
-           },
-           "list": {
-            "vnfd-connection-point-ref": {
-             "description": "A list of references to connection points.",
-             "key": "member-vnf-index-ref",
-             "leaf": {
-              "member-vnf-index-ref": {
-               "description": "Reference to member-vnf within constituent-vnfds",
-               "type": {
-                "leafref": {
-                 "path": "../../../nsd:constituent-vnfd/nsd:member-vnf-index"
-                }
-               }
-              },
-              "vnfd-id-ref": {
-               "description": "A reference to a vnfd. This is a\nleafref to path:\n    ../../../nsd:constituent-vnfd\n    + [nsd:id = current()/../nsd:id-ref]\n    + /nsd:vnfd-id-ref\nNOTE: An issue with confd is preventing the\nuse of xpath. Seems to be an issue with leafref\nto leafref, whose target is in a different module.\nOnce that is resovled this will switched to use\nleafref",
-               "type": "yang:uuid"
-              },
-              "vnfd-connection-point-ref": {
-               "description": "A reference to a connection point name\nin a vnfd. This is a leafref to path:\n    /vnfd:vnfd-catalog/vnfd:vnfd\n    + [vnfd:id = current()/../nsd:vnfd-id-ref]\n    + /vnfd:connection-point/vnfd:name\nNOTE: An issue with confd is preventing the\nuse of xpath. Seems to be an issue with leafref\nto leafref, whose target is in a different module.\nOnce that is resovled this will switched to use\nleafref",
-               "type": "string"
-              }
-             }
-            }
-           },
-           "uses": "manotypes:provider-network"
-          },
-          "constituent-vnfd": {
-           "description": "List of VNFDs that are part of this\nnetwork service.",
-           "key": "member-vnf-index",
-           "leaf": {
-            "member-vnf-index": {
-             "description": "Identifier/index for the VNFD. This separate id\nis required to ensure that multiple VNFs can be\npart of single NS",
-             "type": "uint64"
-            },
-            "vnfd-id-ref": {
-             "description": "Identifier for the VNFD.",
-             "type": {
-              "leafref": {
-               "path": "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id"
-              }
-             }
-            }
-           },
-           "uses": "vnf-configuration"
-          },
-          "vnf-dependency": {
-           "description": "List of VNF dependencies.",
-           "key": "vnf-source-ref",
-           "leaf": {
-            "vnf-source-ref": {
-             "type": {
-              "leafref": {
-               "path": "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id"
-              }
-             }
-            },
-            "vnf-depends-on-ref": {
-             "description": "Reference to VNF that sorce VNF depends.",
-             "type": {
-              "leafref": {
-               "path": "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id"
-              }
-             }
-            }
-           }
-          },
-          "vnffgd": {
-           "description": "List of VNF Forwarding Graph Descriptors (VNFFGD).",
-           "key": "id",
-           "leaf": {
-            "id": {
-             "description": "Identifier for the VNFFGD.",
-             "type": "yang:uuid"
-            },
-            "name": {
-             "description": "VNFFGD name.",
-             "type": "string"
-            },
-            "short-name": {
-             "description": "Short name for VNFFGD for UI",
-             "type": "string"
-            },
-            "vendor": {
-             "description": "Provider of the VNFFGD.",
-             "type": "string"
-            },
-            "description": {
-             "description": "Description of the VNFFGD.",
-             "type": "string"
-            },
-            "version": {
-             "description": "Version of the VNFFGD",
-             "type": "string"
-            }
-           },
-           "list": {
-            "rsp": {
-             "description": "List of Rendered Service Paths (RSP).",
-             "key": "id",
-             "leaf": {
-              "id": {
-               "description": "Identifier for the RSP.",
-               "type": "yang:uuid"
-              },
-              "name": {
-               "description": "RSP name.",
-               "type": "string"
-              }
-             },
-             "list": {
-              "vnfd-connection-point-ref": {
-               "description": "A list of references to connection points.",
-               "key": "member-vnf-index-ref",
-               "leaf": {
-                "member-vnf-index-ref": {
-                 "description": "Reference to member-vnf within constituent-vnfds",
-                 "type": {
-                  "leafref": {
-                   "path": "../../../../nsd:constituent-vnfd/nsd:member-vnf-index"
-                  }
-                 }
-                },
-                "order": {
-                 "type": "uint8",
-                 "description": "A number that denotes the order of a VNF in a chain"
-                },
-                "vnfd-id-ref": {
-                 "description": "A reference to a vnfd. This is a\nleafref to path:\n    ../../../../nsd:constituent-vnfd\n    + [nsd:id = current()/../nsd:id-ref]\n    + /nsd:vnfd-id-ref\nNOTE: An issue with confd is preventing the\nuse of xpath. Seems to be an issue with leafref\nto leafref, whose target is in a different module.\nOnce that is resovled this will switched to use\nleafref",
-                 "type": "yang:uuid"
-                },
-                "vnfd-connection-point-ref": {
-                 "description": "A reference to a connection point name\nin a vnfd. This is a leafref to path:\n    /vnfd:vnfd-catalog/vnfd:vnfd\n    + [vnfd:id = current()/../nsd:vnfd-id-ref]\n    + /vnfd:connection-point/vnfd:name\nNOTE: An issue with confd is preventing the\nuse of xpath. Seems to be an issue with leafref\nto leafref, whose target is in a different module.\nOnce that is resovled this will switched to use\nleafref",
-                 "type": "string"
-                }
-               },
-               "list": {
-                "classifier": {
-                 "description": "List of classifier rules.",
-                 "key": "id",
-                 "leaf": {
-                  "id": {
-                   "description": "Identifier for the classifier rule.",
-                   "type": "yang:uuid"
-                  },
-                  "name": {
-                   "description": "Name of the classifier.",
-                   "type": "string"
-                  },
-                  "rsp-id-ref": {
-                   "description": "A reference to the RSP.",
-                   "type": {
-                    "leafref": {
-                     "path": "../../nsd:rsp/nsd:id"
-                    }
-                   }
-                  }
-                 },
-                 "container": {
-                  "match-attributes": {
-                   "description": "List of match attributes.",
-                   "leaf": {
-                    "ip-proto": {
-                     "description": "IP Protocol.",
-                     "type": "uint8"
-                    },
-                    "source-ip-address": {
-                     "description": "Source IP address.",
-                     "type": "inet:ip-address"
-                    },
-                    "destination-ip-address": {
-                     "description": "Destination IP address.",
-                     "type": "inet:ip-address"
-                    },
-                    "source-port": {
-                     "description": "Source port number.",
-                     "type": "inet:port-number"
-                    },
-                    "destination-port": {
-                     "description": "Destination port number.",
-                     "type": "inet:port-number"
-                    }
-                   }
-                  }
-                 }
-                }
-               }
-              }
-             }
-            }
-           }
-          },
-          "parameter-pool": {
-           "description": "Pool of parameter values which must be\npulled from during configuration",
-           "key": "name",
-           "leaf": {
-            "name": {
-             "description": "Name of the configuration value pool",
-             "type": "string"
-            }
-           },
-           "container": {
-            "range": {
-             "description": "Create a range of values to populate the pool with",
-             "leaf": {
-              "start-value": {
-               "description": "Generated pool values start at this value",
-               "type": "uint32",
-               "mandatory": "true"
-              },
-              "end-value": {
-               "description": "Generated pool values stop at this value",
-               "type": "uint32",
-               "mandatory": "true"
-              }
-             }
-            }
-           }
-          },
-          "config-primitive": {
-           "description": "Network service level configuration primitives.",
-           "key": "name",
-           "leaf": {
-            "name": {
-             "description": "Name of the configuration primitive.",
-             "type": "string"
-            },
-            "user-defined-script": {
-             "description": "A user defined script.",
-             "type": "string"
-            }
-           },
-           "list": {
-            "parameter": {
-             "description": "List of parameters to the configuration primitive.",
-             "key": "name",
-             "uses": "primitive-parameter"
-            },
-            "parameter-group": {
-             "description": "Grouping of parameters which are logically grouped in UI",
-             "key": "name",
-             "leaf": {
-              "name": {
-               "description": "Name of the parameter group",
-               "type": "string"
-              },
-              "mandatory": {
-               "description": "Is this parameter group mandatory",
-               "type": "boolean",
-               "default": "true"
-              }
-             },
-             "list": {
-              "parameter": {
-               "description": "List of parameters to the configuration primitive.",
-               "key": "name",
-               "uses": "primitive-parameter"
-              }
-             }
-            },
-            "vnf-primitive-group": {
-             "description": "List of configuration primitives grouped by VNF.",
-             "key": "member-vnf-index-ref",
-             "leaf": {
-              "member-vnf-index-ref": {
-               "description": "Reference to member-vnf within constituent-vnfds",
-               "type": "uint64"
-              },
-              "vnfd-id-ref": {
-               "description": "A reference to a vnfd. This is a\nleafref to path:\n    ../../../../nsd:constituent-vnfd\n    + [nsd:id = current()/../nsd:id-ref]\n    + /nsd:vnfd-id-ref\nNOTE: An issue with confd is preventing the\nuse of xpath. Seems to be an issue with leafref\nto leafref, whose target is in a different module.\nOnce that is resovled this will switched to use\nleafref",
-               "type": "string"
-              },
-              "vnfd-name": {
-               "description": "Name of the VNFD",
-               "type": "string"
-              }
-             },
-             "list": {
-              "primitive": {
-               "key": "index",
-               "leaf": {
-                "index": {
-                 "description": "Index of this primitive",
-                 "type": "uint32"
-                },
-                "name": {
-                 "description": "Name of the primitive in the VNF primitive ",
-                 "type": "string"
-                }
-               }
-              }
-             }
-            }
-           }
-          }
-         },
-         "leaf-list": {
-          "vld-ref": {
-           "type": {
-            "leafref": {
-             "path": "/vld:vld-catalog/vld:vld/vld:id"
-            }
-           }
-          }
-         },
-         "uses": {
-          "manotypes:monitoring-param": null,
-          "manotypes:input-parameter-xpath": null
-         }
-        }
-       }
-      }
-     }
-    }
-   }
-  },
-  "rw-pb-ext": {
-   "module": {
-    "rw-pb-ext": {
-     "namespace": "http://riftio.com/ns/riftware-1.0/rw-pb-ext",
-     "prefix": "rwpb",
-     "revision": {
-      "2014-03-28": {
-       "description": "Initial revision.",
-       "reference": "RIFT yang extensions for converting yang files to Google\nProtocol Buffers (protobuf) using rift protoc-c extensions."
-      }
-     }
-    }
-   }
-  },
-  "vld": {
-   "module": {
-    "vld": {
-     "namespace": "urn:ietf:params:xml:ns:yang:nfvo:vld",
-     "prefix": "vld",
-     "import": {
-      "rw-pb-ext": {
-       "prefix": "rwpb"
-      },
-      "vnfd": {
-       "prefix": "vnfd"
-      },
-      "ietf-inet-types": {
-       "prefix": "inet"
-      },
-      "ietf-yang-types": {
-       "prefix": "yang"
-      },
-      "mano-types": {
-       "prefix": "manotypes"
-      }
-     },
-     "revision": {
-      "2015-09-10": {
-       "description": "Initial revision. This YANG file defines\nthe Virtual Link Descriptor (VLD)",
-       "reference": "Derived from earlier versions of base YANG files"
-      }
-     },
-     "container": {
-      "vld-catalog": {
-       "list": {
-        "vld": {
-         "key": "id",
-         "leaf": {
-          "id": {
-           "description": "Identifier for the VLD.",
-           "type": "yang:uuid"
-          },
-          "name": {
-           "description": "Virtual Link Descriptor (VLD) name.",
-           "type": "string"
-          },
-          "short-name": {
-           "description": "Short name for VLD for UI",
-           "type": "string"
-          },
-          "vendor": {
-           "description": "Provider of the VLD.",
-           "type": "string"
-          },
-          "description": {
-           "description": "Description of the VLD.",
-           "type": "string"
-          },
-          "version": {
-           "description": "Version of the VLD",
-           "type": "string"
-          },
-          "type": {
-           "type": "manotypes:virtual-link-type"
-          },
-          "root-bandwidth": {
-           "description": "For ELAN this is the aggregate bandwidth.",
-           "type": "uint64"
-          },
-          "leaf-bandwidth": {
-           "description": "For ELAN this is the bandwidth of branches.",
-           "type": "uint64"
-          }
-         },
-         "list": {
-          "vnfd-connection-point-ref": {
-           "description": "A list of references to connection points.",
-           "key": "vnfd-ref member-vnf-index-ref",
-           "leaf": {
-            "vnfd-ref": {
-             "description": "A reference to a vnfd",
-             "type": {
-              "leafref": {
-               "path": "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id"
-              }
-             }
-            },
-            "member-vnf-index-ref": {
-             "description": "A reference to the consituent-vnfd id in nsd.\nShould have been a leafref to:\n '/nsd:nsd-catalog:/nsd:nsd/constituent-vnfd/member-vnf-index-ref'.\nInstead using direct leaf to avoid circular reference.",
-             "type": "uint64"
-            },
-            "vnfd-connection-point-ref": {
-             "description": "A reference to a connection point name in a vnfd",
-             "type": {
-              "leafref": {
-               "path": "/vnfd:vnfd-catalog/vnfd:vnfd[vnfd:id = current()/../vld:vnfd-ref]/vnfd:connection-point/vnfd:name"
-              }
-             }
-            }
-           }
-          }
-         },
-         "container": {
-          "provider-network": {
-           "description": "Container for the provider network.",
-           "leaf": {
-            "physical-network": {
-             "description": "Name of the phsyical network on which the provider\nnetwork is built.",
-             "type": "string"
-            },
-            "overlay-type": {
-             "description": "Type of the overlay network.",
-             "type": {
-              "enumeration": {
-               "enum": {
-                "LOCAL": {
-                 "value": 0
-                },
-                "FLAT": {
-                 "value": 1
-                },
-                "VLAN": {
-                 "value": 2
-                },
-                "VXLAN": {
-                 "value": 3
-                },
-                "GRE": {
-                 "value": 4
-                }
-               }
-              }
-             }
-            },
-            "segmentation_id": {
-             "description": "Segmentation ID",
-             "type": "uint32"
-            }
-           }
-          }
-         }
-        }
-       }
-      }
-     }
-    }
-   }
-  },
-  "vnfd": {
-   "module": {
-    "vnfd": {
-     "namespace": "urn:ietf:params:xml:ns:yang:nfvo:vnfd",
-     "prefix": "vnfd",
-     "import": {
-      "mano-types": {
-       "prefix": "manotypes"
-      },
-      "rw-pb-ext": {
-       "prefix": "rwpb"
-      },
-      "ietf-yang-types": {
-       "prefix": "yang"
-      },
-      "ietf-inet-types": {
-       "prefix": "inet"
-      }
-     },
-     "revision": {
-      "2015-09-10": {
-       "description": "Initial revision. This YANG file defines\nthe Virtual Network Function (VNF)",
-       "reference": "Derived from earlier versions of base YANG files"
-      }
-     },
-     "grouping": {
-      "virtual-interface": {
-       "container": {
-        "virtual-interface": {
-         "description": "Container for the virtual interface properties",
-         "leaf": {
-          "type": {
-           "description": "Specifies the type of virtual interface\nbetween VM and host.\nVIRTIO          : Use the traditional VIRTIO interface.\nPCI-PASSTHROUGH : Use PCI-PASSTHROUGH interface.\nSR-IOV          : Use SR-IOV interface.\nOM-MGMT         : Used to specify openmano mgmt external-connection type",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "OM-MGMT": {
-               "value": 0
-              },
-              "PCI-PASSTHROUGH": {
-               "value": 1
-              },
-              "SR-IOV": {
-               "value": 2
-              },
-              "VIRTIO": {
-               "value": 3
-              }
-             }
-            }
-           },
-           "default": "VIRTIO"
-          },
-          "vpci": {
-           "description": "Specifies the virtual PCI address. Expressed in\nthe following format dddd:dd:dd.d. For example\n0000:00:12.0. This information can be used to\npass as metadata during the VM creation.",
-           "type": "string"
-          },
-          "bandwidth": {
-           "description": "Aggregate bandwidth of the NIC.",
-           "type": "uint64"
-          }
-         }
-        }
-       }
-      }
-     },
-     "container": {
-      "vnfd-catalog": {
-       "description": "Virtual Network Function Descriptor (VNFD).",
-       "list": {
-        "vnfd": {
-         "key": "id",
-         "leaf": {
-          "id": {
-           "description": "Identifier for the VNFD.",
-           "type": "yang:uuid"
-          },
-          "name": {
-           "description": "VNFD name.",
-           "mandatory": true,
-           "type": "string"
-          },
-          "short-name": {
-           "description": "VNFD short name.",
-           "type": "string"
-          },
-          "vendor": {
-           "description": "Vendor of the VNFD.",
-           "type": "string"
-          },
-          "description": {
-           "description": "Description of the VNFD.",
-           "type": "string"
-          },
-          "version": {
-           "description": "Version of the VNFD",
-           "type": "string"
-          },
-          "vnf-type": {
-           "description": "Type of VNF.\nNOTE: This needs to map with Service Function Type in ODL to\nsupport VNFFG. Service Function Type is manadatory param in ODL\nSFC. This is temporarily set to string for ease of use",
-           "type": "string"
-          }
-         },
-         "container": {
-          "mgmt-interface": {
-           "description": "Interface over which the VNF is managed.",
-           "choice": {
-            "endpoint-type": {
-             "description": "Indicates the type of management endpoint.",
-             "case": {
-              "ip": {
-               "description": "Specifies the static IP address for managing the VNF.",
-               "leaf": {
-                "ip-address": {
-                 "type": "inet:ip-address"
-                }
-               }
-              },
-              "vdu-id": {
-               "description": "Use the default management interface on this VDU.",
-               "leaf": {
-                "vdu-id": {
-                 "type": {
-                  "leafref": {
-                   "path": "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:vdu/vnfd:id"
-                  }
-                 }
-                }
-               }
-              },
-              "cp": {
-               "description": "Use the ip address associated with this connection point.",
-               "leaf": {
-                "cp": {
-                 "type": {
-                  "leafref": {
-                   "path": "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:connection-point/vnfd:name"
-                  }
-                 }
-                }
-               }
-              }
-             }
-            },
-            "interface-type": {
-             "case": {
-              "netconf": {
-               "leaf": {
-                "netconf": {
-                 "type": "empty"
-                }
-               }
-              }
-             }
-            }
-           },
-           "leaf": {
-            "port": {
-             "description": "Port for the management interface.",
-             "type": "inet:port-number"
-            }
-           },
-           "container": {
-            "dashboard-params": {
-             "description": "Parameters for the VNF dashboard",
-             "leaf": {
-              "path": {
-               "description": "The HTTP path for the dashboard",
-               "type": "string"
-              },
-              "https": {
-               "description": "Pick HTTPS instead of HTTP , Default is false",
-               "type": "boolean"
-              },
-              "port": {
-               "description": "The HTTP port for the dashboard",
-               "type": "inet:port-number"
-              }
-             }
-            }
-           }
-          }
-         },
-         "list": {
-          "internal-vld": {
-           "key": "id",
-           "description": "List of Internal Virtual Link Descriptors (VLD).\nThe internal VLD describes the basic topology of\nthe connectivity (e.g. E-LAN, E-Line, E-Tree)\nbetween internal VNF components of the system.",
-           "leaf": {
-            "id": {
-             "description": "Identifier for the VLD",
-             "type": "yang:uuid"
-            },
-            "name": {
-             "description": "Name of the internal VLD",
-             "type": "string"
-            },
-            "short-name": {
-             "description": "Short name of the internal VLD",
-             "type": "string"
-            },
-            "description": {
-             "type": "string"
-            },
-            "type": {
-             "type": "manotypes:virtual-link-type"
-            },
-            "root-bandwidth": {
-             "description": "For ELAN this is the aggregate bandwidth.",
-             "type": "uint64"
-            },
-            "leaf-bandwidth": {
-             "description": "For ELAN this is the bandwidth of branches.",
-             "type": "uint64"
-            }
-           },
-           "leaf-list": {
-            "internal-connection-point-ref": {
-             "type": {
-              "leafref": {
-               "path": "../../vdu/internal-connection-point/id"
-              }
-             }
-            }
-           },
-           "container": {
-            "provider-network": {
-             "description": "Container for the provider network.",
-             "leaf": {
-              "physical-network": {
-               "description": "Name of the phsyical network on which the provider\nnetwork is built.",
-               "type": "string"
-              },
-              "overlay-type": {
-               "description": "Type of the overlay network.",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "LOCAL": {
-                   "value": 0
-                  },
-                  "FLAT": {
-                   "value": 1
-                  },
-                  "VLAN": {
-                   "value": 2
-                  },
-                  "VXLAN": {
-                   "value": 3
-                  },
-                  "GRE": {
-                   "value": 4
-                  }
-                 }
-                }
-               }
-              },
-              "segmentation_id": {
-               "description": "Segmentation ID",
-               "type": "uint32"
-              }
-             }
-            }
-           }
-          },
-          "connection-point": {
-           "key": "name",
-           "description": "List for external connection points. Each VNF has one\nor more external connection points. As the name\nimplies that external connection points are used for\nconnecting the VNF to other VNFs or to external networks.\nEach VNF exposes these connection points to the\norchestrator. The orchestrator can construct network\nservices by connecting the connection points between\ndifferent VNFs. The NFVO will use VLDs and VNFFGs at\nthe network service level to construct network services.",
-           "leaf": {
-            "name": {
-             "description": "Name of the connection point",
-             "type": "string"
-            },
-            "short-name": {
-             "description": "Short name of the connection point",
-             "type": "string"
-            },
-            "type": {
-             "description": "Type of the connection point.",
-             "type": "manotypes:connection-point-type"
-            }
-           }
-          },
-          "vdu": {
-           "description": "List of Virtual Deployment Units",
-           "key": "id",
-           "leaf": {
-            "id": {
-             "description": "Unique id for the VDU",
-             "type": "yang:uuid"
-            },
-            "name": {
-             "description": "Unique name for the VDU",
-             "type": "string"
-            },
-            "description": {
-             "description": "Description of the VDU.",
-             "type": "string"
-            },
-            "count": {
-             "description": "Number of instances of VDU",
-             "type": "uint64"
-            },
-            "mgmt-vpci": {
-             "description": "Specifies the virtual PCI address. Expressed in\nthe following format dddd:dd:dd.d. For example\n0000:00:12.0. This information can be used to\npass as metadata during the VM creation.",
-             "type": "string"
-            },
-            "image": {
-             "description": "Image name for the software image.\nIf the image name is found within the VNF packaage it will\nbe uploaded to all cloud accounts during onboarding process.\nOtherwise, the image must be added to the cloud account with\nthe same name as entered here.\n",
-             "mandatory": true,
-             "type": "string"
-            },
-            "image-checksum": {
-             "description": "Image md5sum for the software image.\nThe md5sum, if provided, along with the image name uniquely\nidentifies an image uploaded to the CAL.\n",
-             "type": "string"
-            },
-            "cloud-init": {
-             "description": "Content of cloud-init script",
-             "type": "string"
-            }
-           },
-           "uses": {},
-           "list": {
-            "internal-connection-point": {
-             "key": "id",
-             "description": "List for internal connection points. Each VNFC\nhas zero or more internal connection points.\nInternal connection points are used for connecting\nthe VNF components internal to the VNF. If a VNF\nhas only one VNFC, it may not have any internal\nconnection points.",
-             "leaf": {
-              "id": {
-               "description": "Identifier for the internal connection points",
-               "type": "yang:uuid"
-              },
-              "type": {
-               "description": "Type of the connection point.",
-               "type": "manotypes:connection-point-type"
-              },
-              "internal-vld-ref": {
-               "type": {
-                "leafref": {
-                 "path": "../../../internal-vld/id"
-                }
-               }
-              }
-             }
-            },
-            "internal-interface": {
-             "description": "List of internal interfaces for the VNF",
-             "key": "name",
-             "leaf": {
-              "name": {
-               "description": "Name of internal interface. Note that this\nname has only local significance to the VDU.",
-               "type": "string"
-              },
-              "vdu-internal-connection-point-ref": {
-               "type": {
-                "leafref": {
-                 "path": "../../internal-connection-point/id"
-                }
-               }
-              }
-             },
-             "container": {
-              "virtual-interface": {
-               "description": "Container for the virtual interface properties",
-               "leaf": {
-                "type": {
-                 "description": "Specifies the type of virtual interface\nbetween VM and host.\nVIRTIO          : Use the traditional VIRTIO interface.\nPCI-PASSTHROUGH : Use PCI-PASSTHROUGH interface.\nSR-IOV          : Use SR-IOV interface.\nOM-MGMT         : Used to specify openmano mgmt external-connection type",
-                 "type": {
-                  "enumeration": {
-                   "enum": {
-                    "OM-MGMT": {
-                     "value": 0
-                    },
-                    "PCI-PASSTHROUGH": {
-                     "value": 1
-                    },
-                    "SR-IOV": {
-                     "value": 2
-                    },
-                    "VIRTIO": {
-                     "value": 3
-                    }
-                   }
-                  }
-                 },
-                 "default": "VIRTIO"
-                },
-                "vpci": {
-                 "description": "Specifies the virtual PCI address. Expressed in\nthe following format dddd:dd:dd.d. For example\n0000:00:12.0. This information can be used to\npass as metadata during the VM creation.",
-                 "type": "string"
-                },
-                "bandwidth": {
-                 "description": "Aggregate bandwidth of the NIC.",
-                 "type": "uint64"
-                }
-               }
-              }
-             }
-            },
-            "external-interface": {
-             "description": "List of external interfaces for the VNF.\nThe external interfaces enable sending\ntraffic to and from VNF.",
-             "key": "name",
-             "leaf": {
-              "name": {
-               "description": "Name of the external interface. Note that\nthis name has only local significance.",
-               "type": "string"
-              },
-              "vnfd-connection-point-ref": {
-               "description": "Name of the external connection point.",
-               "type": {
-                "leafref": {
-                 "path": "../../../connection-point/name"
-                }
-               }
-              }
-             },
-             "container": {
-              "virtual-interface": {
-               "description": "Container for the virtual interface properties",
-               "leaf": {
-                "type": {
-                 "description": "Specifies the type of virtual interface\nbetween VM and host.\nVIRTIO          : Use the traditional VIRTIO interface.\nPCI-PASSTHROUGH : Use PCI-PASSTHROUGH interface.\nSR-IOV          : Use SR-IOV interface.\nOM-MGMT         : Used to specify openmano mgmt external-connection type",
-                 "type": {
-                  "enumeration": {
-                   "enum": {
-                    "OM-MGMT": {
-                     "value": 0
-                    },
-                    "PCI-PASSTHROUGH": {
-                     "value": 1
-                    },
-                    "SR-IOV": {
-                     "value": 2
-                    },
-                    "VIRTIO": {
-                     "value": 3
-                    }
-                   }
-                  }
-                 },
-                 "default": "VIRTIO"
-                },
-                "vpci": {
-                 "description": "Specifies the virtual PCI address. Expressed in\nthe following format dddd:dd:dd.d. For example\n0000:00:12.0. This information can be used to\npass as metadata during the VM creation.",
-                 "type": "string"
-                },
-                "bandwidth": {
-                 "description": "Aggregate bandwidth of the NIC.",
-                 "type": "uint64"
-                }
-               }
-              }
-             }
-            }
-           },
-           "container": {
-            "vm-flavor": {
-             "leaf": {
-              "vcpu-count": {
-               "description": "Number of vcpus for the VM.",
-               "type": "uint16"
-              },
-              "memory-mb": {
-               "description": "Amount of memory in MB.",
-               "type": "uint64"
-              },
-              "storage-gb": {
-               "description": "Amount of disk space in GB.",
-               "type": "uint64"
-              }
-             }
-            },
-            "guest-epa": {
-             "leaf": {
-              "trusted-execution": {
-               "description": "This VM should be allocated from trusted pool",
-               "type": "boolean"
-              },
-              "mempage-size": {
-               "description": "Memory page allocation size. If a VM requires\nhugepages, it should choose LARGE or SIZE_2MB\nor SIZE_1GB. If the VM prefers hugepages it\nshould chose PREFER_LARGE.\nLARGE        : Require hugepages (either 2MB or 1GB)\nSMALL        : Doesn't require hugepages\nSIZE_2MB     : Requires 2MB hugepages\nSIZE_1GB     : Requires 1GB hugepages\nPREFER_LARGE : Application perfers hugepages",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "LARGE": {
-                   "value": 0
-                  },
-                  "SMALL": {
-                   "value": 1
-                  },
-                  "SIZE_2MB": {
-                   "value": 2
-                  },
-                  "SIZE_1GB": {
-                   "value": 3
-                  },
-                  "PREFER_LARGE": {
-                   "value": 4
-                  }
-                 }
-                }
-               }
-              },
-              "cpu-pinning-policy": {
-               "description": "CPU pinning policy describes association\nbetween virtual CPUs in guest and the\nphysical CPUs in the host.\nDEDICATED : Virtual CPUs are pinned to\n            physical CPUs\nSHARED    : Multiple VMs may share the\n            same physical CPUs.\nANY       : Any policy is acceptable for the VM",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "DEDICATED": {
-                   "value": 0
-                  },
-                  "SHARED": {
-                   "value": 1
-                  },
-                  "ANY": {
-                   "value": 2
-                  }
-                 }
-                }
-               },
-               "default": "ANY"
-              },
-              "cpu-thread-pinning-policy": {
-               "description": "CPU thread pinning policy describes how to\nplace the guest CPUs when the host supports\nhyper threads:\nAVOID   : Avoids placing a guest on a host\n          with threads.\nSEPARATE: Places vCPUs on separate cores,\n          and avoids placing two vCPUs on\n          two threads of same core.\nISOLATE : Places each vCPU on a different core,\n          and places no vCPUs from a different\n          guest on the same core.\nPREFER  : Attempts to place vCPUs on threads\n          of the same core.",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "AVOID": {
-                   "value": 0
-                  },
-                  "SEPARATE": {
-                   "value": 1
-                  },
-                  "ISOLATE": {
-                   "value": 2
-                  },
-                  "PREFER": {
-                   "value": 3
-                  }
-                 }
-                }
-               }
-              }
-             },
-             "list": {
-              "pcie-device": {
-               "description": "List of pcie passthrough devices.",
-               "key": "device-id",
-               "leaf": {
-                "device-id": {
-                 "description": "Device identifier.",
-                 "type": "string"
-                },
-                "count": {
-                 "description": "Number of devices to attach to the VM.",
-                 "type": "uint64"
-                }
-               }
-              }
-             },
-             "choice": {
-              "numa-policy": {
-               "case": {
-                "numa-unware": {
-                 "leaf": {
-                  "numa-unware": {
-                   "type": "empty"
-                  }
-                 }
-                },
-                "numa-aware": {
-                 "container": {
-                  "numa-node-policy": {
-                   "description": "This policy defines numa topology of the\nguest. Specifically identifies if the guest\nshould be run on a host with one numa\nnode or multiple numa nodes. As an example\na guest may want 8 vcpus and 4 GB of\nmemory. But may want the vcpus and memory\ndistributed across multiple numa nodes.\nThe NUMA node 1 may run with 6 vcpus and\n3GB, and NUMA node 2 may run with 2 vcpus\nand 1GB.",
-                   "leaf": {
-                    "node-cnt": {
-                     "description": "The number of numa nodes to expose to the VM.",
-                     "type": "uint16"
-                    },
-                    "mem-policy": {
-                     "description": "This policy specifies how the memory should\nbe allocated in a multi-node scenario.\nSTRICT    : The memory must be allocated\n            strictly from the memory attached\n            to the NUMA node.\nPREFERRED : The memory should be allocated\n            perferentially from the memory\n            attached to the NUMA node",
-                     "type": {
-                      "enumeration": {
-                       "enum": {
-                        "STRICT": {
-                         "value": 0
-                        },
-                        "PREFERRED": {
-                         "value": 1
-                        }
-                       }
-                      }
-                     }
-                    }
-                   },
-                   "list": {
-                    "node": {
-                     "key": "id",
-                     "leaf": {
-                      "id": {
-                       "description": "NUMA node identification. Typically\nit's 0 or 1",
-                       "type": "uint64"
-                      },
-                      "memory-mb": {
-                       "description": "Memory size expressed in MB\nfor this NUMA node.",
-                       "type": "uint64"
-                      }
-                     },
-                     "leaf-list": {
-                      "vcpu": {
-                       "description": "List of vcpus to allocate on\nthis numa node.",
-                       "type": "uint64"
-                      }
-                     },
-                     "choice": {
-                      "om-numa-type": {
-                       "description": "Openmano Numa type selection",
-                       "case": {
-                        "cores": {
-                         "leaf": {
-                          "num-cores": {
-                           "type": "uint8"
-                          }
-                         }
-                        },
-                        "paired-threads": {
-                         "container": {
-                          "paired-threads": {
-                           "leaf": {
-                            "num-paired-threads": {
-                             "type": "uint8"
-                            }
-                           },
-                           "list": {
-                            "paired-thread-ids": {
-                             "description": "List of thread pairs to use in case of paired-thread numa",
-                             "max-elements": 16,
-                             "key": "thread-a",
-                             "leaf": {
-                              "thread-a": {
-                               "type": "uint8"
-                              },
-                              "thread-b": {
-                               "type": "uint8"
-                              }
-                             }
-                            }
-                           }
-                          }
-                         }
-                        },
-                        "threads": {
-                         "leaf": {
-                          "num-threads": {
-                           "type": "uint8"
-                          }
-                         }
-                        }
-                       }
-                      }
-                     }
-                    }
-                   }
-                  }
-                 }
-                }
-               }
-              }
-             }
-            },
-            "vswitch-epa": {
-             "leaf": {
-              "ovs-acceleration": {
-               "description": "Specifies Open vSwitch acceleration mode.\nMANDATORY: OVS acceleration is required\nPREFERRED: OVS acceleration is preferred",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "MANDATORY": {
-                   "value": 0
-                  },
-                  "PREFERRED": {
-                   "value": 1
-                  },
-                  "DISABLED": {
-                   "value": 2
-                  }
-                 }
-                }
-               }
-              },
-              "ovs-offload": {
-               "description": "Specifies Open vSwitch hardware offload mode.\nMANDATORY: OVS offload is required\nPREFERRED: OVS offload is preferred",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "MANDATORY": {
-                   "value": 0
-                  },
-                  "PREFERRED": {
-                   "value": 1
-                  },
-                  "DISABLED": {
-                   "value": 2
-                  }
-                 }
-                }
-               }
-              }
-             }
-            },
-            "hypervisor-epa": {
-             "leaf": {
-              "type": {
-               "description": "Specifies the type of hypervisor.\nKVM: KVM\nXEN: XEN",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "PREFER_KVM": {
-                   "value": 0
-                  },
-                  "REQUIRE_KVM": {
-                   "value": 1
-                  }
-                 }
-                }
-               }
-              },
-              "version": {
-               "type": "string"
-              }
-             }
-            },
-            "host-epa": {
-             "description": "Specifies the host level EPA attributes.",
-             "leaf": {
-              "cpu-model": {
-               "description": "Host CPU model. Examples include: SandyBridge,\nIvyBridge",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "PREFER_WESTMERE": {
-                   "value": 0
-                  },
-                  "REQUIRE_WESTMERE": {
-                   "value": 1
-                  },
-                  "PREFER_SANDYBRIDGE": {
-                   "value": 2
-                  },
-                  "REQUIRE_SANDYBRIDGE": {
-                   "value": 3
-                  },
-                  "PREFER_IVYBRIDGE": {
-                   "value": 4
-                  },
-                  "REQUIRE_IVYBRIDGE": {
-                   "value": 5
-                  },
-                  "PREFER_HASWELL": {
-                   "value": 6
-                  },
-                  "REQUIRE_HASWELL": {
-                   "value": 7
-                  },
-                  "PREFER_BROADWELL": {
-                   "value": 8
-                  },
-                  "REQUIRE_BROADWELL": {
-                   "value": 9
-                  },
-                  "PREFER_NEHALEM": {
-                   "value": 10
-                  },
-                  "REQUIRE_NEHALEM": {
-                   "value": 11
-                  },
-                  "PREFER_PENRYN": {
-                   "value": 12
-                  },
-                  "REQUIRE_PENRYN": {
-                   "value": 13
-                  },
-                  "PREFER_CONROE": {
-                   "value": 14
-                  },
-                  "REQUIRE_CONROE": {
-                   "value": 15
-                  },
-                  "PREFER_CORE2DUO": {
-                   "value": 16
-                  },
-                  "REQUIRE_CORE2DUO": {
-                   "value": 17
-                  }
-                 }
-                }
-               }
-              },
-              "cpu-arch": {
-               "description": "Host CPU architecture.",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "PREFER_X86": {
-                   "value": 0
-                  },
-                  "REQUIRE_X86": {
-                   "value": 1
-                  },
-                  "PREFER_X86_64": {
-                   "value": 2
-                  },
-                  "REQUIRE_X86_64": {
-                   "value": 3
-                  },
-                  "PREFER_I686": {
-                   "value": 4
-                  },
-                  "REQUIRE_I686": {
-                   "value": 5
-                  },
-                  "PREFER_IA64": {
-                   "value": 6
-                  },
-                  "REQUIRE_IA64": {
-                   "value": 7
-                  },
-                  "PREFER_ARMV7": {
-                   "value": 8
-                  },
-                  "REQUIRE_ARMV7": {
-                   "value": 9
-                  },
-                  "PREFER_ARMV8": {
-                   "value": 10
-                  },
-                  "REQUIRE_ARMV8": {
-                   "value": 11
-                  }
-                 }
-                }
-               }
-              },
-              "cpu-vendor": {
-               "description": "Host CPU Vendor.",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "PREFER_INTEL": {
-                   "value": 0
-                  },
-                  "REQUIRE_INTEL": {
-                   "value": 1
-                  },
-                  "PREFER_AMD": {
-                   "value": 2
-                  },
-                  "REQUIRE_AMD": {
-                   "value": 3
-                  }
-                 }
-                }
-               }
-              },
-              "cpu-socket-count": {
-               "description": "Number of sockets on the host.",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "PREFER_ONE": {
-                   "value": 0
-                  },
-                  "PREFER_TWO": {
-                   "value": 1
-                  },
-                  "REQUIRE_ONE": {
-                   "value": 2
-                  },
-                  "REQUIRE_TWO": {
-                   "value": 3
-                  }
-                 }
-                }
-               }
-              },
-              "cpu-core-count": {
-               "description": "Number of cores on the host.",
-               "type": "uint64"
-              },
-              "om-cpu-model-string": {
-               "description": "Openmano CPU model string",
-               "type": "string"
-              }
-             },
-             "leaf-list": {
-              "cpu-feature": {
-               "description": "List of CPU features.",
-               "type": "manotypes:cpu-feature-type"
-              },
-              "om-cpu-feature": {
-               "description": "Openmano CPU features",
-               "type": "string"
-              }
-             }
-            }
-           }
-          },
-          "vdu-dependency": {
-           "description": "List of VDU dependencies.",
-           "key": "vdu-source-ref",
-           "leaf": {
-            "vdu-source-ref": {
-             "type": {
-              "leafref": {
-               "path": "../../vdu/id"
-              }
-             }
-            },
-            "vdu-depends-on-ref": {
-             "description": "Reference to the VDU that\nsource VDU depends.",
-             "type": {
-              "leafref": {
-               "path": "../../vdu/id"
-              }
-             }
-            }
-           }
-          },
-          "http-endpoint": {
-           "description": "List of http endpoints to be used by monitoring params",
-           "key": "path",
-           "leaf": {
-            "path": {
-             "description": "The HTTP path on the management server",
-             "type": "string"
-            },
-            "https": {
-             "description": "Pick HTTPS instead of HTTP , Default is false",
-             "type": "boolean",
-             "default": "false"
-            },
-            "port": {
-             "description": "The HTTP port to connect to",
-             "type": "inet:port-number"
-            },
-            "username": {
-             "description": "The HTTP basic auth username",
-             "type": "string"
-            },
-            "password": {
-             "description": "The HTTP basic auth password",
-             "type": "string"
-            },
-            "polling_interval_secs": {
-             "description": "The HTTP polling interval in seconds",
-             "type": "uint8",
-             "default": "2"
-            },
-            "method": {
-             "description": "This is the method to be performed at the uri.\nGET by default for action",
-             "type": "manotypes:http-method",
-             "default": "GET"
-            }
-           },
-           "list": {
-            "headers": {
-             "description": "Custom HTTP headers to put on HTTP request",
-             "key": "key",
-             "leaf": {
-              "key": {
-               "description": "HTTP header key",
-               "type": "string"
-              },
-              "value": {
-               "description": "HTTP header value",
-               "type": "string"
-              }
-             }
-            }
-           }
-          },
-          "monitoring-param": {
-           "description": "List of monitoring parameters at the NS level",
-           "key": "id",
-           "leaf": {
-            "id": {
-             "type": "string"
-            },
-            "name": {
-             "type": "string"
-            },
-            "http-endpoint-ref": {
-             "type": {
-              "leafref": {
-               "path": "../../http-endpoint/path"
-              }
-             }
-            },
-            "json-query-method": {
-             "type": "manotypes:json-query-method",
-             "default": "NAMEKEY"
-            },
-            "description": {
-             "type": "string"
-            },
-            "group-tag": {
-             "description": "A simple tag to group monitoring parameters",
-             "type": "string"
-            },
-            "value-type": {
-             "type": "manotypes:param-value-type",
-             "default": "INT"
-            },
-            "value-integer": {
-             "description": "Current value for an integer parameter",
-             "type": "int64"
-            },
-            "value-decimal": {
-             "description": "Current value for a decimal parameter",
-             "type": {
-              "decimal64": {
-               "fraction-digits": "4"
-              }
-             }
-            },
-            "value-string": {
-             "description": "Current value for a string parameter",
-             "type": "string"
-            },
-            "widget-type": {
-             "type": "manotypes:widget-type"
-            },
-            "units": {
-             "type": "string"
-            }
-           },
-           "container": {
-            "json-query-params": {
-             "leaf": {
-              "json-path": {
-               "description": "The jsonpath to use to extract value from JSON structure",
-               "type": "string"
-              },
-              "object-path": {
-               "description": "The objectpath to use to extract value from JSON structure",
-               "type": "string"
-              }
-             }
-            },
-            "numeric-constraints": {
-             "leaf": {
-              "min-value": {
-               "description": "Minimum value for the parameter",
-               "type": "uint64"
-              },
-              "max-value": {
-               "description": "Maxium value for the parameter",
-               "type": "uint64"
-              }
-             }
-            },
-            "text-constraints": {
-             "leaf": {
-              "min-length": {
-               "description": "Minimum string length for the parameter",
-               "type": "uint8"
-              },
-              "max-length": {
-               "description": "Maximum string length for the parameter",
-               "type": "uint8"
-              }
-             }
-            }
-           }
-          }
-         }
-        }
-       }
-      }
-     }
-    }
-   }
-  },
-  "mano-types": {
-   "module": {
-    "mano-types": {
-     "namespace": "urn:ietf:params:xml:ns:yang:nfvo:mano-types",
-     "prefix": "manotypes",
-     "import": {
-      "ietf-inet-types": {
-       "prefix": "inet"
-      }
-     },
-     "revision": {
-      "2015-04-23": {
-       "description": "Initial revision. This YANG file defines\nthe reusable base types for VNF Management\nand Orchestration (MANO).",
-       "reference": "Derived from earlier versions of base YANG files"
-      }
-     },
-     "typedef": {
-      "virtual-link-type": {
-       "description": "Type of virtual link\nELAN: A multipoint service connecting a set of VNFs\n// ELINE: For a simple point to point connection\n//        between a VNF and the existing network.\n// ETREE: A multipoint service connecting one or\n//        more roots and a set of leaves, but\n//        preventing inter-leaf communication.",
-       "type": {
-        "enumeration": {
-         "enum": "ELAN"
-        }
-       }
-      },
-      "http-method": {
-       "description": "Type of HTTP operation",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "POST": {
-           "value": 0
-          },
-          "PUT": {
-           "value": 1
-          },
-          "GET": {
-           "value": 2
-          },
-          "DELETE": {
-           "value": 3
-          },
-          "OPTIONS": {
-           "value": 4
-          },
-          "PATCH": {
-           "value": 5
-          }
-         }
-        }
-       }
-      },
-      "api-type": {
-       "description": "Type of API to fetch monitoring params",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "HTTP": {
-           "value": 0
-          },
-          "NETCONF": {
-           "value": 1
-          },
-          "SOAP": {
-           "value": 2
-          }
-         }
-        }
-       }
-      },
-      "json-query-method": {
-       "description": "The method to extract a value from a JSON response\n\nNAMEKEY - Use the name as the key for a non-nested value.\nJSONPATH - Use jsonpath-rw implemenation to extract a value.\nOBJECTPATH - Use objectpath implemenation to extract a value.",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "NAMEKEY": {
-           "value": 0
-          },
-          "JSONPATH": {
-           "value": 1
-          },
-          "OBJECTPATH": {
-           "value": 2
-          }
-         }
-        }
-       }
-      },
-      "param-value-type": {
-       "description": "The type of the parameter value",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "INT": {
-           "value": 0
-          },
-          "DECIMAL": {
-           "value": 1
-          },
-          "STRING": {
-           "value": 2
-          }
-         }
-        }
-       }
-      },
-      "connection-point-type": {
-       "description": "Type of connection point\nVPORT: Virtual Port\n// VNIC_ADDR: Virtual NIC Address\n// PNIC_ADDR: Physical NIC Address\n// PPORT: Phsical Port.",
-       "type": {
-        "enumeration": {
-         "enum": "VPORT"
-        }
-       }
-      },
-      "widget-type": {
-       "description": "Type of the widget, typically used by the UI.",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "HISTOGRAM": {
-           "value": 0
-          },
-          "BAR": {
-           "value": 1
-          },
-          "GAUGE": {
-           "value": 2
-          },
-          "SLIDER": {
-           "value": 3
-          },
-          "COUNTER": {
-           "value": 4
-          },
-          "TEXTBOX": {
-           "value": 5
-          }
-         }
-        }
-       }
-      },
-      "cpu-feature-type": {
-       "description": "Enumeration for CPU features.\n\nAES: CPU supports advanced instruction set for\nAES (Advanced Encryption Standard).\n\nCAT: Cache Allocation Technology (CAT) allows\nan Operating System, Hypervisor, or similar\nsystem management agent to specify the amount\nof L3 cache (currently the last-level cache\nin most server and client platforms) space an\napplication can fill (as a hint to hardware\nfunctionality, certain features such as power\nmanagement may override CAT settings).\n\nCMT: Cache Monitoring Technology (CMT) allows\nan Operating System, Hypervisor, or similar\nsystem management agent to determine the\nusage of cache based on applications running\non the platform. The implementation is\ndirected at L3 cache monitoring (currently\nthe last-level cache in most server and\nclient platforms).\n\nDDIO: Intel Data Direct I/O (DDIO) enables\nEthernet server NICs and controllers talk\ndirectly to the processor cache without a\ndetour via system memory. This enumeration\nspecifies if the VM requires a DDIO\ncapable host.",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "PREFER_AES": {
-           "value": 0
-          },
-          "REQUIRE_AES": {
-           "value": 1
-          },
-          "PREFER_CAT": {
-           "value": 2
-          },
-          "REQUIRE_CAT": {
-           "value": 3
-          },
-          "PREFER_CMT": {
-           "value": 4
-          },
-          "REQUIRE_CMT": {
-           "value": 5
-          },
-          "PREFER_DDIO": {
-           "value": 6
-          },
-          "REQUIRE_DDIO": {
-           "value": 7
-          }
-         }
-        }
-       }
-      }
-     },
-     "grouping": {
-      "named-value": {
-       "leaf": {
-        "name": {
-         "type": "string"
-        },
-        "value": {
-         "type": "string"
-        }
-       }
-      },
-      "vm-flavor": {
-       "container": {
-        "vm-flavor": {
-         "leaf": {
-          "vcpu-count": {
-           "description": "Number of vcpus for the VM.",
-           "type": "uint16"
-          },
-          "memory-mb": {
-           "description": "Amount of memory in MB.",
-           "type": "uint64"
-          },
-          "storage-gb": {
-           "description": "Amount of disk space in GB.",
-           "type": "uint64"
-          }
-         }
-        }
-       }
-      },
-      "vswitch-epa": {
-       "container": {
-        "vswitch-epa": {
-         "leaf": {
-          "ovs-acceleration": {
-           "description": "Specifies Open vSwitch acceleration mode.\nMANDATORY: OVS acceleration is required\nPREFERRED: OVS acceleration is preferred",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "MANDATORY": {
-               "value": 0
-              },
-              "PREFERRED": {
-               "value": 1
-              },
-              "DISABLED": {
-               "value": 2
-              }
-             }
-            }
-           }
-          },
-          "ovs-offload": {
-           "description": "Specifies Open vSwitch hardware offload mode.\nMANDATORY: OVS offload is required\nPREFERRED: OVS offload is preferred",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "MANDATORY": {
-               "value": 0
-              },
-              "PREFERRED": {
-               "value": 1
-              },
-              "DISABLED": {
-               "value": 2
-              }
-             }
-            }
-           }
-          }
-         }
-        }
-       }
-      },
-      "hypervisor-epa": {
-       "container": {
-        "hypervisor-epa": {
-         "leaf": {
-          "type": {
-           "description": "Specifies the type of hypervisor.\nKVM: KVM\nXEN: XEN",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "PREFER_KVM": {
-               "value": 0
-              },
-              "REQUIRE_KVM": {
-               "value": 1
-              }
-             }
-            }
-           }
-          },
-          "version": {
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "host-epa": {
-       "container": {
-        "host-epa": {
-         "description": "Specifies the host level EPA attributes.",
-         "leaf": {
-          "cpu-model": {
-           "description": "Host CPU model. Examples include: SandyBridge,\nIvyBridge",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "PREFER_WESTMERE": {
-               "value": 0
-              },
-              "REQUIRE_WESTMERE": {
-               "value": 1
-              },
-              "PREFER_SANDYBRIDGE": {
-               "value": 2
-              },
-              "REQUIRE_SANDYBRIDGE": {
-               "value": 3
-              },
-              "PREFER_IVYBRIDGE": {
-               "value": 4
-              },
-              "REQUIRE_IVYBRIDGE": {
-               "value": 5
-              },
-              "PREFER_HASWELL": {
-               "value": 6
-              },
-              "REQUIRE_HASWELL": {
-               "value": 7
-              },
-              "PREFER_BROADWELL": {
-               "value": 8
-              },
-              "REQUIRE_BROADWELL": {
-               "value": 9
-              },
-              "PREFER_NEHALEM": {
-               "value": 10
-              },
-              "REQUIRE_NEHALEM": {
-               "value": 11
-              },
-              "PREFER_PENRYN": {
-               "value": 12
-              },
-              "REQUIRE_PENRYN": {
-               "value": 13
-              },
-              "PREFER_CONROE": {
-               "value": 14
-              },
-              "REQUIRE_CONROE": {
-               "value": 15
-              },
-              "PREFER_CORE2DUO": {
-               "value": 16
-              },
-              "REQUIRE_CORE2DUO": {
-               "value": 17
-              }
-             }
-            }
-           }
-          },
-          "cpu-arch": {
-           "description": "Host CPU architecture.",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "PREFER_X86": {
-               "value": 0
-              },
-              "REQUIRE_X86": {
-               "value": 1
-              },
-              "PREFER_X86_64": {
-               "value": 2
-              },
-              "REQUIRE_X86_64": {
-               "value": 3
-              },
-              "PREFER_I686": {
-               "value": 4
-              },
-              "REQUIRE_I686": {
-               "value": 5
-              },
-              "PREFER_IA64": {
-               "value": 6
-              },
-              "REQUIRE_IA64": {
-               "value": 7
-              },
-              "PREFER_ARMV7": {
-               "value": 8
-              },
-              "REQUIRE_ARMV7": {
-               "value": 9
-              },
-              "PREFER_ARMV8": {
-               "value": 10
-              },
-              "REQUIRE_ARMV8": {
-               "value": 11
-              }
-             }
-            }
-           }
-          },
-          "cpu-vendor": {
-           "description": "Host CPU Vendor.",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "PREFER_INTEL": {
-               "value": 0
-              },
-              "REQUIRE_INTEL": {
-               "value": 1
-              },
-              "PREFER_AMD": {
-               "value": 2
-              },
-              "REQUIRE_AMD": {
-               "value": 3
-              }
-             }
-            }
-           }
-          },
-          "cpu-socket-count": {
-           "description": "Number of sockets on the host.",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "PREFER_ONE": {
-               "value": 0
-              },
-              "PREFER_TWO": {
-               "value": 1
-              },
-              "REQUIRE_ONE": {
-               "value": 2
-              },
-              "REQUIRE_TWO": {
-               "value": 3
-              }
-             }
-            }
-           }
-          },
-          "cpu-core-count": {
-           "description": "Number of cores on the host.",
-           "type": "uint64"
-          },
-          "om-cpu-model-string": {
-           "description": "Openmano CPU model string",
-           "type": "string"
-          }
-         },
-         "leaf-list": {
-          "cpu-feature": {
-           "description": "List of CPU features.",
-           "type": "manotypes:cpu-feature-type"
-          },
-          "om-cpu-feature": {
-           "description": "Openmano CPU features",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "guest-epa": {
-       "description": "EPA attributes for the guest",
-       "container": {
-        "guest-epa": {
-         "leaf": {
-          "trusted-execution": {
-           "description": "This VM should be allocated from trusted pool",
-           "type": "boolean"
-          },
-          "mempage-size": {
-           "description": "Memory page allocation size. If a VM requires\nhugepages, it should choose LARGE or SIZE_2MB\nor SIZE_1GB. If the VM prefers hugepages it\nshould chose PREFER_LARGE.\nLARGE        : Require hugepages (either 2MB or 1GB)\nSMALL        : Doesn't require hugepages\nSIZE_2MB     : Requires 2MB hugepages\nSIZE_1GB     : Requires 1GB hugepages\nPREFER_LARGE : Application perfers hugepages",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "LARGE": {
-               "value": 0
-              },
-              "SMALL": {
-               "value": 1
-              },
-              "SIZE_2MB": {
-               "value": 2
-              },
-              "SIZE_1GB": {
-               "value": 3
-              },
-              "PREFER_LARGE": {
-               "value": 4
-              }
-             }
-            }
-           }
-          },
-          "cpu-pinning-policy": {
-           "description": "CPU pinning policy describes association\nbetween virtual CPUs in guest and the\nphysical CPUs in the host.\nDEDICATED : Virtual CPUs are pinned to\n            physical CPUs\nSHARED    : Multiple VMs may share the\n            same physical CPUs.\nANY       : Any policy is acceptable for the VM",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "DEDICATED": {
-               "value": 0
-              },
-              "SHARED": {
-               "value": 1
-              },
-              "ANY": {
-               "value": 2
-              }
-             }
-            }
-           },
-           "default": "ANY"
-          },
-          "cpu-thread-pinning-policy": {
-           "description": "CPU thread pinning policy describes how to\nplace the guest CPUs when the host supports\nhyper threads:\nAVOID   : Avoids placing a guest on a host\n          with threads.\nSEPARATE: Places vCPUs on separate cores,\n          and avoids placing two vCPUs on\n          two threads of same core.\nISOLATE : Places each vCPU on a different core,\n          and places no vCPUs from a different\n          guest on the same core.\nPREFER  : Attempts to place vCPUs on threads\n          of the same core.",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "AVOID": {
-               "value": 0
-              },
-              "SEPARATE": {
-               "value": 1
-              },
-              "ISOLATE": {
-               "value": 2
-              },
-              "PREFER": {
-               "value": 3
-              }
-             }
-            }
-           }
-          }
-         },
-         "list": {
-          "pcie-device": {
-           "description": "List of pcie passthrough devices.",
-           "key": "device-id",
-           "leaf": {
-            "device-id": {
-             "description": "Device identifier.",
-             "type": "string"
-            },
-            "count": {
-             "description": "Number of devices to attach to the VM.",
-             "type": "uint64"
-            }
-           }
-          }
-         },
-         "choice": {
-          "numa-policy": {
-           "case": {
-            "numa-unware": {
-             "leaf": {
-              "numa-unware": {
-               "type": "empty"
-              }
-             }
-            },
-            "numa-aware": {
-             "container": {
-              "numa-node-policy": {
-               "description": "This policy defines numa topology of the\nguest. Specifically identifies if the guest\nshould be run on a host with one numa\nnode or multiple numa nodes. As an example\na guest may want 8 vcpus and 4 GB of\nmemory. But may want the vcpus and memory\ndistributed across multiple numa nodes.\nThe NUMA node 1 may run with 6 vcpus and\n3GB, and NUMA node 2 may run with 2 vcpus\nand 1GB.",
-               "leaf": {
-                "node-cnt": {
-                 "description": "The number of numa nodes to expose to the VM.",
-                 "type": "uint16"
-                },
-                "mem-policy": {
-                 "description": "This policy specifies how the memory should\nbe allocated in a multi-node scenario.\nSTRICT    : The memory must be allocated\n            strictly from the memory attached\n            to the NUMA node.\nPREFERRED : The memory should be allocated\n            perferentially from the memory\n            attached to the NUMA node",
-                 "type": {
-                  "enumeration": {
-                   "enum": {
-                    "STRICT": {
-                     "value": 0
-                    },
-                    "PREFERRED": {
-                     "value": 1
-                    }
-                   }
-                  }
-                 }
-                }
-               },
-               "list": {
-                "node": {
-                 "key": "id",
-                 "leaf": {
-                  "id": {
-                   "description": "NUMA node identification. Typically\nit's 0 or 1",
-                   "type": "uint64"
-                  },
-                  "memory-mb": {
-                   "description": "Memory size expressed in MB\nfor this NUMA node.",
-                   "type": "uint64"
-                  }
-                 },
-                 "leaf-list": {
-                  "vcpu": {
-                   "description": "List of vcpus to allocate on\nthis numa node.",
-                   "type": "uint64"
-                  }
-                 },
-                 "choice": {
-                  "om-numa-type": {
-                   "description": "Openmano Numa type selection",
-                   "case": {
-                    "cores": {
-                     "leaf": {
-                      "num-cores": {
-                       "type": "uint8"
-                      }
-                     }
-                    },
-                    "paired-threads": {
-                     "container": {
-                      "paired-threads": {
-                       "leaf": {
-                        "num-paired-threads": {
-                         "type": "uint8"
-                        }
-                       },
-                       "list": {
-                        "paired-thread-ids": {
-                         "description": "List of thread pairs to use in case of paired-thread numa",
-                         "max-elements": 16,
-                         "key": "thread-a",
-                         "leaf": {
-                          "thread-a": {
-                           "type": "uint8"
-                          },
-                          "thread-b": {
-                           "type": "uint8"
-                          }
-                         }
-                        }
-                       }
-                      }
-                     }
-                    },
-                    "threads": {
-                     "leaf": {
-                      "num-threads": {
-                       "type": "uint8"
-                      }
-                     }
-                    }
-                   }
-                  }
-                 }
-                }
-               }
-              }
-             }
-            }
-           }
-          }
-         }
-        }
-       }
-      },
-      "provider-network": {
-       "container": {
-        "provider-network": {
-         "description": "Container for the provider network.",
-         "leaf": {
-          "physical-network": {
-           "description": "Name of the phsyical network on which the provider\nnetwork is built.",
-           "type": "string"
-          },
-          "overlay-type": {
-           "description": "Type of the overlay network.",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "LOCAL": {
-               "value": 0
-              },
-              "FLAT": {
-               "value": 1
-              },
-              "VLAN": {
-               "value": 2
-              },
-              "VXLAN": {
-               "value": 3
-              },
-              "GRE": {
-               "value": 4
-              }
-             }
-            }
-           }
-          },
-          "segmentation_id": {
-           "description": "Segmentation ID",
-           "type": "uint32"
-          }
-         }
-        }
-       }
-      },
-      "monitoring-param": {
-       "list": {
-        "http-endpoint": {
-         "description": "List of http endpoints to be used by monitoring params",
-         "key": "path",
-         "leaf": {
-          "path": {
-           "description": "The HTTP path on the management server",
-           "type": "string"
-          },
-          "https": {
-           "description": "Pick HTTPS instead of HTTP , Default is false",
-           "type": "boolean",
-           "default": "false"
-          },
-          "port": {
-           "description": "The HTTP port to connect to",
-           "type": "inet:port-number"
-          },
-          "username": {
-           "description": "The HTTP basic auth username",
-           "type": "string"
-          },
-          "password": {
-           "description": "The HTTP basic auth password",
-           "type": "string"
-          },
-          "polling_interval_secs": {
-           "description": "The HTTP polling interval in seconds",
-           "type": "uint8",
-           "default": "2"
-          },
-          "method": {
-           "description": "This is the method to be performed at the uri.\nGET by default for action",
-           "type": "manotypes:http-method",
-           "default": "GET"
-          }
-         },
-         "list": {
-          "headers": {
-           "description": "Custom HTTP headers to put on HTTP request",
-           "key": "key",
-           "leaf": {
-            "key": {
-             "description": "HTTP header key",
-             "type": "string"
-            },
-            "value": {
-             "description": "HTTP header value",
-             "type": "string"
-            }
-           }
-          }
-         }
-        },
-        "monitoring-param": {
-         "description": "List of monitoring parameters at the NS level",
-         "key": "id",
-         "leaf": {
-          "id": {
-           "type": "string"
-          },
-          "name": {
-           "type": "string"
-          },
-          "http-endpoint-ref": {
-           "type": {
-            "leafref": {
-             "path": "../../http-endpoint/path"
-            }
-           }
-          },
-          "json-query-method": {
-           "type": "manotypes:json-query-method",
-           "default": "NAMEKEY"
-          },
-          "description": {
-           "type": "string"
-          },
-          "group-tag": {
-           "description": "A simple tag to group monitoring parameters",
-           "type": "string"
-          },
-          "value-type": {
-           "type": "manotypes:param-value-type",
-           "default": "INT"
-          },
-          "value-integer": {
-           "description": "Current value for an integer parameter",
-           "type": "int64"
-          },
-          "value-decimal": {
-           "description": "Current value for a decimal parameter",
-           "type": {
-            "decimal64": {
-             "fraction-digits": "4"
-            }
-           }
-          },
-          "value-string": {
-           "description": "Current value for a string parameter",
-           "type": "string"
-          },
-          "widget-type": {
-           "type": "manotypes:widget-type"
-          },
-          "units": {
-           "type": "string"
-          }
-         },
-         "container": {
-          "json-query-params": {
-           "leaf": {
-            "json-path": {
-             "description": "The jsonpath to use to extract value from JSON structure",
-             "type": "string"
-            },
-            "object-path": {
-             "description": "The objectpath to use to extract value from JSON structure",
-             "type": "string"
-            }
-           }
-          },
-          "numeric-constraints": {
-           "leaf": {
-            "min-value": {
-             "description": "Minimum value for the parameter",
-             "type": "uint64"
-            },
-            "max-value": {
-             "description": "Maxium value for the parameter",
-             "type": "uint64"
-            }
-           }
-          },
-          "text-constraints": {
-           "leaf": {
-            "min-length": {
-             "description": "Minimum string length for the parameter",
-             "type": "uint8"
-            },
-            "max-length": {
-             "description": "Maximum string length for the parameter",
-             "type": "uint8"
-            }
-           }
-          }
-         }
-        }
-       }
-      },
-      "control-param": {
-       "list": {
-        "control-param": {
-         "description": "List of control parameters to manage and\nupdate the running configuration of the VNF",
-         "key": "id",
-         "leaf": {
-          "id": {
-           "type": "string"
-          },
-          "name": {
-           "type": "string"
-          },
-          "description": {
-           "type": "string"
-          },
-          "group-tag": {
-           "description": "A simple tag to group control parameters",
-           "type": "string"
-          },
-          "min-value": {
-           "description": "Minimum value for the parameter",
-           "type": "uint64"
-          },
-          "max-value": {
-           "description": "Maxium value for the parameter",
-           "type": "uint64"
-          },
-          "current-value": {
-           "description": "Current value for the parameter",
-           "type": "uint64"
-          },
-          "step-value": {
-           "description": "Step value for the parameter",
-           "type": "uint64"
-          },
-          "units": {
-           "type": "string"
-          },
-          "widget-type": {
-           "type": "manotypes:widget-type"
-          },
-          "url": {
-           "description": "This is the URL where to perform the operation",
-           "type": "inet:uri"
-          },
-          "method": {
-           "description": "This is the method to be performed at the uri.\nPOST by default for action",
-           "type": "manotypes:http-method",
-           "default": "POST"
-          },
-          "payload": {
-           "description": "This is the operation payload or payload template as stringified\nJSON. This field provides the data  to be sent for this operation\ncall",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "action-param": {
-       "list": {
-        "action-param": {
-         "description": "List of action parameters to\ncontrol VNF",
-         "key": "id",
-         "leaf": {
-          "id": {
-           "type": "string"
-          },
-          "name": {
-           "type": "string"
-          },
-          "description": {
-           "type": "string"
-          },
-          "group-tag": {
-           "description": "A simple tag to group monitoring parameter",
-           "type": "string"
-          },
-          "url": {
-           "description": "This is the URL where to perform the operation",
-           "type": "inet:uri"
-          },
-          "method": {
-           "description": "This is the method to be performed at the uri.\nPOST by default for action",
-           "type": "manotypes:http-method",
-           "default": "POST"
-          },
-          "payload": {
-           "description": "This is the operation payload or payload template to be sent in\nthe data for this operation call",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "input-parameter": {
-       "description": "",
-       "list": {
-        "input-parameter": {
-         "description": "List of input parameters",
-         "key": "xpath",
-         "leaf": {
-          "xpath": {
-           "description": "A an xpath that specfies which element in a descriptor is to be\nmodified.",
-           "type": "string"
-          },
-          "value": {
-           "description": "The value that the element specified by the xpath should take when a\nrecord is created.",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "input-parameter-xpath": {
-       "list": {
-        "input-parameter-xpath": {
-         "description": "List of xpaths to parameters inside the NSD\nthe can be customized during the instantiation.",
-         "key": "xpath",
-         "leaf": {
-          "xpath": {
-           "description": "An xpath that specifies the element in a descriptor.",
-           "type": "string"
-          },
-          "label": {
-           "description": "A descriptive string",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "nfvi-metrics": {
-       "container": {
-        "vcpu": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "VCPU"
-          },
-          "total": {
-           "description": "The total number of VCPUs available.",
-           "type": "uint64"
-          },
-          "utilization": {
-           "description": "The VCPU utilization (percentage).",
-           "type": {
-            "decimal64": {
-             "fraction-digits": "2",
-             "range": "0 .. 100"
-            }
-           }
-          }
-         }
-        },
-        "memory": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "MEMORY"
-          },
-          "used": {
-           "description": "The amount of memory (bytes) currently in use.",
-           "type": "uint64"
-          },
-          "total": {
-           "description": "The amount of memory (bytes) available.",
-           "type": "uint64"
-          },
-          "utilization": {
-           "description": "The memory utilization (percentage).",
-           "type": {
-            "decimal64": {
-             "fraction-digits": "2",
-             "range": "0 .. 100"
-            }
-           }
-          }
-         }
-        },
-        "storage": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "STORAGE"
-          },
-          "used": {
-           "description": "The amount of storage (bytes) currently in use.",
-           "type": "uint64"
-          },
-          "total": {
-           "description": "The amount of storage (bytes) available.",
-           "type": "uint64"
-          },
-          "utilization": {
-           "description": "The storage utilization (percentage).",
-           "type": {
-            "decimal64": {
-             "fraction-digits": "2",
-             "range": "0 .. 100"
-            }
-           }
-          }
-         }
-        },
-        "external-ports": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "EXTERNAL PORTS"
-          },
-          "total": {
-           "description": "The total number of external ports.",
-           "type": "uint64"
-          }
-         }
-        },
-        "internal-ports": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "INTERNAL PORTS"
-          },
-          "total": {
-           "description": "The total number of internal ports.",
-           "type": "uint64"
-          }
-         }
-        },
-        "network": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "NETWORK TRAFFIC"
-          }
-         },
-         "container": {
-          "incoming": {
-           "leaf": {
-            "label": {
-             "description": "Label to show in UI",
-             "type": "string",
-             "default": "INCOMING NETWORK TRAFFIC"
-            },
-            "bytes": {
-             "description": "The cumulative number of incoming bytes.",
-             "type": "uint64"
-            },
-            "packets": {
-             "description": "The cumulative number of incoming packets.",
-             "type": "uint64"
-            },
-            "byte-rate": {
-             "description": "The current incoming byte-rate (bytes per second).",
-             "type": {
-              "decimal64": {
-               "fraction-digits": "2"
-              }
-             }
-            },
-            "packet-rate": {
-             "description": "The current incoming packet (packets per second).",
-             "type": {
-              "decimal64": {
-               "fraction-digits": "2"
-              }
-             }
-            }
-           }
-          },
-          "outgoing": {
-           "leaf": {
-            "label": {
-             "description": "Label to show in UI",
-             "type": "string",
-             "default": "OUTGOING NETWORK TRAFFIC"
-            },
-            "bytes": {
-             "description": "The cumulative number of outgoing bytes.",
-             "type": "uint64"
-            },
-            "packets": {
-             "description": "The cumulative number of outgoing packets.",
-             "type": "uint64"
-            },
-            "byte-rate": {
-             "description": "The current outgoing byte-rate (bytes per second).",
-             "type": {
-              "decimal64": {
-               "fraction-digits": "2"
-              }
-             }
-            },
-            "packet-rate": {
-             "description": "The current outgoing packet (packets per second).",
-             "type": {
-              "decimal64": {
-               "fraction-digits": "2"
-              }
-             }
-            }
-           }
-          }
-         }
-        }
-       }
-      }
-     }
-    }
-   }
-  }
- },
- "extension": {
-  "module": {
-   "argument": "name",
-   "include": "0..n",
-   "prefix": "0..1",
-   "anyxml": "0..n",
-   "augment": "0..n",
-   "choice": "0..n",
-   "contact": "0..1",
-   "container": "0..n",
-   "description": "0..1",
-   "deviation": "0..n",
-   "extension": "0..n",
-   "feature": "0..n",
-   "grouping": "0..n",
-   "identity": "0..n",
-   "import": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "namespace": "0..1",
-   "notification": "0..n",
-   "organization": "0..1",
-   "reference": "0..1",
-   "revision": "0..n",
-   "rpc": "0..n",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "yang-version": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  var changes, match, ref, synth, target;\n  synth = this.require('data-synth');\n  ref = params.augment;\n  for (target in ref) {\n    changes = ref[target];\n    match = this.locate(ctx, target);\n    if (match == null) {\n      continue;\n    }\n    synth.copy(match, changes);\n  }\n  return delete this.source[params.prefix];\n}"
-   },
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var k, m, modules, ref, synth, v;\n  synth = this.require('data-synth');\n  modules = {};\n  ref = params[\"import\"];\n  for (k in ref) {\n    v = ref[k];\n    modules[k] = children[k];\n    delete children[k];\n  }\n  m = (synth.Store(params, function() {\n    return this.set({\n      name: arg,\n      modules: modules\n    });\n  })).bind(children);\n  this.define('module', arg, m);\n  return m;\n}"
-   }
-  },
-  "prefix": {
-   "argument": "value",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return this.source[arg] = this.source;\n}"
-   }
-  },
-  "include": {
-   "argument": "module",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  var k, m, ref, ref1, ref2, results, v;\n  m = this.preprocess(this.resolve('dependencies', arg));\n  ref = m.extension;\n  for (k in ref) {\n    v = ref[k];\n    this.define('extension', k, v);\n  }\n  ref1 = m.typedef;\n  for (k in ref1) {\n    v = ref1[k];\n    this.define('typedef', k, v);\n  }\n  ref2 = m.schema;\n  results = [];\n  for (k in ref2) {\n    v = ref2[k];\n    results.push(ctx[k] = v);\n  }\n  return results;\n}"
-   },
-   "revision-date": "0..1"
-  },
-  "augment": {
-   "anyxml": "0..n",
-   "case": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "uses": "0..n",
-   "when": "0..1",
-   "argument": "target-node"
-  },
-  "belongs-to": {
-   "prefix": 1,
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return this.source[params.prefix] = this.source;\n}"
-   },
-   "argument": "module"
-  },
-  "bit": {
-   "description": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "position": "0..1",
-   "argument": "name"
-  },
-  "case": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "uses": "0..n",
-   "when": "0..1",
-   "argument": "name"
-  },
-  "choice": {
-   "anyxml": "0..n",
-   "case": "0..n",
-   "config": "0..1",
-   "container": "0..n",
-   "default": "0..1",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "mandatory": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "when": "0..1",
-   "argument": "condition"
-  },
-  "config": {
-   "preprocess": {
-    "!js/function": "function (arg, p, ctx) {\n  return ctx.config = arg === true || arg === 'true';\n}"
-   },
-   "argument": "value"
-  },
-  "container": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "config": "0..1",
-   "container": "0..n",
-   "description": "0..1",
-   "grouping": "0..n",
-   "if-feature": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "must": "0..n",
-   "presence": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "when": "0..1",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var synth;\n  synth = this.require('data-synth');\n  return (synth.Object(params)).bind(children);\n}"
-   },
-   "argument": "name"
-  },
-  "deviate": {
-   "config": "0..1",
-   "default": "0..1",
-   "mandatory": "0..1",
-   "max-elements": "0..1",
-   "min-elements": "0..1",
-   "must": "0..n",
-   "type": "0..1",
-   "unique": "0..1",
-   "units": "0..1",
-   "argument": "value"
-  },
-  "deviation": {
-   "description": "0..1",
-   "deviate": "1..n",
-   "reference": "0..1",
-   "argument": "target-node"
-  },
-  "enum": {
-   "description": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "value": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  if (params.value == null) {\n    if (this.enumValue == null) {\n      this.enumValue = 0;\n    }\n    params.value = this.enumValue++;\n  } else {\n    params.value = Number(params.value);\n    this.enumValue = params.value + 1;\n  }\n  return ctx[\"enum\"][arg] = params;\n}"
-   },
-   "argument": "name"
-  },
-  "feature": {
-   "description": "0..1",
-   "if-feature": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  if (params.status === 'unavailable') {\n    console.warn(\"feature \" + arg + \" is unavailable\");\n    if (typeof ctx.feature === 'object') {\n      return delete ctx.feature[arg];\n    } else {\n      return delete ctx.feature;\n    }\n  }\n}"
-   },
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var feature;\n  feature = this.resolve('feature', arg);\n  return null;\n}"
-   },
-   "argument": "name"
-  },
-  "grouping": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "description": "0..1",
-   "grouping": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "preprocess": {
-    "!js/function": "function (arg, params) {\n  return this.define('grouping', arg, params);\n}"
-   },
-   "argument": "name"
-  },
-  "identity": {
-   "base": "0..1",
-   "description": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params) {\n  return this.define('identity', arg, params);\n}"
-   },
-   "argument": "name"
-  },
-  "if-feature": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  if ((this.resolve('feature', arg)) == null) {\n    return ctx.status = 'unavailable';\n  }\n}"
-   },
-   "argument": "name"
-  },
-  "import": {
-   "prefix": 1,
-   "revision-date": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  var copy, k, m, original, ref, ref1, rev, schema, source, synth, v;\n  synth = this.require('data-synth');\n  schema = this.resolve('dependencies', arg, false);\n  if (schema == null) {\n    console.warn(\"no explicit dependency for \" + arg + \" defined, searching local filesystem\");\n    schema = this.parse(\"!yang \" + arg + \".yang\", this.source);\n    if (schema != null) {\n      this.define('dependencies', arg, schema);\n      source = this.source.parent;\n      while ((source.parent != null) && source.parent.name !== 'yangforge') {\n        source = source.parent;\n      }\n      if (source.dependencies == null) {\n        source.dependencies = {};\n      }\n      source.dependencies[arg] = schema;\n    }\n  }\n  m = this.preprocess(schema);\n  if (m == null) {\n    throw this.error(\"unable to resolve '\" + arg + \"' in dependencies\", 'import');\n  }\n  rev = params['revision-date'];\n  if ((rev != null) && !(rev in m.revision)) {\n    throw this.error(\"requested \" + rev + \" not available in \" + arg, 'import');\n  }\n  ref = m.extension;\n  for (k in ref) {\n    v = ref[k];\n    if (!(v.override === true)) {\n      continue;\n    }\n    original = this.resolve('extension', k);\n    copy = synth.copy({}, v);\n    copy.origin = synth.copy({}, (ref1 = original.origin) != null ? ref1 : original);\n    delete copy.override;\n    this.define('extension', k, copy);\n  }\n  return this.source[params.prefix] = m;\n}"
-   },
-   "construct": {
-    "!js/function": "function (arg, params, children, ctx) {\n  return this.compile(this.source[params.prefix], this.source);\n}"
-   },
-   "argument": "module"
-  },
-  "input": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "grouping": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var synth;\n  synth = this.require('data-synth');\n  return (synth.Object(params)).bind(children);\n}"
-   }
-  },
-  "leaf": {
-   "config": "0..1",
-   "default": "0..1",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "mandatory": "0..1",
-   "must": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "type": "0..1",
-   "units": "0..1",
-   "when": "0..1",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var synth;\n  synth = this.require('data-synth');\n  return synth.Property(params, function() {\n    if (children.type != null) {\n      return this.set({\n        type: children.type\n      });\n    }\n  });\n}"
-   },
-   "argument": "name"
-  },
-  "leaf-list": {
-   "config": "0..1",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "max-elements": "0..1",
-   "min-elements": "0..1",
-   "must": "0..n",
-   "ordered-by": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "type": "0..1",
-   "units": "0..1",
-   "when": "0..1",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var synth;\n  synth = this.require('data-synth');\n  return synth.List(params, function() {\n    if (children.type != null) {\n      return this.set({\n        type: children.type\n      });\n    }\n  });\n}"
-   },
-   "argument": "name"
-  },
-  "list": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "config": "0..1",
-   "container": "0..n",
-   "description": "0..1",
-   "grouping": "0..n",
-   "if-feature": "0..n",
-   "key": "0..1",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "max-elements": "0..1",
-   "min-elements": "0..1",
-   "must": "0..n",
-   "ordered-by": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "typedef": "0..n",
-   "unique": "0..1",
-   "uses": "0..n",
-   "when": "0..1",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var item, synth;\n  synth = this.require('data-synth');\n  item = (synth.Object(null)).bind(children);\n  return (synth.List(params)).set({\n    type: item\n  });\n}"
-   },
-   "argument": "name"
-  },
-  "mandatory": {
-   "preprocess": {
-    "!js/function": "function (arg, p, ctx) {\n  return ctx.mandatory = arg === true || arg === 'true';\n}"
-   },
-   "argument": "value"
-  },
-  "max-elements": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  if (arg !== 'unbounded') {\n    return ctx['max-elements'] = Number(arg);\n  }\n}"
-   },
-   "argument": "value"
-  },
-  "min-elements": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return ctx['min-elements'] = Number(arg);\n}"
-   },
-   "argument": "value"
-  },
-  "must": {
-   "description": "0..1",
-   "error-app-tag": "0..1",
-   "error-message": "0..1",
-   "reference": "0..1",
-   "argument": "condition"
-  },
-  "notification": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "description": "0..1",
-   "grouping": "0..n",
-   "if-feature": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "preprocess": {
-    "!js/function": "function (arg, params) {\n  return this.define('notification', arg, params);\n}"
-   },
-   "argument": "event"
-  },
-  "output": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "grouping": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var synth;\n  synth = this.require('data-synth');\n  return (synth.Object(params)).bind(children);\n}"
-   }
-  },
-  "path": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return ctx.path = arg.replace(/[_]/g, '.');\n}"
-   },
-   "argument": "value"
-  },
-  "pattern": {
-   "construct": {
-    "!js/function": "function (arg, params, children, ctx) {\n  if (ctx.patterns == null) {\n    ctx.patterns = [];\n  }\n  return ctx.patterns.push(new RegExp(arg));\n}"
-   },
-   "argument": "value"
-  },
-  "refine": {
-   "default": "0..1",
-   "description": "0..1",
-   "reference": "0..1",
-   "config": "0..1",
-   "mandatory": "0..1",
-   "presence": "0..1",
-   "must": "0..n",
-   "min-elements": "0..1",
-   "max-elements": "0..1",
-   "units": "0..1",
-   "argument": "target-node"
-  },
-  "require-instance": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return ctx['require-instance'] = arg === true || arg === 'true';\n}"
-   },
-   "argument": "value"
-  },
-  "revision": {
-   "description": "0..1",
-   "reference": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return this.define('revision', arg, params);\n}"
-   },
-   "argument": "date"
-  },
-  "rpc": {
-   "description": "0..1",
-   "grouping": "0..n",
-   "if-feature": "0..n",
-   "input": "0..1",
-   "output": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "typedef": "0..n",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var func, method, ref, ref1, request, response, synth;\n  synth = this.require('data-synth');\n  func = this.resolve('rpc', arg, false);\n  if (func == null) {\n    func = function(input, output, done) {\n      return done(\"No control logic found for '\" + arg + \"' rpc operation\");\n    };\n  }\n  request = (ref = children.input) != null ? ref : synth.Meta;\n  response = (ref1 = children.output) != null ? ref1 : synth.Meta;\n  method = function(data, resolve, reject) {\n    var e, error, input, output;\n    if (typeof console.debug === \"function\") {\n      console.debug(\"executing rpc \" + arg + \"...\");\n    }\n    try {\n      input = new request(data, this);\n      output = new response(null, this);\n    } catch (error) {\n      e = error;\n      return reject(e);\n    }\n    return func.call(this, input, output, function(e) {\n      if (e == null) {\n        return resolve(output);\n      } else {\n        return reject(e);\n      }\n    });\n  };\n  method.params = params;\n  method.input = request;\n  method.output = response;\n  return method;\n}"
-   },
-   "argument": "name"
-  },
-  "submodule": {
-   "argument": "name",
-   "anyxml": "0..n",
-   "augment": "0..n",
-   "belongs-to": "0..1",
-   "choice": "0..n",
-   "contact": "0..1",
-   "container": "0..n",
-   "description": "0..1",
-   "deviation": "0..n",
-   "extension": "0..n",
-   "feature": "0..n",
-   "grouping": "0..n",
-   "identity": "0..n",
-   "import": "0..n",
-   "include": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "notification": "0..n",
-   "organization": "0..1",
-   "reference": "0..1",
-   "revision": "0..n",
-   "rpc": "0..n",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "yang-version": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  var k, v;\n  for (k in params) {\n    v = params[k];\n    ctx[k] = v;\n  }\n  return delete ctx.submodule;\n}"
-   }
-  },
-  "status": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return ctx.status != null ? ctx.status : ctx.status = arg;\n}"
-   },
-   "argument": "value"
-  },
-  "type": {
-   "base": "0..1",
-   "bit": "0..n",
-   "enum": "0..n",
-   "fraction-digits": "0..1",
-   "length": "0..1",
-   "path": "0..1",
-   "pattern": "0..n",
-   "range": "0..1",
-   "require-instance": "0..1",
-   "type": "0..n",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return delete this.enumValue;\n}"
-   },
-   "construct": {
-    "!js/function": "function (arg, params, children, ctx) {\n  var key, mparams, ref, ref1, synth, typedef, value;\n  synth = this.require('data-synth');\n  typedef = this.resolve('typedef', arg);\n  if (typedef == null) {\n    throw this.error(\"unable to resolve typedef for \" + arg);\n  }\n  switch (false) {\n    case typedef.construct == null:\n      ctx.type = typedef.construct(params, this, arguments.callee);\n      break;\n    case typeof typedef.type !== 'object':\n      ref = typedef.type;\n      for (key in ref) {\n        value = ref[key];\n        mparams = synth.copy({}, value);\n        synth.copy(mparams, params);\n        arguments.callee.call(this, key, mparams, children, ctx);\n      }\n      break;\n    case typeof typedef.type !== 'string':\n      arguments.callee.call(this, typedef.type, params, children, ctx);\n  }\n  if ((ref1 = ctx.type) != null) {\n    ref1.toString = function() {\n      return arg;\n    };\n  }\n  return null;\n}"
-   },
-   "argument": "name"
-  },
-  "typedef": {
-   "default": "0..1",
-   "description": "0..1",
-   "units": "0..1",
-   "type": "0..1",
-   "reference": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params) {\n  return this.define('typedef', arg, params);\n}"
-   },
-   "argument": "name"
-  },
-  "uses": {
-   "augment": "0..n",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "refine": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "when": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  var changes, grouping, k, match, ref, ref1, synth, target, v;\n  synth = this.require('data-synth');\n  grouping = synth.copy({}, this.resolve('grouping', arg));\n  delete grouping.description;\n  delete grouping.reference;\n  synth.copy(ctx, grouping);\n  ref = params.refine;\n  for (target in ref) {\n    changes = ref[target];\n    match = this.locate(ctx, target);\n    if (match == null) {\n      continue;\n    }\n    for (k in changes) {\n      v = changes[k];\n      match[k] = v;\n    }\n  }\n  ref1 = params.augment;\n  for (target in ref1) {\n    changes = ref1[target];\n    match = this.locate(ctx, target);\n    if (match == null) {\n      continue;\n    }\n    synth.copy(match, changes);\n  }\n  if (typeof ctx.uses === 'object') {\n    return delete ctx.uses[arg];\n  } else {\n    return delete ctx.uses;\n  }\n}"
-   },
-   "argument": "name"
-  },
-  "when": {
-   "description": "0..1",
-   "reference": "0..1",
-   "argument": "condition"
-  },
-  "anyxml": {},
-  "base": {
-   "argument": "name"
-  },
-  "contact": {
-   "argument": {
-    "text": {
-     "yin-element": "true"
-    }
-   }
-  },
-  "default": {
-   "argument": "value"
-  },
-  "description": {
-   "argument": {
-    "text": {
-     "yin-element": "true"
-    }
-   }
-  },
-  "error-app-tag": {
-   "argument": "value"
-  },
-  "error-message": {
-   "argument": {
-    "value": {
-     "yin-element": "true"
-    }
-   }
-  },
-  "fraction-digits": {
-   "argument": "value"
-  },
-  "key": {
-   "argument": "value"
-  },
-  "length": {
-   "argument": "value"
-  },
-  "namespace": {
-   "argument": "uri"
-  },
-  "ordered-by": {
-   "argument": "value"
-  },
-  "organization": {
-   "argument": {
-    "text": {
-     "yin-element": "true"
-    }
-   }
-  },
-  "position": {
-   "argument": "value"
-  },
-  "presence": {
-   "argument": "value"
-  },
-  "range": {
-   "argument": "value"
-  },
-  "reference": {
-   "argument": {
-    "text": {
-     "yin-element": "true"
-    }
-   }
-  },
-  "revision-date": {
-   "argument": "date"
-  },
-  "unique": {
-   "argument": "tag"
-  },
-  "units": {
-   "argument": "value"
-  },
-  "value": {
-   "argument": "value"
-  },
-  "yang-version": {
-   "argument": "value"
-  },
-  "yin-element": {
-   "argument": "value"
-  }
- },
- "pkgdir": "/Users/onvelocity/rift-composer/webapp/schemas/yang",
- "module": {}
-}
\ No newline at end of file
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw.vld-yang.json b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw.vld-yang.json
deleted file mode 100644 (file)
index 6cc4bd3..0000000
+++ /dev/null
@@ -1,2936 +0,0 @@
-{
- "synth": "source",
- "name": "rw-vld",
- "schema": {
-  "module": {
-   "rw-vld": {
-    "namespace": "http://riftio.com/ns/riftware-1.0/rw-vld",
-    "prefix": "rw-vld",
-    "import": {
-     "vld": {
-      "prefix": "vld"
-     }
-    },
-    "revision": {
-     "2015-09-10": {
-      "description": "Initial revision. This YANG file augments\nthe base MANO VLD",
-      "reference": "Derived from earlier versions of base YANG files"
-     }
-    }
-   }
-  }
- },
- "dependencies": {
-  "vld": {
-   "module": {
-    "vld": {
-     "namespace": "urn:ietf:params:xml:ns:yang:nfvo:vld",
-     "prefix": "vld",
-     "import": {
-      "rw-pb-ext": {
-       "prefix": "rwpb"
-      },
-      "vnfd": {
-       "prefix": "vnfd"
-      },
-      "ietf-inet-types": {
-       "prefix": "inet"
-      },
-      "ietf-yang-types": {
-       "prefix": "yang"
-      },
-      "mano-types": {
-       "prefix": "manotypes"
-      }
-     },
-     "revision": {
-      "2015-09-10": {
-       "description": "Initial revision. This YANG file defines\nthe Virtual Link Descriptor (VLD)",
-       "reference": "Derived from earlier versions of base YANG files"
-      }
-     },
-     "container": {
-      "vld-catalog": {
-       "list": {
-        "vld": {
-         "key": "id",
-         "leaf": {
-          "id": {
-           "description": "Identifier for the VLD.",
-           "type": "yang:uuid"
-          },
-          "name": {
-           "description": "Virtual Link Descriptor (VLD) name.",
-           "type": "string"
-          },
-          "short-name": {
-           "description": "Short name for VLD for UI",
-           "type": "string"
-          },
-          "vendor": {
-           "description": "Provider of the VLD.",
-           "type": "string"
-          },
-          "description": {
-           "description": "Description of the VLD.",
-           "type": "string"
-          },
-          "version": {
-           "description": "Version of the VLD",
-           "type": "string"
-          },
-          "type": {
-           "type": "manotypes:virtual-link-type"
-          },
-          "root-bandwidth": {
-           "description": "For ELAN this is the aggregate bandwidth.",
-           "type": "uint64"
-          },
-          "leaf-bandwidth": {
-           "description": "For ELAN this is the bandwidth of branches.",
-           "type": "uint64"
-          }
-         },
-         "list": {
-          "vnfd-connection-point-ref": {
-           "description": "A list of references to connection points.",
-           "key": "vnfd-ref member-vnf-index-ref",
-           "leaf": {
-            "vnfd-ref": {
-             "description": "A reference to a vnfd",
-             "type": {
-              "leafref": {
-               "path": "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id"
-              }
-             }
-            },
-            "member-vnf-index-ref": {
-             "description": "A reference to the consituent-vnfd id in nsd.\nShould have been a leafref to:\n '/nsd:nsd-catalog:/nsd:nsd/constituent-vnfd/member-vnf-index-ref'.\nInstead using direct leaf to avoid circular reference.",
-             "type": "uint64"
-            },
-            "vnfd-connection-point-ref": {
-             "description": "A reference to a connection point name in a vnfd",
-             "type": {
-              "leafref": {
-               "path": "/vnfd:vnfd-catalog/vnfd:vnfd[vnfd:id = current()/../vld:vnfd-ref]/vnfd:connection-point/vnfd:name"
-              }
-             }
-            }
-           }
-          }
-         },
-         "uses": "manotypes:provider-network"
-        }
-       }
-      }
-     }
-    }
-   }
-  },
-  "rw-pb-ext": {
-   "module": {
-    "rw-pb-ext": {
-     "namespace": "http://riftio.com/ns/riftware-1.0/rw-pb-ext",
-     "prefix": "rwpb",
-     "revision": {
-      "2014-03-28": {
-       "description": "Initial revision.",
-       "reference": "RIFT yang extensions for converting yang files to Google\nProtocol Buffers (protobuf) using rift protoc-c extensions."
-      }
-     }
-    }
-   }
-  },
-  "vnfd": {
-   "module": {
-    "vnfd": {
-     "namespace": "urn:ietf:params:xml:ns:yang:nfvo:vnfd",
-     "prefix": "vnfd",
-     "import": {
-      "mano-types": {
-       "prefix": "manotypes"
-      },
-      "rw-pb-ext": {
-       "prefix": "rwpb"
-      },
-      "ietf-yang-types": {
-       "prefix": "yang"
-      },
-      "ietf-inet-types": {
-       "prefix": "inet"
-      }
-     },
-     "revision": {
-      "2015-09-10": {
-       "description": "Initial revision. This YANG file defines\nthe Virtual Network Function (VNF)",
-       "reference": "Derived from earlier versions of base YANG files"
-      }
-     },
-     "grouping": {
-      "virtual-interface": {
-       "container": {
-        "virtual-interface": {
-         "description": "Container for the virtual interface properties",
-         "leaf": {
-          "type": {
-           "description": "Specifies the type of virtual interface\nbetween VM and host.\nVIRTIO          : Use the traditional VIRTIO interface.\nPCI-PASSTHROUGH : Use PCI-PASSTHROUGH interface.\nSR-IOV          : Use SR-IOV interface.\nOM-MGMT         : Used to specify openmano mgmt external-connection type",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "OM-MGMT": {
-               "value": 0
-              },
-              "PCI-PASSTHROUGH": {
-               "value": 1
-              },
-              "SR-IOV": {
-               "value": 2
-              },
-              "VIRTIO": {
-               "value": 3
-              }
-             }
-            }
-           },
-           "default": "VIRTIO"
-          },
-          "vpci": {
-           "description": "Specifies the virtual PCI address. Expressed in\nthe following format dddd:dd:dd.d. For example\n0000:00:12.0. This information can be used to\npass as metadata during the VM creation.",
-           "type": "string"
-          },
-          "bandwidth": {
-           "description": "Aggregate bandwidth of the NIC.",
-           "type": "uint64"
-          }
-         }
-        }
-       }
-      }
-     },
-     "container": {
-      "vnfd-catalog": {
-       "description": "Virtual Network Function Descriptor (VNFD).",
-       "list": {
-        "vnfd": {
-         "key": "id",
-         "leaf": {
-          "id": {
-           "description": "Identifier for the VNFD.",
-           "type": "yang:uuid"
-          },
-          "name": {
-           "description": "VNFD name.",
-           "type": "string"
-          },
-          "short-name": {
-           "description": "VNFD short name.",
-           "type": "string"
-          },
-          "vendor": {
-           "description": "Vendor of the VNFD.",
-           "type": "string"
-          },
-          "description": {
-           "description": "Description of the VNFD.",
-           "type": "string"
-          },
-          "version": {
-           "description": "Version of the VNFD",
-           "type": "string"
-          }
-         },
-         "container": {
-          "mgmt-interface": {
-           "description": "Interface over which the VNF is managed.",
-           "choice": {
-            "endpoint-type": {
-             "description": "Indicates the type of management endpoint.",
-             "case": {
-              "ip": {
-               "description": "Specifies the static IP address for managing the VNF.",
-               "leaf": {
-                "ip-address": {
-                 "type": "inet:ip-address"
-                }
-               }
-              },
-              "vdu-id": {
-               "description": "Use the default management interface on this VDU.",
-               "leaf": {
-                "vdu-id": {
-                 "type": {
-                  "leafref": {
-                   "path": "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:vdu/vnfd:id"
-                  }
-                 }
-                }
-               }
-              },
-              "cp": {
-               "description": "Use the ip address associated with this connection point.",
-               "leaf": {
-                "cp": {
-                 "type": {
-                  "leafref": {
-                   "path": "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:connection-point/vnfd:name"
-                  }
-                 }
-                }
-               }
-              }
-             }
-            },
-            "interface-type": {
-             "case": {
-              "netconf": {
-               "leaf": {
-                "netconf": {
-                 "type": "empty"
-                }
-               }
-              }
-             }
-            }
-           },
-           "leaf": {
-            "port": {
-             "description": "Port for the management interface.",
-             "type": "inet:port-number"
-            }
-           },
-           "container": {
-            "dashboard-params": {
-             "description": "Parameters for the VNF dashboard",
-             "leaf": {
-              "path": {
-               "description": "The HTTP path for the dashboard",
-               "type": "string"
-              }
-             }
-            }
-           }
-          }
-         },
-         "list": {
-          "internal-vld": {
-           "key": "id",
-           "description": "List of Internal Virtual Link Descriptors (VLD).\nThe internal VLD describes the basic topology of\nthe connectivity (e.g. E-LAN, E-Line, E-Tree)\nbetween internal VNF components of the system.",
-           "leaf": {
-            "id": {
-             "description": "Identifier for the VLD",
-             "type": "yang:uuid"
-            },
-            "name": {
-             "description": "Name of the internal VLD",
-             "type": "string"
-            },
-            "short-name": {
-             "description": "Short name of the internal VLD",
-             "type": "string"
-            },
-            "description": {
-             "type": "string"
-            },
-            "type": {
-             "type": "manotypes:virtual-link-type"
-            },
-            "root-bandwidth": {
-             "description": "For ELAN this is the aggregate bandwidth.",
-             "type": "uint64"
-            },
-            "leaf-bandwidth": {
-             "description": "For ELAN this is the bandwidth of branches.",
-             "type": "uint64"
-            }
-           },
-           "leaf-list": {
-            "internal-connection-point-ref": {
-             "type": {
-              "leafref": {
-               "path": "../../vdu/internal-connection-point/id"
-              }
-             }
-            }
-           },
-           "container": {
-            "provider-network": {
-             "description": "Container for the provider network.",
-             "leaf": {
-              "name": {
-               "description": "Name of the provider network.",
-               "type": "string"
-              },
-              "physical-network": {
-               "description": "Name of the phsyical network on which the provider\nnetwork is built.",
-               "type": "string"
-              },
-              "overlay-type": {
-               "description": "Type of the overlay network.",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "LOCAL": {
-                   "value": 0
-                  },
-                  "FLAT": {
-                   "value": 1
-                  },
-                  "VLAN": {
-                   "value": 2
-                  },
-                  "VXLAN": {
-                   "value": 3
-                  },
-                  "GRE": {
-                   "value": 4
-                  }
-                 }
-                }
-               }
-              },
-              "segmentation_id": {
-               "description": "Segmentation ID",
-               "type": "uint32"
-              }
-             }
-            }
-           }
-          },
-          "connection-point": {
-           "key": "name",
-           "description": "List for external connection points. Each VNF has one\nor more external connection points. As the name\nimplies that external connection points are used for\nconnecting the VNF to other VNFs or to external networks.\nEach VNF exposes these connection points to the\norchestrator. The orchestrator can construct network\nservices by connecting the connection points between\ndifferent VNFs. The NFVO will use VLDs and VNFFGs at\nthe network service level to construct network services.",
-           "leaf": {
-            "name": {
-             "description": "Name of the connection point",
-             "type": "string"
-            },
-            "short-name": {
-             "description": "Short name of the connection point",
-             "type": "string"
-            },
-            "type": {
-             "description": "Type of the connection point.",
-             "type": "manotypes:connection-point-type"
-            }
-           }
-          },
-          "vdu": {
-           "description": "List of Virtual Deployment Units",
-           "key": "id",
-           "leaf": {
-            "id": {
-             "description": "Unique id for the VDU",
-             "type": "yang:uuid"
-            },
-            "name": {
-             "description": "Unique name for the VDU",
-             "type": "string"
-            },
-            "description": {
-             "description": "Description of the VDU.",
-             "type": "string"
-            },
-            "count": {
-             "description": "Number of instances of VDU",
-             "type": "uint64"
-            },
-            "mgmt-vpci": {
-             "description": "Specifies the virtual PCI address. Expressed in\nthe following format dddd:dd:dd.d. For example\n0000:00:12.0. This information can be used to\npass as metadata during the VM creation.",
-             "type": "string"
-            },
-            "image": {
-             "description": "File/URL path to the software image",
-             "type": "string"
-            },
-            "cloud-init": {
-             "description": "Content of cloud-init script",
-             "type": "string"
-            }
-           },
-           "uses": {},
-           "list": {
-            "internal-connection-point": {
-             "key": "id",
-             "description": "List for internal connection points. Each VNFC\nhas zero or more internal connection points.\nInternal connection points are used for connecting\nthe VNF components internal to the VNF. If a VNF\nhas only one VNFC, it may not have any internal\nconnection points.",
-             "leaf": {
-              "id": {
-               "description": "Identifier for the internal connection points",
-               "type": "yang:uuid"
-              },
-              "type": {
-               "description": "Type of the connection point.",
-               "type": "manotypes:connection-point-type"
-              },
-              "internal-vld-ref": {
-               "type": {
-                "leafref": {
-                 "path": "../../../internal-vld/id"
-                }
-               }
-              }
-             }
-            },
-            "internal-interface": {
-             "description": "List of internal interfaces for the VNF",
-             "key": "name",
-             "leaf": {
-              "name": {
-               "description": "Name of internal interface. Note that this\nname has only local significance to the VDU.",
-               "type": "string"
-              },
-              "vdu-internal-connection-point-ref": {
-               "type": {
-                "leafref": {
-                 "path": "../../internal-connection-point/id"
-                }
-               }
-              }
-             },
-             "container": {
-              "virtual-interface": {
-               "description": "Container for the virtual interface properties",
-               "leaf": {
-                "type": {
-                 "description": "Specifies the type of virtual interface\nbetween VM and host.\nVIRTIO          : Use the traditional VIRTIO interface.\nPCI-PASSTHROUGH : Use PCI-PASSTHROUGH interface.\nSR-IOV          : Use SR-IOV interface.\nOM-MGMT         : Used to specify openmano mgmt external-connection type",
-                 "type": {
-                  "enumeration": {
-                   "enum": {
-                    "OM-MGMT": {
-                     "value": 0
-                    },
-                    "PCI-PASSTHROUGH": {
-                     "value": 1
-                    },
-                    "SR-IOV": {
-                     "value": 2
-                    },
-                    "VIRTIO": {
-                     "value": 3
-                    }
-                   }
-                  }
-                 },
-                 "default": "VIRTIO"
-                },
-                "vpci": {
-                 "description": "Specifies the virtual PCI address. Expressed in\nthe following format dddd:dd:dd.d. For example\n0000:00:12.0. This information can be used to\npass as metadata during the VM creation.",
-                 "type": "string"
-                },
-                "bandwidth": {
-                 "description": "Aggregate bandwidth of the NIC.",
-                 "type": "uint64"
-                }
-               }
-              }
-             }
-            },
-            "external-interface": {
-             "description": "List of external interfaces for the VNF.\nThe external interfaces enable sending\ntraffic to and from VNF.",
-             "key": "name",
-             "leaf": {
-              "name": {
-               "description": "Name of the external interface. Note that\nthis name has only local significance.",
-               "type": "string"
-              },
-              "vnfd-connection-point-ref": {
-               "description": "Name of the external connection point.",
-               "type": {
-                "leafref": {
-                 "path": "../../../connection-point/name"
-                }
-               }
-              }
-             },
-             "container": {
-              "virtual-interface": {
-               "description": "Container for the virtual interface properties",
-               "leaf": {
-                "type": {
-                 "description": "Specifies the type of virtual interface\nbetween VM and host.\nVIRTIO          : Use the traditional VIRTIO interface.\nPCI-PASSTHROUGH : Use PCI-PASSTHROUGH interface.\nSR-IOV          : Use SR-IOV interface.\nOM-MGMT         : Used to specify openmano mgmt external-connection type",
-                 "type": {
-                  "enumeration": {
-                   "enum": {
-                    "OM-MGMT": {
-                     "value": 0
-                    },
-                    "PCI-PASSTHROUGH": {
-                     "value": 1
-                    },
-                    "SR-IOV": {
-                     "value": 2
-                    },
-                    "VIRTIO": {
-                     "value": 3
-                    }
-                   }
-                  }
-                 },
-                 "default": "VIRTIO"
-                },
-                "vpci": {
-                 "description": "Specifies the virtual PCI address. Expressed in\nthe following format dddd:dd:dd.d. For example\n0000:00:12.0. This information can be used to\npass as metadata during the VM creation.",
-                 "type": "string"
-                },
-                "bandwidth": {
-                 "description": "Aggregate bandwidth of the NIC.",
-                 "type": "uint64"
-                }
-               }
-              }
-             }
-            }
-           },
-           "container": {
-            "vm-flavor": {
-             "leaf": {
-              "vcpu-count": {
-               "description": "Number of vcpus for the VM.",
-               "type": "uint16"
-              },
-              "memory-mb": {
-               "description": "Amount of memory in MB.",
-               "type": "uint64"
-              },
-              "storage-gb": {
-               "description": "Amount of disk space in GB.",
-               "type": "uint64"
-              }
-             }
-            },
-            "guest-epa": {
-             "leaf": {
-              "trusted-execution": {
-               "description": "This VM should be allocated from trusted pool",
-               "type": "boolean"
-              },
-              "mempage-size": {
-               "description": "Memory page allocation size. If a VM requires\nhugepages, it should choose LARGE or SIZE_2MB\nor SIZE_1GB. If the VM prefers hugepages it\nshould chose PREFER_LARGE.\nLARGE        : Require hugepages (either 2MB or 1GB)\nSMALL        : Doesn't require hugepages\nSIZE_2MB     : Requires 2MB hugepages\nSIZE_1GB     : Requires 1GB hugepages\nPREFER_LARGE : Application perfers hugepages",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "LARGE": {
-                   "value": 0
-                  },
-                  "SMALL": {
-                   "value": 1
-                  },
-                  "SIZE_2MB": {
-                   "value": 2
-                  },
-                  "SIZE_1GB": {
-                   "value": 3
-                  },
-                  "PREFER_LARGE": {
-                   "value": 4
-                  }
-                 }
-                }
-               },
-               "default": "SMALL"
-              },
-              "cpu-pinning-policy": {
-               "description": "CPU pinning policy describes association\nbetween virtual CPUs in guest and the\nphysical CPUs in the host.\nDEDICATED : Virtual CPUs are pinned to\n            physical CPUs\nSHARED    : Multiple VMs may share the\n            same physical CPUs.\nANY       : Any policy is acceptable for the VM",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "DEDICATED": {
-                   "value": 0
-                  },
-                  "SHARED": {
-                   "value": 1
-                  },
-                  "ANY": {
-                   "value": 2
-                  }
-                 }
-                }
-               },
-               "default": "ANY"
-              },
-              "cpu-thread-pinning-policy": {
-               "description": "CPU thread pinning policy describes how to\nplace the guest CPUs when the host supports\nhyper threads:\nAVOID   : Avoids placing a guest on a host\n          with threads.\nSEPARATE: Places vCPUs on separate cores,\n          and avoids placing two vCPUs on\n          two threads of same core.\nISOLATE : Places each vCPU on a different core,\n          and places no vCPUs from a different\n          guest on the same core.\nPREFER  : Attempts to place vCPUs on threads\n          of the same core.",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "AVOID": {
-                   "value": 0
-                  },
-                  "SEPARATE": {
-                   "value": 1
-                  },
-                  "ISOLATE": {
-                   "value": 2
-                  },
-                  "PREFER": {
-                   "value": 3
-                  }
-                 }
-                }
-               }
-              }
-             },
-             "list": {
-              "pcie-device": {
-               "description": "List of pcie passthrough devices.",
-               "key": "device-id",
-               "leaf": {
-                "device-id": {
-                 "description": "Device identifier.",
-                 "type": "string"
-                },
-                "count": {
-                 "description": "Number of devices to attach to the VM.",
-                 "type": "uint64"
-                }
-               }
-              }
-             },
-             "choice": {
-              "numa-policy": {
-               "case": {
-                "numa-unware": {
-                 "leaf": {
-                  "numa-unware": {
-                   "type": "empty"
-                  }
-                 }
-                },
-                "numa-aware": {
-                 "container": {
-                  "numa-node-policy": {
-                   "description": "This policy defines numa topology of the\nguest. Specifically identifies if the guest\nshould be run on a host with one numa\nnode or multiple numa nodes. As an example\na guest may want 8 vcpus and 4 GB of\nmemory. But may want the vcpus and memory\ndistributed across multiple numa nodes.\nThe NUMA node 1 may run with 6 vcpus and\n3GB, and NUMA node 2 may run with 2 vcpus\nand 1GB.",
-                   "leaf": {
-                    "node-cnt": {
-                     "description": "The number of numa nodes to expose to the VM.",
-                     "type": "uint16"
-                    },
-                    "mem-policy": {
-                     "description": "This policy specifies how the memory should\nbe allocated in a multi-node scenario.\nSTRICT    : The memory must be allocated\n            strictly from the memory attached\n            to the NUMA node.\nPREFERRED : The memory should be allocated\n            perferentially from the memory\n            attached to the NUMA node",
-                     "type": {
-                      "enumeration": {
-                       "enum": {
-                        "STRICT": {
-                         "value": 0
-                        },
-                        "PREFERRED": {
-                         "value": 1
-                        }
-                       }
-                      }
-                     }
-                    }
-                   },
-                   "list": {
-                    "node": {
-                     "key": "id",
-                     "leaf": {
-                      "id": {
-                       "description": "NUMA node identification. Typically\nit's 0 or 1",
-                       "type": "uint64"
-                      },
-                      "memory-mb": {
-                       "description": "Memory size expressed in MB\nfor this NUMA node.",
-                       "type": "uint64"
-                      }
-                     },
-                     "leaf-list": {
-                      "vcpu": {
-                       "description": "List of vcpus to allocate on\nthis numa node.",
-                       "type": "uint64"
-                      }
-                     },
-                     "choice": {
-                      "om-numa-type": {
-                       "description": "Openmano Numa type selection",
-                       "case": {
-                        "cores": {
-                         "leaf": {
-                          "num-cores": {
-                           "type": "uint8"
-                          }
-                         }
-                        },
-                        "paired-threads": {
-                         "container": {
-                          "paired-threads": {
-                           "leaf": {
-                            "num-paired-threads": {
-                             "type": "uint8"
-                            }
-                           },
-                           "list": {
-                            "paired-thread-ids": {
-                             "description": "List of thread pairs to use in case of paired-thread numa",
-                             "key": "thread-a",
-                             "leaf": {
-                              "thread-a": {
-                               "type": "uint8"
-                              },
-                              "thread-b": {
-                               "type": "uint8"
-                              }
-                             }
-                            }
-                           }
-                          }
-                         }
-                        },
-                        "threads": {
-                         "leaf": {
-                          "num-threads": {
-                           "type": "uint8"
-                          }
-                         }
-                        }
-                       }
-                      }
-                     }
-                    }
-                   }
-                  }
-                 }
-                }
-               }
-              }
-             }
-            },
-            "vswitch-epa": {
-             "leaf": {
-              "ovs-acceleration": {
-               "description": "Specifies Open vSwitch acceleration mode.\nMANDATORY: OVS acceleration is required\nPREFERRED: OVS acceleration is preferred",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "MANDATORY": {
-                   "value": 0
-                  },
-                  "PREFERRED": {
-                   "value": 1
-                  },
-                  "DISABLED": {
-                   "value": 2
-                  }
-                 }
-                }
-               }
-              },
-              "ovs-offload": {
-               "description": "Specifies Open vSwitch hardware offload mode.\nMANDATORY: OVS offload is required\nPREFERRED: OVS offload is preferred",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "MANDATORY": {
-                   "value": 0
-                  },
-                  "PREFERRED": {
-                   "value": 1
-                  },
-                  "DISABLED": {
-                   "value": 2
-                  }
-                 }
-                }
-               }
-              }
-             }
-            },
-            "hypervisor-epa": {
-             "leaf": {
-              "type": {
-               "description": "Specifies the type of hypervisor.\nKVM: KVM\nXEN: XEN",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "PREFER_KVM": {
-                   "value": 0
-                  },
-                  "REQUIRE_KVM": {
-                   "value": 1
-                  }
-                 }
-                }
-               }
-              },
-              "version": {
-               "type": "string"
-              }
-             }
-            },
-            "host-epa": {
-             "description": "Specifies the host level EPA attributes.",
-             "leaf": {
-              "cpu-model": {
-               "description": "Host CPU model. Examples include: SandyBridge,\nIvyBridge",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "PREFER_WESTMERE": {
-                   "value": 0
-                  },
-                  "REQUIRE_WESTMERE": {
-                   "value": 1
-                  },
-                  "PREFER_SANDYBRIDGE": {
-                   "value": 2
-                  },
-                  "REQUIRE_SANDYBRIDGE": {
-                   "value": 3
-                  },
-                  "PREFER_IVYBRIDGE": {
-                   "value": 4
-                  },
-                  "REQUIRE_IVYBRIDGE": {
-                   "value": 5
-                  },
-                  "PREFER_HASWELL": {
-                   "value": 6
-                  },
-                  "REQUIRE_HASWELL": {
-                   "value": 7
-                  },
-                  "PREFER_BROADWELL": {
-                   "value": 8
-                  },
-                  "REQUIRE_BROADWELL": {
-                   "value": 9
-                  },
-                  "PREFER_NEHALEM": {
-                   "value": 10
-                  },
-                  "REQUIRE_NEHALEM": {
-                   "value": 11
-                  },
-                  "PREFER_PENRYN": {
-                   "value": 12
-                  },
-                  "REQUIRE_PENRYN": {
-                   "value": 13
-                  },
-                  "PREFER_CONROE": {
-                   "value": 14
-                  },
-                  "REQUIRE_CONROE": {
-                   "value": 15
-                  },
-                  "PREFER_CORE2DUO": {
-                   "value": 16
-                  },
-                  "REQUIRE_CORE2DUO": {
-                   "value": 17
-                  }
-                 }
-                }
-               }
-              },
-              "cpu-arch": {
-               "description": "Host CPU architecture.",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "PREFER_X86": {
-                   "value": 0
-                  },
-                  "REQUIRE_X86": {
-                   "value": 1
-                  },
-                  "PREFER_X86_64": {
-                   "value": 2
-                  },
-                  "REQUIRE_X86_64": {
-                   "value": 3
-                  },
-                  "PREFER_I686": {
-                   "value": 4
-                  },
-                  "REQUIRE_I686": {
-                   "value": 5
-                  },
-                  "PREFER_IA64": {
-                   "value": 6
-                  },
-                  "REQUIRE_IA64": {
-                   "value": 7
-                  },
-                  "PREFER_ARMV7": {
-                   "value": 8
-                  },
-                  "REQUIRE_ARMV7": {
-                   "value": 9
-                  },
-                  "PREFER_ARMV8": {
-                   "value": 10
-                  },
-                  "REQUIRE_ARMV8": {
-                   "value": 11
-                  }
-                 }
-                }
-               }
-              },
-              "cpu-vendor": {
-               "description": "Host CPU Vendor.",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "PREFER_INTEL": {
-                   "value": 0
-                  },
-                  "REQUIRE_INTEL": {
-                   "value": 1
-                  },
-                  "PREFER_AMD": {
-                   "value": 2
-                  },
-                  "REQUIRE_AMD": {
-                   "value": 3
-                  }
-                 }
-                }
-               }
-              },
-              "cpu-socket-count": {
-               "description": "Number of sockets on the host.",
-               "type": {
-                "enumeration": {
-                 "enum": {
-                  "PREFER_ONE": {
-                   "value": 0
-                  },
-                  "PREFER_TWO": {
-                   "value": 1
-                  },
-                  "REQUIRE_ONE": {
-                   "value": 2
-                  },
-                  "REQUIRE_TWO": {
-                   "value": 3
-                  }
-                 }
-                }
-               }
-              },
-              "cpu-core-count": {
-               "description": "Number of cores on the host.",
-               "type": "uint64"
-              }
-             },
-             "leaf-list": {
-              "cpu-feature": {
-               "description": "List of CPU features.",
-               "type": "manotypes:cpu-feature-type"
-              }
-             }
-            }
-           }
-          },
-          "vdu-dependency": {
-           "description": "List of VDU dependencies.",
-           "key": "vdu-source-ref",
-           "leaf": {
-            "vdu-source-ref": {
-             "type": {
-              "leafref": {
-               "path": "../../vdu/id"
-              }
-             }
-            },
-            "vdu-depends-on-ref": {
-             "description": "Reference to the VDU that\nsource VDU depends.",
-             "type": {
-              "leafref": {
-               "path": "../../vdu/id"
-              }
-             }
-            }
-           }
-          },
-          "http-endpoint": {
-           "description": "List of http endpoints to be used by monitoring params",
-           "key": "path",
-           "leaf": {
-            "path": {
-             "description": "The HTTP path on the management server",
-             "type": "string"
-            },
-            "https": {
-             "description": "Pick HTTPS instead of HTTP , Default is false",
-             "type": "boolean",
-             "default": "false"
-            },
-            "port": {
-             "description": "The HTTP port to connect to",
-             "type": "inet:port-number"
-            },
-            "username": {
-             "description": "The HTTP basic auth username",
-             "type": "string"
-            },
-            "password": {
-             "description": "The HTTP basic auth password",
-             "type": "string"
-            },
-            "polling_interval_secs": {
-             "description": "The HTTP polling interval in seconds",
-             "type": "uint8",
-             "default": "2"
-            },
-            "method": {
-             "description": "This is the method to be performed at the uri.\nGET by default for action",
-             "type": "manotypes:http-method",
-             "default": "GET"
-            }
-           },
-           "list": {
-            "headers": {
-             "description": "Custom HTTP headers to put on HTTP request",
-             "key": "key",
-             "leaf": {
-              "key": {
-               "description": "HTTP header key",
-               "type": "string"
-              },
-              "value": {
-               "description": "HTTP header value",
-               "type": "string"
-              }
-             }
-            }
-           }
-          },
-          "monitoring-param": {
-           "description": "List of monitoring parameters at the NS level",
-           "key": "id",
-           "leaf": {
-            "id": {
-             "type": "string"
-            },
-            "name": {
-             "type": "string"
-            },
-            "http-endpoint-ref": {
-             "type": {
-              "leafref": {
-               "path": "../../http-endpoint/path"
-              }
-             }
-            },
-            "json-query-method": {
-             "type": "manotypes:json-query-method",
-             "default": "NAMEKEY"
-            },
-            "description": {
-             "type": "string"
-            },
-            "group-tag": {
-             "description": "A simple tag to group monitoring parameters",
-             "type": "string"
-            },
-            "value-type": {
-             "type": "manotypes:param-value-type",
-             "default": "INT"
-            },
-            "value-integer": {
-             "description": "Current value for an integer parameter",
-             "type": "int64"
-            },
-            "value-decimal": {
-             "description": "Current value for a decimal parameter",
-             "type": {
-              "decimal64": {
-               "fraction-digits": "4"
-              }
-             }
-            },
-            "value-string": {
-             "description": "Current value for a string parameter",
-             "type": "string"
-            },
-            "widget-type": {
-             "type": "manotypes:widget-type"
-            },
-            "units": {
-             "type": "string"
-            }
-           },
-           "container": {
-            "json-query-params": {
-             "leaf": {
-              "json-path": {
-               "description": "The jsonpath to use to extract value from JSON structure",
-               "type": "string"
-              },
-              "object-path": {
-               "description": "The objectpath to use to extract value from JSON structure",
-               "type": "string"
-              }
-             }
-            },
-            "numeric-constraints": {
-             "leaf": {
-              "min-value": {
-               "description": "Minimum value for the parameter",
-               "type": "uint64"
-              },
-              "max-value": {
-               "description": "Maxium value for the parameter",
-               "type": "uint64"
-              }
-             }
-            },
-            "text-constraints": {
-             "leaf": {
-              "min-length": {
-               "description": "Minimum string length for the parameter",
-               "type": "uint8"
-              },
-              "max-length": {
-               "description": "Maximum string length for the parameter",
-               "type": "uint8"
-              }
-             }
-            }
-           }
-          }
-         }
-        }
-       }
-      }
-     }
-    }
-   }
-  },
-  "mano-types": {
-   "module": {
-    "mano-types": {
-     "namespace": "urn:ietf:params:xml:ns:yang:nfvo:mano-types",
-     "prefix": "manotypes",
-     "import": {
-      "ietf-inet-types": {
-       "prefix": "inet"
-      }
-     },
-     "revision": {
-      "2015-04-23": {
-       "description": "Initial revision. This YANG file defines\nthe reusable base types for VNF Management\nand Orchestration (MANO).",
-       "reference": "Derived from earlier versions of base YANG files"
-      }
-     },
-     "typedef": {
-      "virtual-link-type": {
-       "description": "Type of virtual link\nELAN: A multipoint service connecting a set of VNFs\n// ELINE: For a simple point to point connection\n//        between a VNF and the existing network.\n// ETREE: A multipoint service connecting one or\n//        more roots and a set of leaves, but\n//        preventing inter-leaf communication.",
-       "type": {
-        "enumeration": {
-         "enum": "ELAN"
-        }
-       }
-      },
-      "http-method": {
-       "description": "Type of HTTP operation",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "POST": {
-           "value": 0
-          },
-          "PUT": {
-           "value": 1
-          },
-          "GET": {
-           "value": 2
-          },
-          "DELETE": {
-           "value": 3
-          },
-          "OPTIONS": {
-           "value": 4
-          },
-          "PATCH": {
-           "value": 5
-          }
-         }
-        }
-       }
-      },
-      "api-type": {
-       "description": "Type of API to fetch monitoring params",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "HTTP": {
-           "value": 0
-          },
-          "NETCONF": {
-           "value": 1
-          },
-          "SOAP": {
-           "value": 2
-          }
-         }
-        }
-       }
-      },
-      "json-query-method": {
-       "description": "The method to extract a value from a JSON response\n\nNAMEKEY - Use the name as the key for a non-nested value.\nJSONPATH - Use jsonpath-rw implemenation to extract a value.\nOBJECTPATH - Use objectpath implemenation to extract a value.",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "NAMEKEY": {
-           "value": 0
-          },
-          "JSONPATH": {
-           "value": 1
-          },
-          "OBJECTPATH": {
-           "value": 2
-          }
-         }
-        }
-       }
-      },
-      "param-value-type": {
-       "description": "The type of the parameter value",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "INT": {
-           "value": 0
-          },
-          "DECIMAL": {
-           "value": 1
-          },
-          "STRING": {
-           "value": 2
-          }
-         }
-        }
-       }
-      },
-      "connection-point-type": {
-       "description": "Type of connection point\nVPORT: Virtual Port\n// VNIC_ADDR: Virtual NIC Address\n// PNIC_ADDR: Physical NIC Address\n// PPORT: Phsical Port.",
-       "type": {
-        "enumeration": {
-         "enum": "VPORT"
-        }
-       }
-      },
-      "widget-type": {
-       "description": "Type of the widget, typically used by the UI.",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "HISTOGRAM": {
-           "value": 0
-          },
-          "BAR": {
-           "value": 1
-          },
-          "GAUGE": {
-           "value": 2
-          },
-          "SLIDER": {
-           "value": 3
-          },
-          "COUNTER": {
-           "value": 4
-          },
-          "TEXTBOX": {
-           "value": 5
-          }
-         }
-        }
-       }
-      },
-      "cpu-feature-type": {
-       "description": "Enumeration for CPU features.\n\nAES: CPU supports advanced instruction set for\nAES (Advanced Encryption Standard).\n\nCAT: Cache Allocation Technology (CAT) allows\nan Operating System, Hypervisor, or similar\nsystem management agent to specify the amount\nof L3 cache (currently the last-level cache\nin most server and client platforms) space an\napplication can fill (as a hint to hardware\nfunctionality, certain features such as power\nmanagement may override CAT settings).\n\nCMT: Cache Monitoring Technology (CMT) allows\nan Operating System, Hypervisor, or similar\nsystem management agent to determine the\nusage of cache based on applications running\non the platform. The implementation is\ndirected at L3 cache monitoring (currently\nthe last-level cache in most server and\nclient platforms).\n\nDDIO: Intel Data Direct I/O (DDIO) enables\nEthernet server NICs and controllers talk\ndirectly to the processor cache without a\ndetour via system memory. This enumeration\nspecifies if the VM requires a DDIO\ncapable host.",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "PREFER_AES": {
-           "value": 0
-          },
-          "REQUIRE_AES": {
-           "value": 1
-          },
-          "PREFER_CAT": {
-           "value": 2
-          },
-          "REQUIRE_CAT": {
-           "value": 3
-          },
-          "PREFER_CMT": {
-           "value": 4
-          },
-          "REQUIRE_CMT": {
-           "value": 5
-          },
-          "PREFER_DDIO": {
-           "value": 6
-          },
-          "REQUIRE_DDIO": {
-           "value": 7
-          }
-         }
-        }
-       }
-      }
-     },
-     "grouping": {
-      "named-value": {
-       "leaf": {
-        "name": {
-         "type": "string"
-        },
-        "value": {
-         "type": "string"
-        }
-       }
-      },
-      "vm-flavor": {
-       "container": {
-        "vm-flavor": {
-         "leaf": {
-          "vcpu-count": {
-           "description": "Number of vcpus for the VM.",
-           "type": "uint16"
-          },
-          "memory-mb": {
-           "description": "Amount of memory in MB.",
-           "type": "uint64"
-          },
-          "storage-gb": {
-           "description": "Amount of disk space in GB.",
-           "type": "uint64"
-          }
-         }
-        }
-       }
-      },
-      "vswitch-epa": {
-       "container": {
-        "vswitch-epa": {
-         "leaf": {
-          "ovs-acceleration": {
-           "description": "Specifies Open vSwitch acceleration mode.\nMANDATORY: OVS acceleration is required\nPREFERRED: OVS acceleration is preferred",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "MANDATORY": {
-               "value": 0
-              },
-              "PREFERRED": {
-               "value": 1
-              },
-              "DISABLED": {
-               "value": 2
-              }
-             }
-            }
-           }
-          },
-          "ovs-offload": {
-           "description": "Specifies Open vSwitch hardware offload mode.\nMANDATORY: OVS offload is required\nPREFERRED: OVS offload is preferred",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "MANDATORY": {
-               "value": 0
-              },
-              "PREFERRED": {
-               "value": 1
-              },
-              "DISABLED": {
-               "value": 2
-              }
-             }
-            }
-           }
-          }
-         }
-        }
-       }
-      },
-      "hypervisor-epa": {
-       "container": {
-        "hypervisor-epa": {
-         "leaf": {
-          "type": {
-           "description": "Specifies the type of hypervisor.\nKVM: KVM\nXEN: XEN",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "PREFER_KVM": {
-               "value": 0
-              },
-              "REQUIRE_KVM": {
-               "value": 1
-              }
-             }
-            }
-           }
-          },
-          "version": {
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "host-epa": {
-       "container": {
-        "host-epa": {
-         "description": "Specifies the host level EPA attributes.",
-         "leaf": {
-          "cpu-model": {
-           "description": "Host CPU model. Examples include: SandyBridge,\nIvyBridge",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "PREFER_WESTMERE": {
-               "value": 0
-              },
-              "REQUIRE_WESTMERE": {
-               "value": 1
-              },
-              "PREFER_SANDYBRIDGE": {
-               "value": 2
-              },
-              "REQUIRE_SANDYBRIDGE": {
-               "value": 3
-              },
-              "PREFER_IVYBRIDGE": {
-               "value": 4
-              },
-              "REQUIRE_IVYBRIDGE": {
-               "value": 5
-              },
-              "PREFER_HASWELL": {
-               "value": 6
-              },
-              "REQUIRE_HASWELL": {
-               "value": 7
-              },
-              "PREFER_BROADWELL": {
-               "value": 8
-              },
-              "REQUIRE_BROADWELL": {
-               "value": 9
-              },
-              "PREFER_NEHALEM": {
-               "value": 10
-              },
-              "REQUIRE_NEHALEM": {
-               "value": 11
-              },
-              "PREFER_PENRYN": {
-               "value": 12
-              },
-              "REQUIRE_PENRYN": {
-               "value": 13
-              },
-              "PREFER_CONROE": {
-               "value": 14
-              },
-              "REQUIRE_CONROE": {
-               "value": 15
-              },
-              "PREFER_CORE2DUO": {
-               "value": 16
-              },
-              "REQUIRE_CORE2DUO": {
-               "value": 17
-              }
-             }
-            }
-           }
-          },
-          "cpu-arch": {
-           "description": "Host CPU architecture.",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "PREFER_X86": {
-               "value": 0
-              },
-              "REQUIRE_X86": {
-               "value": 1
-              },
-              "PREFER_X86_64": {
-               "value": 2
-              },
-              "REQUIRE_X86_64": {
-               "value": 3
-              },
-              "PREFER_I686": {
-               "value": 4
-              },
-              "REQUIRE_I686": {
-               "value": 5
-              },
-              "PREFER_IA64": {
-               "value": 6
-              },
-              "REQUIRE_IA64": {
-               "value": 7
-              },
-              "PREFER_ARMV7": {
-               "value": 8
-              },
-              "REQUIRE_ARMV7": {
-               "value": 9
-              },
-              "PREFER_ARMV8": {
-               "value": 10
-              },
-              "REQUIRE_ARMV8": {
-               "value": 11
-              }
-             }
-            }
-           }
-          },
-          "cpu-vendor": {
-           "description": "Host CPU Vendor.",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "PREFER_INTEL": {
-               "value": 0
-              },
-              "REQUIRE_INTEL": {
-               "value": 1
-              },
-              "PREFER_AMD": {
-               "value": 2
-              },
-              "REQUIRE_AMD": {
-               "value": 3
-              }
-             }
-            }
-           }
-          },
-          "cpu-socket-count": {
-           "description": "Number of sockets on the host.",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "PREFER_ONE": {
-               "value": 0
-              },
-              "PREFER_TWO": {
-               "value": 1
-              },
-              "REQUIRE_ONE": {
-               "value": 2
-              },
-              "REQUIRE_TWO": {
-               "value": 3
-              }
-             }
-            }
-           }
-          },
-          "cpu-core-count": {
-           "description": "Number of cores on the host.",
-           "type": "uint64"
-          }
-         },
-         "leaf-list": {
-          "cpu-feature": {
-           "description": "List of CPU features.",
-           "type": "manotypes:cpu-feature-type"
-          }
-         }
-        }
-       }
-      },
-      "guest-epa": {
-       "description": "EPA attributes for the guest",
-       "container": {
-        "guest-epa": {
-         "leaf": {
-          "trusted-execution": {
-           "description": "This VM should be allocated from trusted pool",
-           "type": "boolean"
-          },
-          "mempage-size": {
-           "description": "Memory page allocation size. If a VM requires\nhugepages, it should choose LARGE or SIZE_2MB\nor SIZE_1GB. If the VM prefers hugepages it\nshould chose PREFER_LARGE.\nLARGE        : Require hugepages (either 2MB or 1GB)\nSMALL        : Doesn't require hugepages\nSIZE_2MB     : Requires 2MB hugepages\nSIZE_1GB     : Requires 1GB hugepages\nPREFER_LARGE : Application perfers hugepages",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "LARGE": {
-               "value": 0
-              },
-              "SMALL": {
-               "value": 1
-              },
-              "SIZE_2MB": {
-               "value": 2
-              },
-              "SIZE_1GB": {
-               "value": 3
-              },
-              "PREFER_LARGE": {
-               "value": 4
-              }
-             }
-            }
-           },
-           "default": "SMALL"
-          },
-          "cpu-pinning-policy": {
-           "description": "CPU pinning policy describes association\nbetween virtual CPUs in guest and the\nphysical CPUs in the host.\nDEDICATED : Virtual CPUs are pinned to\n            physical CPUs\nSHARED    : Multiple VMs may share the\n            same physical CPUs.\nANY       : Any policy is acceptable for the VM",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "DEDICATED": {
-               "value": 0
-              },
-              "SHARED": {
-               "value": 1
-              },
-              "ANY": {
-               "value": 2
-              }
-             }
-            }
-           },
-           "default": "ANY"
-          },
-          "cpu-thread-pinning-policy": {
-           "description": "CPU thread pinning policy describes how to\nplace the guest CPUs when the host supports\nhyper threads:\nAVOID   : Avoids placing a guest on a host\n          with threads.\nSEPARATE: Places vCPUs on separate cores,\n          and avoids placing two vCPUs on\n          two threads of same core.\nISOLATE : Places each vCPU on a different core,\n          and places no vCPUs from a different\n          guest on the same core.\nPREFER  : Attempts to place vCPUs on threads\n          of the same core.",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "AVOID": {
-               "value": 0
-              },
-              "SEPARATE": {
-               "value": 1
-              },
-              "ISOLATE": {
-               "value": 2
-              },
-              "PREFER": {
-               "value": 3
-              }
-             }
-            }
-           }
-          }
-         },
-         "list": {
-          "pcie-device": {
-           "description": "List of pcie passthrough devices.",
-           "key": "device-id",
-           "leaf": {
-            "device-id": {
-             "description": "Device identifier.",
-             "type": "string"
-            },
-            "count": {
-             "description": "Number of devices to attach to the VM.",
-             "type": "uint64"
-            }
-           }
-          }
-         },
-         "choice": {
-          "numa-policy": {
-           "case": {
-            "numa-unware": {
-             "leaf": {
-              "numa-unware": {
-               "type": "empty"
-              }
-             }
-            },
-            "numa-aware": {
-             "container": {
-              "numa-node-policy": {
-               "description": "This policy defines numa topology of the\nguest. Specifically identifies if the guest\nshould be run on a host with one numa\nnode or multiple numa nodes. As an example\na guest may want 8 vcpus and 4 GB of\nmemory. But may want the vcpus and memory\ndistributed across multiple numa nodes.\nThe NUMA node 1 may run with 6 vcpus and\n3GB, and NUMA node 2 may run with 2 vcpus\nand 1GB.",
-               "leaf": {
-                "node-cnt": {
-                 "description": "The number of numa nodes to expose to the VM.",
-                 "type": "uint16"
-                },
-                "mem-policy": {
-                 "description": "This policy specifies how the memory should\nbe allocated in a multi-node scenario.\nSTRICT    : The memory must be allocated\n            strictly from the memory attached\n            to the NUMA node.\nPREFERRED : The memory should be allocated\n            perferentially from the memory\n            attached to the NUMA node",
-                 "type": {
-                  "enumeration": {
-                   "enum": {
-                    "STRICT": {
-                     "value": 0
-                    },
-                    "PREFERRED": {
-                     "value": 1
-                    }
-                   }
-                  }
-                 }
-                }
-               },
-               "list": {
-                "node": {
-                 "key": "id",
-                 "leaf": {
-                  "id": {
-                   "description": "NUMA node identification. Typically\nit's 0 or 1",
-                   "type": "uint64"
-                  },
-                  "memory-mb": {
-                   "description": "Memory size expressed in MB\nfor this NUMA node.",
-                   "type": "uint64"
-                  }
-                 },
-                 "leaf-list": {
-                  "vcpu": {
-                   "description": "List of vcpus to allocate on\nthis numa node.",
-                   "type": "uint64"
-                  }
-                 },
-                 "choice": {
-                  "om-numa-type": {
-                   "description": "Openmano Numa type selection",
-                   "case": {
-                    "cores": {
-                     "leaf": {
-                      "num-cores": {
-                       "type": "uint8"
-                      }
-                     }
-                    },
-                    "paired-threads": {
-                     "container": {
-                      "paired-threads": {
-                       "leaf": {
-                        "num-paired-threads": {
-                         "type": "uint8"
-                        }
-                       },
-                       "list": {
-                        "paired-thread-ids": {
-                         "description": "List of thread pairs to use in case of paired-thread numa",
-                         "key": "thread-a",
-                         "leaf": {
-                          "thread-a": {
-                           "type": "uint8"
-                          },
-                          "thread-b": {
-                           "type": "uint8"
-                          }
-                         }
-                        }
-                       }
-                      }
-                     }
-                    },
-                    "threads": {
-                     "leaf": {
-                      "num-threads": {
-                       "type": "uint8"
-                      }
-                     }
-                    }
-                   }
-                  }
-                 }
-                }
-               }
-              }
-             }
-            }
-           }
-          }
-         }
-        }
-       }
-      },
-      "provider-network": {
-       "container": {
-        "provider-network": {
-         "description": "Container for the provider network.",
-         "leaf": {
-          "name": {
-           "description": "Name of the provider network.",
-           "type": "string"
-          },
-          "physical-network": {
-           "description": "Name of the phsyical network on which the provider\nnetwork is built.",
-           "type": "string"
-          },
-          "overlay-type": {
-           "description": "Type of the overlay network.",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "LOCAL": {
-               "value": 0
-              },
-              "FLAT": {
-               "value": 1
-              },
-              "VLAN": {
-               "value": 2
-              },
-              "VXLAN": {
-               "value": 3
-              },
-              "GRE": {
-               "value": 4
-              }
-             }
-            }
-           }
-          },
-          "segmentation_id": {
-           "description": "Segmentation ID",
-           "type": "uint32"
-          }
-         }
-        }
-       }
-      },
-      "monitoring-param": {
-       "list": {
-        "http-endpoint": {
-         "description": "List of http endpoints to be used by monitoring params",
-         "key": "path",
-         "leaf": {
-          "path": {
-           "description": "The HTTP path on the management server",
-           "type": "string"
-          },
-          "https": {
-           "description": "Pick HTTPS instead of HTTP , Default is false",
-           "type": "boolean",
-           "default": "false"
-          },
-          "port": {
-           "description": "The HTTP port to connect to",
-           "type": "inet:port-number"
-          },
-          "username": {
-           "description": "The HTTP basic auth username",
-           "type": "string"
-          },
-          "password": {
-           "description": "The HTTP basic auth password",
-           "type": "string"
-          },
-          "polling_interval_secs": {
-           "description": "The HTTP polling interval in seconds",
-           "type": "uint8",
-           "default": "2"
-          },
-          "method": {
-           "description": "This is the method to be performed at the uri.\nGET by default for action",
-           "type": "manotypes:http-method",
-           "default": "GET"
-          }
-         },
-         "list": {
-          "headers": {
-           "description": "Custom HTTP headers to put on HTTP request",
-           "key": "key",
-           "leaf": {
-            "key": {
-             "description": "HTTP header key",
-             "type": "string"
-            },
-            "value": {
-             "description": "HTTP header value",
-             "type": "string"
-            }
-           }
-          }
-         }
-        },
-        "monitoring-param": {
-         "description": "List of monitoring parameters at the NS level",
-         "key": "id",
-         "leaf": {
-          "id": {
-           "type": "string"
-          },
-          "name": {
-           "type": "string"
-          },
-          "http-endpoint-ref": {
-           "type": {
-            "leafref": {
-             "path": "../../http-endpoint/path"
-            }
-           }
-          },
-          "json-query-method": {
-           "type": "manotypes:json-query-method",
-           "default": "NAMEKEY"
-          },
-          "description": {
-           "type": "string"
-          },
-          "group-tag": {
-           "description": "A simple tag to group monitoring parameters",
-           "type": "string"
-          },
-          "value-type": {
-           "type": "manotypes:param-value-type",
-           "default": "INT"
-          },
-          "value-integer": {
-           "description": "Current value for an integer parameter",
-           "type": "int64"
-          },
-          "value-decimal": {
-           "description": "Current value for a decimal parameter",
-           "type": {
-            "decimal64": {
-             "fraction-digits": "4"
-            }
-           }
-          },
-          "value-string": {
-           "description": "Current value for a string parameter",
-           "type": "string"
-          },
-          "widget-type": {
-           "type": "manotypes:widget-type"
-          },
-          "units": {
-           "type": "string"
-          }
-         },
-         "container": {
-          "json-query-params": {
-           "leaf": {
-            "json-path": {
-             "description": "The jsonpath to use to extract value from JSON structure",
-             "type": "string"
-            },
-            "object-path": {
-             "description": "The objectpath to use to extract value from JSON structure",
-             "type": "string"
-            }
-           }
-          },
-          "numeric-constraints": {
-           "leaf": {
-            "min-value": {
-             "description": "Minimum value for the parameter",
-             "type": "uint64"
-            },
-            "max-value": {
-             "description": "Maxium value for the parameter",
-             "type": "uint64"
-            }
-           }
-          },
-          "text-constraints": {
-           "leaf": {
-            "min-length": {
-             "description": "Minimum string length for the parameter",
-             "type": "uint8"
-            },
-            "max-length": {
-             "description": "Maximum string length for the parameter",
-             "type": "uint8"
-            }
-           }
-          }
-         }
-        }
-       }
-      },
-      "control-param": {
-       "list": {
-        "control-param": {
-         "description": "List of control parameters to manage and\nupdate the running configuration of the VNF",
-         "key": "id",
-         "leaf": {
-          "id": {
-           "type": "string"
-          },
-          "name": {
-           "type": "string"
-          },
-          "description": {
-           "type": "string"
-          },
-          "group-tag": {
-           "description": "A simple tag to group control parameters",
-           "type": "string"
-          },
-          "min-value": {
-           "description": "Minimum value for the parameter",
-           "type": "uint64"
-          },
-          "max-value": {
-           "description": "Maxium value for the parameter",
-           "type": "uint64"
-          },
-          "current-value": {
-           "description": "Current value for the parameter",
-           "type": "uint64"
-          },
-          "step-value": {
-           "description": "Step value for the parameter",
-           "type": "uint64"
-          },
-          "units": {
-           "type": "string"
-          },
-          "widget-type": {
-           "type": "manotypes:widget-type"
-          },
-          "url": {
-           "description": "This is the URL where to perform the operation",
-           "type": "inet:uri"
-          },
-          "method": {
-           "description": "This is the method to be performed at the uri.\nPOST by default for action",
-           "type": "manotypes:http-method",
-           "default": "POST"
-          },
-          "payload": {
-           "description": "This is the operation payload or payload template as stringified\nJSON. This field provides the data  to be sent for this operation\ncall",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "action-param": {
-       "list": {
-        "action-param": {
-         "description": "List of action parameters to\ncontrol VNF",
-         "key": "id",
-         "leaf": {
-          "id": {
-           "type": "string"
-          },
-          "name": {
-           "type": "string"
-          },
-          "description": {
-           "type": "string"
-          },
-          "group-tag": {
-           "description": "A simple tag to group monitoring parameter",
-           "type": "string"
-          },
-          "url": {
-           "description": "This is the URL where to perform the operation",
-           "type": "inet:uri"
-          },
-          "method": {
-           "description": "This is the method to be performed at the uri.\nPOST by default for action",
-           "type": "manotypes:http-method",
-           "default": "POST"
-          },
-          "payload": {
-           "description": "This is the operation payload or payload template to be sent in\nthe data for this operation call",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "input-parameters": {
-       "description": "",
-       "list": {
-        "input-parameters": {
-         "description": "List of input parameters",
-         "key": "uuid",
-         "leaf": {
-          "uuid": {
-           "description": "An identifier that uniquely identifies an input parameter",
-           "type": "string"
-          },
-          "xpath": {
-           "description": "A an xpath that specfies which element in a descriptor is to be\nmodified.",
-           "type": "string"
-          },
-          "value": {
-           "description": "The value that the element specified by the xpath should take when a\nrecord is created.",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "nfvi-metrics": {
-       "container": {
-        "vcpu": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "VCPU"
-          },
-          "total": {
-           "description": "The total number of VCPUs available.",
-           "type": "uint64"
-          },
-          "utilization": {
-           "description": "The VCPU utilization (percentage).",
-           "type": {
-            "decimal64": {
-             "fraction-digits": "2",
-             "range": "0 .. 100"
-            }
-           }
-          }
-         }
-        },
-        "memory": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "MEMORY"
-          },
-          "used": {
-           "description": "The amount of memory (bytes) currently in use.",
-           "type": "uint64"
-          },
-          "total": {
-           "description": "The amount of memory (bytes) available.",
-           "type": "uint64"
-          },
-          "utilization": {
-           "description": "The memory utilization (percentage).",
-           "type": {
-            "decimal64": {
-             "fraction-digits": "2",
-             "range": "0 .. 100"
-            }
-           }
-          }
-         }
-        },
-        "storage": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "STORAGE"
-          },
-          "used": {
-           "description": "The amount of storage (bytes) currently in use.",
-           "type": "uint64"
-          },
-          "total": {
-           "description": "The amount of storage (bytes) available.",
-           "type": "uint64"
-          },
-          "utilization": {
-           "description": "The storage utilization (percentage).",
-           "type": {
-            "decimal64": {
-             "fraction-digits": "2",
-             "range": "0 .. 100"
-            }
-           }
-          }
-         }
-        },
-        "external-ports": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "EXTERNAL PORTS"
-          },
-          "total": {
-           "description": "The total number of external ports.",
-           "type": "uint64"
-          }
-         }
-        },
-        "internal-ports": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "INTERNAL PORTS"
-          },
-          "total": {
-           "description": "The total number of internal ports.",
-           "type": "uint64"
-          }
-         }
-        },
-        "network": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "NETWORK TRAFFIC"
-          }
-         },
-         "container": {
-          "incoming": {
-           "leaf": {
-            "label": {
-             "description": "Label to show in UI",
-             "type": "string",
-             "default": "INCOMING NETWORK TRAFFIC"
-            },
-            "bytes": {
-             "description": "The cumulative number of incoming bytes.",
-             "type": "uint64"
-            },
-            "packets": {
-             "description": "The cumulative number of incoming packets.",
-             "type": "uint64"
-            },
-            "byte-rate": {
-             "description": "The current incoming byte-rate (bytes per second).",
-             "type": {
-              "decimal64": {
-               "fraction-digits": "2"
-              }
-             }
-            },
-            "packet-rate": {
-             "description": "The current incoming packet (packets per second).",
-             "type": {
-              "decimal64": {
-               "fraction-digits": "2"
-              }
-             }
-            }
-           }
-          },
-          "outgoing": {
-           "leaf": {
-            "label": {
-             "description": "Label to show in UI",
-             "type": "string",
-             "default": "OUTGOING NETWORK TRAFFIC"
-            },
-            "bytes": {
-             "description": "The cumulative number of outgoing bytes.",
-             "type": "uint64"
-            },
-            "packets": {
-             "description": "The cumulative number of outgoing packets.",
-             "type": "uint64"
-            },
-            "byte-rate": {
-             "description": "The current outgoing byte-rate (bytes per second).",
-             "type": {
-              "decimal64": {
-               "fraction-digits": "2"
-              }
-             }
-            },
-            "packet-rate": {
-             "description": "The current outgoing packet (packets per second).",
-             "type": {
-              "decimal64": {
-               "fraction-digits": "2"
-              }
-             }
-            }
-           }
-          }
-         }
-        }
-       }
-      }
-     }
-    }
-   }
-  }
- },
- "extension": {
-  "module": {
-   "argument": "name",
-   "include": "0..n",
-   "prefix": "0..1",
-   "anyxml": "0..n",
-   "augment": "0..n",
-   "choice": "0..n",
-   "contact": "0..1",
-   "container": "0..n",
-   "description": "0..1",
-   "deviation": "0..n",
-   "extension": "0..n",
-   "feature": "0..n",
-   "grouping": "0..n",
-   "identity": "0..n",
-   "import": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "namespace": "0..1",
-   "notification": "0..n",
-   "organization": "0..1",
-   "reference": "0..1",
-   "revision": "0..n",
-   "rpc": "0..n",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "yang-version": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  var changes, match, ref, synth, target;\n  synth = this.require('data-synth');\n  ref = params.augment;\n  for (target in ref) {\n    changes = ref[target];\n    match = this.locate(ctx, target);\n    if (match == null) {\n      continue;\n    }\n    synth.copy(match, changes);\n  }\n  return delete this.source[params.prefix];\n}"
-   },
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var k, m, modules, ref, synth, v;\n  synth = this.require('data-synth');\n  modules = {};\n  ref = params[\"import\"];\n  for (k in ref) {\n    v = ref[k];\n    modules[k] = children[k];\n    delete children[k];\n  }\n  m = (synth.Store(params, function() {\n    return this.set({\n      name: arg,\n      modules: modules\n    });\n  })).bind(children);\n  this.define('module', arg, m);\n  return m;\n}"
-   }
-  },
-  "prefix": {
-   "argument": "value",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return this.source[arg] = this.source;\n}"
-   }
-  },
-  "include": {
-   "argument": "module",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  var k, m, ref, ref1, ref2, results, v;\n  m = this.preprocess(this.resolve('dependencies', arg));\n  ref = m.extension;\n  for (k in ref) {\n    v = ref[k];\n    this.define('extension', k, v);\n  }\n  ref1 = m.typedef;\n  for (k in ref1) {\n    v = ref1[k];\n    this.define('typedef', k, v);\n  }\n  ref2 = m.schema;\n  results = [];\n  for (k in ref2) {\n    v = ref2[k];\n    results.push(ctx[k] = v);\n  }\n  return results;\n}"
-   },
-   "revision-date": "0..1"
-  },
-  "augment": {
-   "anyxml": "0..n",
-   "case": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "uses": "0..n",
-   "when": "0..1",
-   "argument": "target-node"
-  },
-  "belongs-to": {
-   "prefix": 1,
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return this.source[params.prefix] = this.source;\n}"
-   },
-   "argument": "module"
-  },
-  "bit": {
-   "description": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "position": "0..1",
-   "argument": "name"
-  },
-  "case": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "uses": "0..n",
-   "when": "0..1",
-   "argument": "name"
-  },
-  "choice": {
-   "anyxml": "0..n",
-   "case": "0..n",
-   "config": "0..1",
-   "container": "0..n",
-   "default": "0..1",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "mandatory": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "when": "0..1",
-   "argument": "condition"
-  },
-  "config": {
-   "preprocess": {
-    "!js/function": "function (arg, p, ctx) {\n  return ctx.config = arg === true || arg === 'true';\n}"
-   },
-   "argument": "value"
-  },
-  "container": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "config": "0..1",
-   "container": "0..n",
-   "description": "0..1",
-   "grouping": "0..n",
-   "if-feature": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "must": "0..n",
-   "presence": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "when": "0..1",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var synth;\n  synth = this.require('data-synth');\n  return (synth.Object(params)).bind(children);\n}"
-   },
-   "argument": "name"
-  },
-  "deviate": {
-   "config": "0..1",
-   "default": "0..1",
-   "mandatory": "0..1",
-   "max-elements": "0..1",
-   "min-elements": "0..1",
-   "must": "0..n",
-   "type": "0..1",
-   "unique": "0..1",
-   "units": "0..1",
-   "argument": "value"
-  },
-  "deviation": {
-   "description": "0..1",
-   "deviate": "1..n",
-   "reference": "0..1",
-   "argument": "target-node"
-  },
-  "enum": {
-   "description": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "value": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  if (params.value == null) {\n    if (this.enumValue == null) {\n      this.enumValue = 0;\n    }\n    params.value = this.enumValue++;\n  } else {\n    params.value = Number(params.value);\n    this.enumValue = params.value + 1;\n  }\n  return ctx[\"enum\"][arg] = params;\n}"
-   },
-   "argument": "name"
-  },
-  "feature": {
-   "description": "0..1",
-   "if-feature": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  if (params.status === 'unavailable') {\n    console.warn(\"feature \" + arg + \" is unavailable\");\n    if (typeof ctx.feature === 'object') {\n      return delete ctx.feature[arg];\n    } else {\n      return delete ctx.feature;\n    }\n  }\n}"
-   },
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var feature;\n  feature = this.resolve('feature', arg);\n  return null;\n}"
-   },
-   "argument": "name"
-  },
-  "grouping": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "description": "0..1",
-   "grouping": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "preprocess": {
-    "!js/function": "function (arg, params) {\n  return this.define('grouping', arg, params);\n}"
-   },
-   "argument": "name"
-  },
-  "identity": {
-   "base": "0..1",
-   "description": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params) {\n  return this.define('identity', arg, params);\n}"
-   },
-   "argument": "name"
-  },
-  "if-feature": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  if ((this.resolve('feature', arg)) == null) {\n    return ctx.status = 'unavailable';\n  }\n}"
-   },
-   "argument": "name"
-  },
-  "import": {
-   "prefix": 1,
-   "revision-date": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  var copy, k, m, original, ref, ref1, rev, schema, source, synth, v;\n  synth = this.require('data-synth');\n  schema = this.resolve('dependencies', arg, false);\n  if (schema == null) {\n    console.warn(\"no explicit dependency for \" + arg + \" defined, searching local filesystem\");\n    schema = this.parse(\"!yang \" + arg + \".yang\", this.source);\n    if (schema != null) {\n      this.define('dependencies', arg, schema);\n      source = this.source.parent;\n      while ((source.parent != null) && source.parent.name !== 'yangforge') {\n        source = source.parent;\n      }\n      if (source.dependencies == null) {\n        source.dependencies = {};\n      }\n      source.dependencies[arg] = schema;\n    }\n  }\n  m = this.preprocess(schema);\n  if (m == null) {\n    throw this.error(\"unable to resolve '\" + arg + \"' in dependencies\", 'import');\n  }\n  rev = params['revision-date'];\n  if ((rev != null) && !(rev in m.revision)) {\n    throw this.error(\"requested \" + rev + \" not available in \" + arg, 'import');\n  }\n  ref = m.extension;\n  for (k in ref) {\n    v = ref[k];\n    if (!(v.override === true)) {\n      continue;\n    }\n    original = this.resolve('extension', k);\n    copy = synth.copy({}, v);\n    copy.origin = synth.copy({}, (ref1 = original.origin) != null ? ref1 : original);\n    delete copy.override;\n    this.define('extension', k, copy);\n  }\n  return this.source[params.prefix] = m;\n}"
-   },
-   "construct": {
-    "!js/function": "function (arg, params, children, ctx) {\n  return this.compile(this.source[params.prefix], this.source);\n}"
-   },
-   "argument": "module"
-  },
-  "input": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "grouping": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var synth;\n  synth = this.require('data-synth');\n  return (synth.Object(params)).bind(children);\n}"
-   }
-  },
-  "leaf": {
-   "config": "0..1",
-   "default": "0..1",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "mandatory": "0..1",
-   "must": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "type": "0..1",
-   "units": "0..1",
-   "when": "0..1",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var synth;\n  synth = this.require('data-synth');\n  return synth.Property(params, function() {\n    if (children.type != null) {\n      return this.set({\n        type: children.type\n      });\n    }\n  });\n}"
-   },
-   "argument": "name"
-  },
-  "leaf-list": {
-   "config": "0..1",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "max-elements": "0..1",
-   "min-elements": "0..1",
-   "must": "0..n",
-   "ordered-by": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "type": "0..1",
-   "units": "0..1",
-   "when": "0..1",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var synth;\n  synth = this.require('data-synth');\n  return synth.List(params, function() {\n    if (children.type != null) {\n      return this.set({\n        type: children.type\n      });\n    }\n  });\n}"
-   },
-   "argument": "name"
-  },
-  "list": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "config": "0..1",
-   "container": "0..n",
-   "description": "0..1",
-   "grouping": "0..n",
-   "if-feature": "0..n",
-   "key": "0..1",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "max-elements": "0..1",
-   "min-elements": "0..1",
-   "must": "0..n",
-   "ordered-by": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "typedef": "0..n",
-   "unique": "0..1",
-   "uses": "0..n",
-   "when": "0..1",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var item, synth;\n  synth = this.require('data-synth');\n  item = (synth.Object(null)).bind(children);\n  return (synth.List(params)).set({\n    type: item\n  });\n}"
-   },
-   "argument": "name"
-  },
-  "mandatory": {
-   "preprocess": {
-    "!js/function": "function (arg, p, ctx) {\n  return ctx.mandatory = arg === true || arg === 'true';\n}"
-   },
-   "argument": "value"
-  },
-  "max-elements": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  if (arg !== 'unbounded') {\n    return ctx['max-elements'] = Number(arg);\n  }\n}"
-   },
-   "argument": "value"
-  },
-  "min-elements": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return ctx['min-elements'] = Number(arg);\n}"
-   },
-   "argument": "value"
-  },
-  "must": {
-   "description": "0..1",
-   "error-app-tag": "0..1",
-   "error-message": "0..1",
-   "reference": "0..1",
-   "argument": "condition"
-  },
-  "notification": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "description": "0..1",
-   "grouping": "0..n",
-   "if-feature": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "preprocess": {
-    "!js/function": "function (arg, params) {\n  return this.define('notification', arg, params);\n}"
-   },
-   "argument": "event"
-  },
-  "output": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "grouping": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var synth;\n  synth = this.require('data-synth');\n  return (synth.Object(params)).bind(children);\n}"
-   }
-  },
-  "path": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return ctx.path = arg.replace(/[_]/g, '.');\n}"
-   },
-   "argument": "value"
-  },
-  "pattern": {
-   "construct": {
-    "!js/function": "function (arg, params, children, ctx) {\n  if (ctx.patterns == null) {\n    ctx.patterns = [];\n  }\n  return ctx.patterns.push(new RegExp(arg));\n}"
-   },
-   "argument": "value"
-  },
-  "refine": {
-   "default": "0..1",
-   "description": "0..1",
-   "reference": "0..1",
-   "config": "0..1",
-   "mandatory": "0..1",
-   "presence": "0..1",
-   "must": "0..n",
-   "min-elements": "0..1",
-   "max-elements": "0..1",
-   "units": "0..1",
-   "argument": "target-node"
-  },
-  "require-instance": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return ctx['require-instance'] = arg === true || arg === 'true';\n}"
-   },
-   "argument": "value"
-  },
-  "revision": {
-   "description": "0..1",
-   "reference": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return this.define('revision', arg, params);\n}"
-   },
-   "argument": "date"
-  },
-  "rpc": {
-   "description": "0..1",
-   "grouping": "0..n",
-   "if-feature": "0..n",
-   "input": "0..1",
-   "output": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "typedef": "0..n",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var func, method, ref, ref1, request, response, synth;\n  synth = this.require('data-synth');\n  func = this.resolve('rpc', arg, false);\n  if (func == null) {\n    func = function(input, output, done) {\n      return done(\"No control logic found for '\" + arg + \"' rpc operation\");\n    };\n  }\n  request = (ref = children.input) != null ? ref : synth.Meta;\n  response = (ref1 = children.output) != null ? ref1 : synth.Meta;\n  method = function(data, resolve, reject) {\n    var e, error, input, output;\n    if (typeof console.debug === \"function\") {\n      console.debug(\"executing rpc \" + arg + \"...\");\n    }\n    try {\n      input = new request(data, this);\n      output = new response(null, this);\n    } catch (error) {\n      e = error;\n      return reject(e);\n    }\n    return func.call(this, input, output, function(e) {\n      if (e == null) {\n        return resolve(output);\n      } else {\n        return reject(e);\n      }\n    });\n  };\n  method.params = params;\n  method.input = request;\n  method.output = response;\n  return method;\n}"
-   },
-   "argument": "name"
-  },
-  "submodule": {
-   "argument": "name",
-   "anyxml": "0..n",
-   "augment": "0..n",
-   "belongs-to": "0..1",
-   "choice": "0..n",
-   "contact": "0..1",
-   "container": "0..n",
-   "description": "0..1",
-   "deviation": "0..n",
-   "extension": "0..n",
-   "feature": "0..n",
-   "grouping": "0..n",
-   "identity": "0..n",
-   "import": "0..n",
-   "include": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "notification": "0..n",
-   "organization": "0..1",
-   "reference": "0..1",
-   "revision": "0..n",
-   "rpc": "0..n",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "yang-version": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  var k, v;\n  for (k in params) {\n    v = params[k];\n    ctx[k] = v;\n  }\n  return delete ctx.submodule;\n}"
-   }
-  },
-  "status": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return ctx.status != null ? ctx.status : ctx.status = arg;\n}"
-   },
-   "argument": "value"
-  },
-  "type": {
-   "base": "0..1",
-   "bit": "0..n",
-   "enum": "0..n",
-   "fraction-digits": "0..1",
-   "length": "0..1",
-   "path": "0..1",
-   "pattern": "0..n",
-   "range": "0..1",
-   "require-instance": "0..1",
-   "type": "0..n",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return delete this.enumValue;\n}"
-   },
-   "construct": {
-    "!js/function": "function (arg, params, children, ctx) {\n  var key, mparams, ref, ref1, synth, typedef, value;\n  synth = this.require('data-synth');\n  typedef = this.resolve('typedef', arg);\n  if (typedef == null) {\n    throw this.error(\"unable to resolve typedef for \" + arg);\n  }\n  switch (false) {\n    case typedef.construct == null:\n      ctx.type = typedef.construct(params, this, arguments.callee);\n      break;\n    case typeof typedef.type !== 'object':\n      ref = typedef.type;\n      for (key in ref) {\n        value = ref[key];\n        mparams = synth.copy({}, value);\n        synth.copy(mparams, params);\n        arguments.callee.call(this, key, mparams, children, ctx);\n      }\n      break;\n    case typeof typedef.type !== 'string':\n      arguments.callee.call(this, typedef.type, params, children, ctx);\n  }\n  if ((ref1 = ctx.type) != null) {\n    ref1.toString = function() {\n      return arg;\n    };\n  }\n  return null;\n}"
-   },
-   "argument": "name"
-  },
-  "typedef": {
-   "default": "0..1",
-   "description": "0..1",
-   "units": "0..1",
-   "type": "0..1",
-   "reference": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params) {\n  return this.define('typedef', arg, params);\n}"
-   },
-   "argument": "name"
-  },
-  "uses": {
-   "augment": "0..n",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "refine": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "when": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  var changes, grouping, k, match, ref, ref1, synth, target, v;\n  synth = this.require('data-synth');\n  grouping = synth.copy({}, this.resolve('grouping', arg));\n  delete grouping.description;\n  delete grouping.reference;\n  synth.copy(ctx, grouping);\n  ref = params.refine;\n  for (target in ref) {\n    changes = ref[target];\n    match = this.locate(ctx, target);\n    if (match == null) {\n      continue;\n    }\n    for (k in changes) {\n      v = changes[k];\n      match[k] = v;\n    }\n  }\n  ref1 = params.augment;\n  for (target in ref1) {\n    changes = ref1[target];\n    match = this.locate(ctx, target);\n    if (match == null) {\n      continue;\n    }\n    synth.copy(match, changes);\n  }\n  if (typeof ctx.uses === 'object') {\n    return delete ctx.uses[arg];\n  } else {\n    return delete ctx.uses;\n  }\n}"
-   },
-   "argument": "name"
-  },
-  "when": {
-   "description": "0..1",
-   "reference": "0..1",
-   "argument": "condition"
-  },
-  "anyxml": {},
-  "base": {
-   "argument": "name"
-  },
-  "contact": {
-   "argument": {
-    "text": {
-     "yin-element": "true"
-    }
-   }
-  },
-  "default": {
-   "argument": "value"
-  },
-  "description": {
-   "argument": {
-    "text": {
-     "yin-element": "true"
-    }
-   }
-  },
-  "error-app-tag": {
-   "argument": "value"
-  },
-  "error-message": {
-   "argument": {
-    "value": {
-     "yin-element": "true"
-    }
-   }
-  },
-  "fraction-digits": {
-   "argument": "value"
-  },
-  "key": {
-   "argument": "value"
-  },
-  "length": {
-   "argument": "value"
-  },
-  "namespace": {
-   "argument": "uri"
-  },
-  "ordered-by": {
-   "argument": "value"
-  },
-  "organization": {
-   "argument": {
-    "text": {
-     "yin-element": "true"
-    }
-   }
-  },
-  "position": {
-   "argument": "value"
-  },
-  "presence": {
-   "argument": "value"
-  },
-  "range": {
-   "argument": "value"
-  },
-  "reference": {
-   "argument": {
-    "text": {
-     "yin-element": "true"
-    }
-   }
-  },
-  "revision-date": {
-   "argument": "date"
-  },
-  "unique": {
-   "argument": "tag"
-  },
-  "units": {
-   "argument": "value"
-  },
-  "value": {
-   "argument": "value"
-  },
-  "yang-version": {
-   "argument": "value"
-  },
-  "yin-element": {
-   "argument": "value"
-  }
- },
- "pkgdir": "/Users/onvelocity/rift-composer/webapp/schemas/yang",
- "module": {}
-}
\ No newline at end of file
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw.vnfd-yang.json b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw.vnfd-yang.json
deleted file mode 100644 (file)
index 5e6ad13..0000000
+++ /dev/null
@@ -1,2328 +0,0 @@
-{
- "synth": "source",
- "name": "rw-vnfd",
- "schema": {
-  "module": {
-   "rw-vnfd": {
-    "namespace": "http://riftio.com/ns/riftware-1.0/rw-vnfd",
-    "prefix": "rw-vnfd",
-    "import": {
-     "vnfd": {
-      "prefix": "vnfd"
-     },
-     "rwvcs-types": {
-      "prefix": "rwvcstypes"
-     },
-     "rw-pb-ext": {
-      "prefix": "rwpb"
-     },
-     "ietf-yang-types": {
-      "prefix": "yang"
-     },
-     "mano-types": {
-      "prefix": "manotypes"
-     }
-    },
-    "revision": {
-     "2015-09-10": {
-      "description": "Initial revision. This YANG file augments\nthe base MANO VNFD",
-      "reference": "Derived from earlier versions of base YANG files"
-     }
-    },
-    "augment": {
-     "/vnfd:vnfd-catalog/vnfd:vnfd": {
-      "uses": {},
-      "list": {
-       "component": {
-        "description": "This section defines the RIFT.ware\nvirtual components",
-        "key": "component-name",
-        "leaf": {
-         "component-name": {
-          "description": "",
-          "type": "string"
-         },
-         "component-type": {
-          "description": "",
-          "type": "rwvcstypes:component_type",
-          "mandatory": true
-         }
-        },
-        "choice": {
-         "component": {
-          "case": {
-           "rwvcs-rwcollection": {},
-           "rwvcs-rwvm": {},
-           "rwvcs-rwproc": {},
-           "native-proc": {},
-           "rwvcs-rwtasklet": {}
-          }
-         }
-        }
-       },
-       "control-param": {
-        "description": "List of control parameters to manage and\nupdate the running configuration of the VNF",
-        "key": "id",
-        "leaf": {
-         "id": {
-          "type": "string"
-         },
-         "name": {
-          "type": "string"
-         },
-         "description": {
-          "type": "string"
-         },
-         "group-tag": {
-          "description": "A simple tag to group control parameters",
-          "type": "string"
-         },
-         "min-value": {
-          "description": "Minimum value for the parameter",
-          "type": "uint64"
-         },
-         "max-value": {
-          "description": "Maxium value for the parameter",
-          "type": "uint64"
-         },
-         "current-value": {
-          "description": "Current value for the parameter",
-          "type": "uint64"
-         },
-         "step-value": {
-          "description": "Step value for the parameter",
-          "type": "uint64"
-         },
-         "units": {
-          "type": "string"
-         },
-         "widget-type": {
-          "type": "manotypes:widget-type"
-         },
-         "url": {
-          "description": "This is the URL where to perform the operation",
-          "type": "inet:uri"
-         },
-         "method": {
-          "description": "This is the method to be performed at the uri.\nPOST by default for action",
-          "type": "manotypes:http-method",
-          "default": "POST"
-         },
-         "payload": {
-          "description": "This is the operation payload or payload template as stringified\nJSON. This field provides the data  to be sent for this operation\ncall",
-          "type": "string"
-         }
-        }
-       },
-       "action-param": {
-        "description": "List of action parameters to\ncontrol VNF",
-        "key": "id",
-        "leaf": {
-         "id": {
-          "type": "string"
-         },
-         "name": {
-          "type": "string"
-         },
-         "description": {
-          "type": "string"
-         },
-         "group-tag": {
-          "description": "A simple tag to group monitoring parameter",
-          "type": "string"
-         },
-         "url": {
-          "description": "This is the URL where to perform the operation",
-          "type": "inet:uri"
-         },
-         "method": {
-          "description": "This is the method to be performed at the uri.\nPOST by default for action",
-          "type": "manotypes:http-method",
-          "default": "POST"
-         },
-         "payload": {
-          "description": "This is the operation payload or payload template to be sent in\nthe data for this operation call",
-          "type": "string"
-         }
-        }
-       }
-      }
-     },
-     "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:vdu": {
-      "leaf": {
-       "vcs-component-ref": {
-        "description": "This defines the software components using the\nRIFT.ware Virtual Component System (VCS). This\nalso allows specifying a state machine during\nthe VM startup.\nNOTE: This is an significant addition to MANO,\nsince MANO doesn't clearly specify a method to\nidentify various software components in a VM.\nAlso using a state machine is not something that\nis well described in MANO.",
-        "type": {
-         "leafref": {
-          "path": "/vnfd:vnfd-catalog/vnfd:vnfd/rw-vnfd:component/rw-vnfd:component-name"
-         }
-        }
-       }
-      }
-     }
-    }
-   }
-  }
- },
- "dependencies": {
-  "vnfd": {
-   "module": {
-    "vnfd": {
-     "namespace": "urn:ietf:params:xml:ns:yang:nfvo:vnfd",
-     "prefix": "vnfd",
-     "import": {
-      "mano-types": {
-       "prefix": "manotypes"
-      },
-      "rw-pb-ext": {
-       "prefix": "rwpb"
-      },
-      "ietf-yang-types": {
-       "prefix": "yang"
-      },
-      "ietf-inet-types": {
-       "prefix": "inet"
-      }
-     },
-     "revision": {
-      "2015-09-10": {
-       "description": "Initial revision. This YANG file defines\nthe Virtual Network Function (VNF)",
-       "reference": "Derived from earlier versions of base YANG files"
-      }
-     },
-     "grouping": {
-      "virtual-interface": {
-       "container": {
-        "virtual-interface": {
-         "description": "Container for the virtual interface properties",
-         "leaf": {
-          "type": {
-           "description": "Specifies the type of virtual interface\nbetween VM and host.\nVIRTIO          : Use the traditional VIRTIO interface.\nPCI-PASSTHROUGH : Use PCI-PASSTHROUGH interface.\nSR-IOV          : Use SR-IOV interface.\nOM-MGMT         : Used to specify openmano mgmt external-connection type",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "OM-MGMT": null,
-              "PCI-PASSTHROUGH": null,
-              "SR-IOV": null,
-              "VIRTIO": null
-             }
-            }
-           },
-           "default": "VIRTIO"
-          },
-          "vpci": {
-           "description": "Specifies the virtual PCI address. Expressed in\nthe following format dddd:dd:dd.d. For example\n0000:00:12.0. This information can be used to\npass as metadata during the VM creation.",
-           "type": "string"
-          },
-          "bandwidth": {
-           "description": "Aggregate bandwidth of the NIC.",
-           "type": "uint64"
-          }
-         }
-        }
-       }
-      }
-     },
-     "container": {
-      "vnfd-catalog": {
-       "description": "Virtual Network Function Descriptor (VNFD).",
-       "list": {
-        "vnfd": {
-         "key": "id",
-         "leaf": {
-          "id": {
-           "description": "Identifier for the VNFD.",
-           "type": "yang:uuid"
-          },
-          "name": {
-           "description": "VNFD name.",
-           "mandatory": "true",
-           "type": "string"
-          },
-          "short-name": {
-           "description": "VNFD short name.",
-           "type": "string"
-          },
-          "vendor": {
-           "description": "Vendor of the VNFD.",
-           "type": "string"
-          },
-          "description": {
-           "description": "Description of the VNFD.",
-           "type": "string"
-          },
-          "version": {
-           "description": "Version of the VNFD",
-           "type": "string"
-          }
-         },
-         "container": {
-          "mgmt-interface": {
-           "description": "Interface over which the VNF is managed.",
-           "choice": {
-            "endpoint-type": {
-             "description": "Indicates the type of management endpoint.",
-             "case": {
-              "ip": {
-               "description": "Specifies the static IP address for managing the VNF.",
-               "leaf": {
-                "ip-address": {
-                 "type": "inet:ip-address"
-                }
-               }
-              },
-              "vdu-id": {
-               "description": "Use the default management interface on this VDU.",
-               "leaf": {
-                "vdu-id": {
-                 "type": {
-                  "leafref": {
-                   "path": "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:vdu/vnfd:id"
-                  }
-                 }
-                }
-               }
-              },
-              "cp": {
-               "description": "Use the ip address associated with this connection point.",
-               "leaf": {
-                "cp": {
-                 "type": {
-                  "leafref": {
-                   "path": "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:connection-point/vnfd:name"
-                  }
-                 }
-                }
-               }
-              }
-             }
-            },
-            "interface-type": {
-             "case": {
-              "netconf": {
-               "leaf": {
-                "netconf": {
-                 "type": "empty"
-                }
-               }
-              }
-             }
-            }
-           },
-           "leaf": {
-            "port": {
-             "description": "Port for the management interface.",
-             "type": "inet:port-number"
-            }
-           },
-           "container": {
-            "dashboard-params": {
-             "description": "Parameters for the VNF dashboard",
-             "leaf": {
-              "path": {
-               "description": "The HTTP path for the dashboard",
-               "type": "string"
-              },
-              "https": {
-               "description": "Pick HTTPS instead of HTTP , Default is false",
-               "type": "boolean"
-              },
-              "port": {
-               "description": "The HTTP port for the dashboard",
-               "type": "inet:port-number"
-              }
-             }
-            }
-           }
-          }
-         },
-         "list": {
-          "internal-vld": {
-           "key": "id",
-           "description": "List of Internal Virtual Link Descriptors (VLD).\nThe internal VLD describes the basic topology of\nthe connectivity (e.g. E-LAN, E-Line, E-Tree)\nbetween internal VNF components of the system.",
-           "leaf": {
-            "id": {
-             "description": "Identifier for the VLD",
-             "type": "yang:uuid"
-            },
-            "name": {
-             "description": "Name of the internal VLD",
-             "type": "string"
-            },
-            "short-name": {
-             "description": "Short name of the internal VLD",
-             "type": "string"
-            },
-            "description": {
-             "type": "string"
-            },
-            "type": {
-             "type": "manotypes:virtual-link-type"
-            },
-            "root-bandwidth": {
-             "description": "For ELAN this is the aggregate bandwidth.",
-             "type": "uint64"
-            },
-            "leaf-bandwidth": {
-             "description": "For ELAN this is the bandwidth of branches.",
-             "type": "uint64"
-            }
-           },
-           "leaf-list": {
-            "internal-connection-point-ref": {
-             "type": {
-              "leafref": {
-               "path": "../../vdu/internal-connection-point/id"
-              }
-             }
-            }
-           },
-           "uses": "manotypes:provider-network"
-          },
-          "connection-point": {
-           "key": "name",
-           "description": "List for external connection points. Each VNF has one\nor more external connection points. As the name\nimplies that external connection points are used for\nconnecting the VNF to other VNFs or to external networks.\nEach VNF exposes these connection points to the\norchestrator. The orchestrator can construct network\nservices by connecting the connection points between\ndifferent VNFs. The NFVO will use VLDs and VNFFGs at\nthe network service level to construct network services.",
-           "leaf": {
-            "name": {
-             "description": "Name of the connection point",
-             "type": "string"
-            },
-            "short-name": {
-             "description": "Short name of the connection point",
-             "type": "string"
-            },
-            "type": {
-             "description": "Type of the connection point.",
-             "type": "manotypes:connection-point-type"
-            }
-           }
-          },
-          "vdu": {
-           "description": "List of Virtual Deployment Units",
-           "key": "id",
-           "leaf": {
-            "id": {
-             "description": "Unique id for the VDU",
-             "type": "yang:uuid"
-            },
-            "name": {
-             "description": "Unique name for the VDU",
-             "type": "string"
-            },
-            "description": {
-             "description": "Description of the VDU.",
-             "type": "string"
-            },
-            "count": {
-             "description": "Number of instances of VDU",
-             "type": "uint64"
-            },
-            "mgmt-vpci": {
-             "description": "Specifies the virtual PCI address. Expressed in\nthe following format dddd:dd:dd.d. For example\n0000:00:12.0. This information can be used to\npass as metadata during the VM creation.",
-             "type": "string"
-            },
-            "image": {
-             "description": "Image name for the software image.\nIf the image name is found within the VNF packaage it will\nbe uploaded to all cloud accounts during onboarding process.\nOtherwise, the image must be added to the cloud account with\nthe same name as entered here.\n",
-             "mandatory": "true",
-             "type": "string"
-            },
-            "cloud-init": {
-             "description": "Content of cloud-init script",
-             "type": "string"
-            }
-           },
-           "uses": {
-            "manotypes:vm-flavor": null,
-            "manotypes:guest-epa": null,
-            "manotypes:vswitch-epa": null,
-            "manotypes:hypervisor-epa": null,
-            "manotypes:host-epa": null
-           },
-           "list": {
-            "internal-connection-point": {
-             "key": "id",
-             "description": "List for internal connection points. Each VNFC\nhas zero or more internal connection points.\nInternal connection points are used for connecting\nthe VNF components internal to the VNF. If a VNF\nhas only one VNFC, it may not have any internal\nconnection points.",
-             "leaf": {
-              "id": {
-               "description": "Identifier for the internal connection points",
-               "type": "yang:uuid"
-              },
-              "type": {
-               "description": "Type of the connection point.",
-               "type": "manotypes:connection-point-type"
-              },
-              "internal-vld-ref": {
-               "type": {
-                "leafref": {
-                 "path": "../../../internal-vld/id"
-                }
-               }
-              }
-             }
-            },
-            "internal-interface": {
-             "description": "List of internal interfaces for the VNF",
-             "key": "name",
-             "leaf": {
-              "name": {
-               "description": "Name of internal interface. Note that this\nname has only local significance to the VDU.",
-               "type": "string"
-              },
-              "vdu-internal-connection-point-ref": {
-               "type": {
-                "leafref": {
-                 "path": "../../internal-connection-point/id"
-                }
-               }
-              }
-             },
-             "uses": "virtual-interface"
-            },
-            "external-interface": {
-             "description": "List of external interfaces for the VNF.\nThe external interfaces enable sending\ntraffic to and from VNF.",
-             "key": "name",
-             "leaf": {
-              "name": {
-               "description": "Name of the external interface. Note that\nthis name has only local significance.",
-               "type": "string"
-              },
-              "vnfd-connection-point-ref": {
-               "description": "Name of the external connection point.",
-               "type": {
-                "leafref": {
-                 "path": "../../../connection-point/name"
-                }
-               }
-              }
-             },
-             "uses": "virtual-interface"
-            }
-           }
-          },
-          "vdu-dependency": {
-           "description": "List of VDU dependencies.",
-           "key": "vdu-source-ref",
-           "leaf": {
-            "vdu-source-ref": {
-             "type": {
-              "leafref": {
-               "path": "../../vdu/id"
-              }
-             }
-            },
-            "vdu-depends-on-ref": {
-             "description": "Reference to the VDU that\nsource VDU depends.",
-             "type": {
-              "leafref": {
-               "path": "../../vdu/id"
-              }
-             }
-            }
-           }
-          }
-         },
-         "uses": "manotypes:monitoring-param"
-        }
-       }
-      }
-     }
-    }
-   }
-  },
-  "mano-types": {
-   "module": {
-    "mano-types": {
-     "namespace": "urn:ietf:params:xml:ns:yang:nfvo:mano-types",
-     "prefix": "manotypes",
-     "import": {
-      "ietf-inet-types": {
-       "prefix": "inet"
-      }
-     },
-     "revision": {
-      "2015-04-23": {
-       "description": "Initial revision. This YANG file defines\nthe reusable base types for VNF Management\nand Orchestration (MANO).",
-       "reference": "Derived from earlier versions of base YANG files"
-      }
-     },
-     "typedef": {
-      "virtual-link-type": {
-       "description": "Type of virtual link\nELAN: A multipoint service connecting a set of VNFs\n// ELINE: For a simple point to point connection\n//        between a VNF and the existing network.\n// ETREE: A multipoint service connecting one or\n//        more roots and a set of leaves, but\n//        preventing inter-leaf communication.",
-       "type": {
-        "enumeration": {
-         "enum": "ELAN"
-        }
-       }
-      },
-      "http-method": {
-       "description": "Type of HTTP operation",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "POST": {
-           "value": 0
-          },
-          "PUT": {
-           "value": 1
-          },
-          "GET": {
-           "value": 2
-          },
-          "DELETE": {
-           "value": 3
-          },
-          "OPTIONS": {
-           "value": 4
-          },
-          "PATCH": {
-           "value": 5
-          }
-         }
-        }
-       }
-      },
-      "api-type": {
-       "description": "Type of API to fetch monitoring params",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "HTTP": {
-           "value": 0
-          },
-          "NETCONF": {
-           "value": 1
-          },
-          "SOAP": {
-           "value": 2
-          }
-         }
-        }
-       }
-      },
-      "json-query-method": {
-       "description": "The method to extract a value from a JSON response\n\nNAMEKEY - Use the name as the key for a non-nested value.\nJSONPATH - Use jsonpath-rw implemenation to extract a value.\nOBJECTPATH - Use objectpath implemenation to extract a value.",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "NAMEKEY": {
-           "value": 0
-          },
-          "JSONPATH": {
-           "value": 1
-          },
-          "OBJECTPATH": {
-           "value": 2
-          }
-         }
-        }
-       }
-      },
-      "param-value-type": {
-       "description": "The type of the parameter value",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "INT": {
-           "value": 0
-          },
-          "DECIMAL": {
-           "value": 1
-          },
-          "STRING": {
-           "value": 2
-          }
-         }
-        }
-       }
-      },
-      "connection-point-type": {
-       "description": "Type of connection point\nVPORT: Virtual Port\n// VNIC_ADDR: Virtual NIC Address\n// PNIC_ADDR: Physical NIC Address\n// PPORT: Phsical Port.",
-       "type": {
-        "enumeration": {
-         "enum": "VPORT"
-        }
-       }
-      },
-      "widget-type": {
-       "description": "Type of the widget, typically used by the UI.",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "HISTOGRAM": {
-           "value": 0
-          },
-          "BAR": {
-           "value": 1
-          },
-          "GAUGE": {
-           "value": 2
-          },
-          "SLIDER": {
-           "value": 3
-          },
-          "COUNTER": {
-           "value": 4
-          },
-          "TEXTBOX": {
-           "value": 5
-          }
-         }
-        }
-       }
-      },
-      "cpu-feature-type": {
-       "description": "Enumeration for CPU features.\n\nAES: CPU supports advanced instruction set for\nAES (Advanced Encryption Standard).\n\nCAT: Cache Allocation Technology (CAT) allows\nan Operating System, Hypervisor, or similar\nsystem management agent to specify the amount\nof L3 cache (currently the last-level cache\nin most server and client platforms) space an\napplication can fill (as a hint to hardware\nfunctionality, certain features such as power\nmanagement may override CAT settings).\n\nCMT: Cache Monitoring Technology (CMT) allows\nan Operating System, Hypervisor, or similar\nsystem management agent to determine the\nusage of cache based on applications running\non the platform. The implementation is\ndirected at L3 cache monitoring (currently\nthe last-level cache in most server and\nclient platforms).\n\nDDIO: Intel Data Direct I/O (DDIO) enables\nEthernet server NICs and controllers talk\ndirectly to the processor cache without a\ndetour via system memory. This enumeration\nspecifies if the VM requires a DDIO\ncapable host.",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "PREFER_AES": {
-           "value": 0
-          },
-          "REQUIRE_AES": {
-           "value": 1
-          },
-          "PREFER_CAT": {
-           "value": 2
-          },
-          "REQUIRE_CAT": {
-           "value": 3
-          },
-          "PREFER_CMT": {
-           "value": 4
-          },
-          "REQUIRE_CMT": {
-           "value": 5
-          },
-          "PREFER_DDIO": {
-           "value": 6
-          },
-          "REQUIRE_DDIO": {
-           "value": 7
-          }
-         }
-        }
-       }
-      }
-     },
-     "grouping": {
-      "named-value": {
-       "leaf": {
-        "name": {
-         "type": "string"
-        },
-        "value": {
-         "type": "string"
-        }
-       }
-      },
-      "vm-flavor": {
-       "container": {
-        "vm-flavor": {
-         "leaf": {
-          "vcpu-count": {
-           "description": "Number of vcpus for the VM.",
-           "type": "uint16"
-          },
-          "memory-mb": {
-           "description": "Amount of memory in MB.",
-           "type": "uint64"
-          },
-          "storage-gb": {
-           "description": "Amount of disk space in GB.",
-           "type": "uint64"
-          }
-         }
-        }
-       }
-      },
-      "vswitch-epa": {
-       "container": {
-        "vswitch-epa": {
-         "leaf": {
-          "ovs-acceleration": {
-           "description": "Specifies Open vSwitch acceleration mode.\nMANDATORY: OVS acceleration is required\nPREFERRED: OVS acceleration is preferred",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "MANDATORY": {
-               "value": 0
-              },
-              "PREFERRED": {
-               "value": 1
-              },
-              "DISABLED": {
-               "value": 2
-              }
-             }
-            }
-           }
-          },
-          "ovs-offload": {
-           "description": "Specifies Open vSwitch hardware offload mode.\nMANDATORY: OVS offload is required\nPREFERRED: OVS offload is preferred",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "MANDATORY": {
-               "value": 0
-              },
-              "PREFERRED": {
-               "value": 1
-              },
-              "DISABLED": {
-               "value": 2
-              }
-             }
-            }
-           }
-          }
-         }
-        }
-       }
-      },
-      "hypervisor-epa": {
-       "container": {
-        "hypervisor-epa": {
-         "leaf": {
-          "type": {
-           "description": "Specifies the type of hypervisor.\nKVM: KVM\nXEN: XEN",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "PREFER_KVM": {
-               "value": 0
-              },
-              "REQUIRE_KVM": {
-               "value": 1
-              }
-             }
-            }
-           }
-          },
-          "version": {
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "host-epa": {
-       "container": {
-        "host-epa": {
-         "description": "Specifies the host level EPA attributes.",
-         "leaf": {
-          "cpu-model": {
-           "description": "Host CPU model. Examples include: SandyBridge,\nIvyBridge",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "PREFER_WESTMERE": {
-               "value": 0
-              },
-              "REQUIRE_WESTMERE": {
-               "value": 1
-              },
-              "PREFER_SANDYBRIDGE": {
-               "value": 2
-              },
-              "REQUIRE_SANDYBRIDGE": {
-               "value": 3
-              },
-              "PREFER_IVYBRIDGE": {
-               "value": 4
-              },
-              "REQUIRE_IVYBRIDGE": {
-               "value": 5
-              },
-              "PREFER_HASWELL": {
-               "value": 6
-              },
-              "REQUIRE_HASWELL": {
-               "value": 7
-              },
-              "PREFER_BROADWELL": {
-               "value": 8
-              },
-              "REQUIRE_BROADWELL": {
-               "value": 9
-              },
-              "PREFER_NEHALEM": {
-               "value": 10
-              },
-              "REQUIRE_NEHALEM": {
-               "value": 11
-              },
-              "PREFER_PENRYN": {
-               "value": 12
-              },
-              "REQUIRE_PENRYN": {
-               "value": 13
-              },
-              "PREFER_CONROE": {
-               "value": 14
-              },
-              "REQUIRE_CONROE": {
-               "value": 15
-              },
-              "PREFER_CORE2DUO": {
-               "value": 16
-              },
-              "REQUIRE_CORE2DUO": {
-               "value": 17
-              }
-             }
-            }
-           }
-          },
-          "cpu-arch": {
-           "description": "Host CPU architecture.",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "PREFER_X86": {
-               "value": 0
-              },
-              "REQUIRE_X86": {
-               "value": 1
-              },
-              "PREFER_X86_64": {
-               "value": 2
-              },
-              "REQUIRE_X86_64": {
-               "value": 3
-              },
-              "PREFER_I686": {
-               "value": 4
-              },
-              "REQUIRE_I686": {
-               "value": 5
-              },
-              "PREFER_IA64": {
-               "value": 6
-              },
-              "REQUIRE_IA64": {
-               "value": 7
-              },
-              "PREFER_ARMV7": {
-               "value": 8
-              },
-              "REQUIRE_ARMV7": {
-               "value": 9
-              },
-              "PREFER_ARMV8": {
-               "value": 10
-              },
-              "REQUIRE_ARMV8": {
-               "value": 11
-              }
-             }
-            }
-           }
-          },
-          "cpu-vendor": {
-           "description": "Host CPU Vendor.",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "PREFER_INTEL": {
-               "value": 0
-              },
-              "REQUIRE_INTEL": {
-               "value": 1
-              },
-              "PREFER_AMD": {
-               "value": 2
-              },
-              "REQUIRE_AMD": {
-               "value": 3
-              }
-             }
-            }
-           }
-          },
-          "cpu-socket-count": {
-           "description": "Number of sockets on the host.",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "PREFER_ONE": {
-               "value": 0
-              },
-              "PREFER_TWO": {
-               "value": 1
-              },
-              "REQUIRE_ONE": {
-               "value": 2
-              },
-              "REQUIRE_TWO": {
-               "value": 3
-              }
-             }
-            }
-           }
-          },
-          "cpu-core-count": {
-           "description": "Number of cores on the host.",
-           "type": "uint64"
-          },
-          "om-cpu-model-string": {
-           "description": "Openmano CPU model string",
-           "type": "string"
-          }
-         },
-         "leaf-list": {
-          "cpu-feature": {
-           "description": "List of CPU features.",
-           "type": "manotypes:cpu-feature-type"
-          },
-          "om-cpu-feature": {
-           "description": "Openmano CPU features",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "guest-epa": {
-       "description": "EPA attributes for the guest",
-       "container": {
-        "guest-epa": {
-         "leaf": {
-          "trusted-execution": {
-           "description": "This VM should be allocated from trusted pool",
-           "type": "boolean"
-          },
-          "mempage-size": {
-           "description": "Memory page allocation size. If a VM requires\nhugepages, it should choose LARGE or SIZE_2MB\nor SIZE_1GB. If the VM prefers hugepages it\nshould chose PREFER_LARGE.\nLARGE        : Require hugepages (either 2MB or 1GB)\nSMALL        : Doesn't require hugepages\nSIZE_2MB     : Requires 2MB hugepages\nSIZE_1GB     : Requires 1GB hugepages\nPREFER_LARGE : Application perfers hugepages",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "LARGE": {
-               "value": 0
-              },
-              "SMALL": {
-               "value": 1
-              },
-              "SIZE_2MB": {
-               "value": 2
-              },
-              "SIZE_1GB": {
-               "value": 3
-              },
-              "PREFER_LARGE": {
-               "value": 4
-              }
-             }
-            }
-           }
-          },
-          "cpu-pinning-policy": {
-           "description": "CPU pinning policy describes association\nbetween virtual CPUs in guest and the\nphysical CPUs in the host.\nDEDICATED : Virtual CPUs are pinned to\n            physical CPUs\nSHARED    : Multiple VMs may share the\n            same physical CPUs.\nANY       : Any policy is acceptable for the VM",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "DEDICATED": {
-               "value": 0
-              },
-              "SHARED": {
-               "value": 1
-              },
-              "ANY": {
-               "value": 2
-              }
-             }
-            }
-           },
-           "default": "ANY"
-          },
-          "cpu-thread-pinning-policy": {
-           "description": "CPU thread pinning policy describes how to\nplace the guest CPUs when the host supports\nhyper threads:\nAVOID   : Avoids placing a guest on a host\n          with threads.\nSEPARATE: Places vCPUs on separate cores,\n          and avoids placing two vCPUs on\n          two threads of same core.\nISOLATE : Places each vCPU on a different core,\n          and places no vCPUs from a different\n          guest on the same core.\nPREFER  : Attempts to place vCPUs on threads\n          of the same core.",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "AVOID": {
-               "value": 0
-              },
-              "SEPARATE": {
-               "value": 1
-              },
-              "ISOLATE": {
-               "value": 2
-              },
-              "PREFER": {
-               "value": 3
-              }
-             }
-            }
-           }
-          }
-         },
-         "list": {
-          "pcie-device": {
-           "description": "List of pcie passthrough devices.",
-           "key": "device-id",
-           "leaf": {
-            "device-id": {
-             "description": "Device identifier.",
-             "type": "string"
-            },
-            "count": {
-             "description": "Number of devices to attach to the VM.",
-             "type": "uint64"
-            }
-           }
-          }
-         },
-         "choice": {
-          "numa-policy": {
-           "case": {
-            "numa-unware": {
-             "leaf": {
-              "numa-unware": {
-               "type": "empty"
-              }
-             }
-            },
-            "numa-aware": {
-             "container": {
-              "numa-node-policy": {
-               "description": "This policy defines numa topology of the\nguest. Specifically identifies if the guest\nshould be run on a host with one numa\nnode or multiple numa nodes. As an example\na guest may want 8 vcpus and 4 GB of\nmemory. But may want the vcpus and memory\ndistributed across multiple numa nodes.\nThe NUMA node 1 may run with 6 vcpus and\n3GB, and NUMA node 2 may run with 2 vcpus\nand 1GB.",
-               "leaf": {
-                "node-cnt": {
-                 "description": "The number of numa nodes to expose to the VM.",
-                 "type": "uint16"
-                },
-                "mem-policy": {
-                 "description": "This policy specifies how the memory should\nbe allocated in a multi-node scenario.\nSTRICT    : The memory must be allocated\n            strictly from the memory attached\n            to the NUMA node.\nPREFERRED : The memory should be allocated\n            perferentially from the memory\n            attached to the NUMA node",
-                 "type": {
-                  "enumeration": {
-                   "enum": {
-                    "STRICT": {
-                     "value": 0
-                    },
-                    "PREFERRED": {
-                     "value": 1
-                    }
-                   }
-                  }
-                 }
-                }
-               },
-               "list": {
-                "node": {
-                 "key": "id",
-                 "leaf": {
-                  "id": {
-                   "description": "NUMA node identification. Typically\nit's 0 or 1",
-                   "type": "uint64"
-                  },
-                  "memory-mb": {
-                   "description": "Memory size expressed in MB\nfor this NUMA node.",
-                   "type": "uint64"
-                  }
-                 },
-                 "leaf-list": {
-                  "vcpu": {
-                   "description": "List of vcpus to allocate on\nthis numa node.",
-                   "type": "uint64"
-                  }
-                 },
-                 "choice": {
-                  "om-numa-type": {
-                   "description": "Openmano Numa type selection",
-                   "case": {
-                    "cores": {
-                     "leaf": {
-                      "num-cores": {
-                       "type": "uint8"
-                      }
-                     }
-                    },
-                    "paired-threads": {
-                     "container": {
-                      "paired-threads": {
-                       "leaf": {
-                        "num-paired-threads": {
-                         "type": "uint8"
-                        }
-                       },
-                       "list": {
-                        "paired-thread-ids": {
-                         "description": "List of thread pairs to use in case of paired-thread numa",
-                         "max-elements": 16,
-                         "key": "thread-a",
-                         "leaf": {
-                          "thread-a": {
-                           "type": "uint8"
-                          },
-                          "thread-b": {
-                           "type": "uint8"
-                          }
-                         }
-                        }
-                       }
-                      }
-                     }
-                    },
-                    "threads": {
-                     "leaf": {
-                      "num-threads": {
-                       "type": "uint8"
-                      }
-                     }
-                    }
-                   }
-                  }
-                 }
-                }
-               }
-              }
-             }
-            }
-           }
-          }
-         }
-        }
-       }
-      },
-      "provider-network": {
-       "container": {
-        "provider-network": {
-         "description": "Container for the provider network.",
-         "leaf": {
-          "name": {
-           "description": "Name of the provider network.",
-           "type": "string"
-          },
-          "physical-network": {
-           "description": "Name of the phsyical network on which the provider\nnetwork is built.",
-           "type": "string"
-          },
-          "overlay-type": {
-           "description": "Type of the overlay network.",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "LOCAL": {
-               "value": 0
-              },
-              "FLAT": {
-               "value": 1
-              },
-              "VLAN": {
-               "value": 2
-              },
-              "VXLAN": {
-               "value": 3
-              },
-              "GRE": {
-               "value": 4
-              }
-             }
-            }
-           }
-          },
-          "segmentation_id": {
-           "description": "Segmentation ID",
-           "type": "uint32"
-          }
-         }
-        }
-       }
-      },
-      "monitoring-param": {
-       "list": {
-        "http-endpoint": {
-         "description": "List of http endpoints to be used by monitoring params",
-         "key": "path",
-         "leaf": {
-          "path": {
-           "description": "The HTTP path on the management server",
-           "type": "string"
-          },
-          "https": {
-           "description": "Pick HTTPS instead of HTTP , Default is false",
-           "type": "boolean",
-           "default": "false"
-          },
-          "port": {
-           "description": "The HTTP port to connect to",
-           "type": "inet:port-number"
-          },
-          "username": {
-           "description": "The HTTP basic auth username",
-           "type": "string"
-          },
-          "password": {
-           "description": "The HTTP basic auth password",
-           "type": "string"
-          },
-          "polling_interval_secs": {
-           "description": "The HTTP polling interval in seconds",
-           "type": "uint8",
-           "default": "2"
-          },
-          "method": {
-           "description": "This is the method to be performed at the uri.\nGET by default for action",
-           "type": "manotypes:http-method",
-           "default": "GET"
-          }
-         },
-         "list": {
-          "headers": {
-           "description": "Custom HTTP headers to put on HTTP request",
-           "key": "key",
-           "leaf": {
-            "key": {
-             "description": "HTTP header key",
-             "type": "string"
-            },
-            "value": {
-             "description": "HTTP header value",
-             "type": "string"
-            }
-           }
-          }
-         }
-        },
-        "monitoring-param": {
-         "description": "List of monitoring parameters at the NS level",
-         "key": "id",
-         "leaf": {
-          "id": {
-           "type": "string"
-          },
-          "name": {
-           "type": "string"
-          },
-          "http-endpoint-ref": {
-           "type": {
-            "leafref": {
-             "path": "../../http-endpoint/path"
-            }
-           }
-          },
-          "json-query-method": {
-           "type": "manotypes:json-query-method",
-           "default": "NAMEKEY"
-          },
-          "description": {
-           "type": "string"
-          },
-          "group-tag": {
-           "description": "A simple tag to group monitoring parameters",
-           "type": "string"
-          },
-          "value-type": {
-           "type": "manotypes:param-value-type",
-           "default": "INT"
-          },
-          "value-integer": {
-           "description": "Current value for an integer parameter",
-           "type": "int64"
-          },
-          "value-decimal": {
-           "description": "Current value for a decimal parameter",
-           "type": {
-            "decimal64": {
-             "fraction-digits": "4"
-            }
-           }
-          },
-          "value-string": {
-           "description": "Current value for a string parameter",
-           "type": "string"
-          },
-          "widget-type": {
-           "type": "manotypes:widget-type"
-          },
-          "units": {
-           "type": "string"
-          }
-         },
-         "container": {
-          "json-query-params": {
-           "leaf": {
-            "json-path": {
-             "description": "The jsonpath to use to extract value from JSON structure",
-             "type": "string"
-            },
-            "object-path": {
-             "description": "The objectpath to use to extract value from JSON structure",
-             "type": "string"
-            }
-           }
-          },
-          "numeric-constraints": {
-           "leaf": {
-            "min-value": {
-             "description": "Minimum value for the parameter",
-             "type": "uint64"
-            },
-            "max-value": {
-             "description": "Maxium value for the parameter",
-             "type": "uint64"
-            }
-           }
-          },
-          "text-constraints": {
-           "leaf": {
-            "min-length": {
-             "description": "Minimum string length for the parameter",
-             "type": "uint8"
-            },
-            "max-length": {
-             "description": "Maximum string length for the parameter",
-             "type": "uint8"
-            }
-           }
-          }
-         }
-        }
-       }
-      },
-      "control-param": {
-       "list": {
-        "control-param": {
-         "description": "List of control parameters to manage and\nupdate the running configuration of the VNF",
-         "key": "id",
-         "leaf": {
-          "id": {
-           "type": "string"
-          },
-          "name": {
-           "type": "string"
-          },
-          "description": {
-           "type": "string"
-          },
-          "group-tag": {
-           "description": "A simple tag to group control parameters",
-           "type": "string"
-          },
-          "min-value": {
-           "description": "Minimum value for the parameter",
-           "type": "uint64"
-          },
-          "max-value": {
-           "description": "Maxium value for the parameter",
-           "type": "uint64"
-          },
-          "current-value": {
-           "description": "Current value for the parameter",
-           "type": "uint64"
-          },
-          "step-value": {
-           "description": "Step value for the parameter",
-           "type": "uint64"
-          },
-          "units": {
-           "type": "string"
-          },
-          "widget-type": {
-           "type": "manotypes:widget-type"
-          },
-          "url": {
-           "description": "This is the URL where to perform the operation",
-           "type": "inet:uri"
-          },
-          "method": {
-           "description": "This is the method to be performed at the uri.\nPOST by default for action",
-           "type": "manotypes:http-method",
-           "default": "POST"
-          },
-          "payload": {
-           "description": "This is the operation payload or payload template as stringified\nJSON. This field provides the data  to be sent for this operation\ncall",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "action-param": {
-       "list": {
-        "action-param": {
-         "description": "List of action parameters to\ncontrol VNF",
-         "key": "id",
-         "leaf": {
-          "id": {
-           "type": "string"
-          },
-          "name": {
-           "type": "string"
-          },
-          "description": {
-           "type": "string"
-          },
-          "group-tag": {
-           "description": "A simple tag to group monitoring parameter",
-           "type": "string"
-          },
-          "url": {
-           "description": "This is the URL where to perform the operation",
-           "type": "inet:uri"
-          },
-          "method": {
-           "description": "This is the method to be performed at the uri.\nPOST by default for action",
-           "type": "manotypes:http-method",
-           "default": "POST"
-          },
-          "payload": {
-           "description": "This is the operation payload or payload template to be sent in\nthe data for this operation call",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "input-parameters": {
-       "description": "",
-       "list": {
-        "input-parameters": {
-         "description": "List of input parameters",
-         "key": "uuid",
-         "leaf": {
-          "uuid": {
-           "description": "An identifier that uniquely identifies an input parameter",
-           "type": "string"
-          },
-          "xpath": {
-           "description": "A an xpath that specfies which element in a descriptor is to be\nmodified.",
-           "type": "string"
-          },
-          "value": {
-           "description": "The value that the element specified by the xpath should take when a\nrecord is created.",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "input-parameters-descriptor": {
-       "description": "Input parameters in the descriptor",
-       "list": {
-        "input-parameters": {
-         "description": "List of input parameters",
-         "key": "uuid",
-         "leaf": {
-          "uuid": {
-           "description": "An identifier that uniquely identifies an input parameter",
-           "type": "string"
-          },
-          "xpath": {
-           "description": "A an xpath that specfies which element in a descriptor is to be\nmodified.",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "input-parameter-xpath": {
-       "list": {
-        "input-parameter-xpath": {
-         "description": "List of xpaths to parameters inside the NSD\nthe can be customized during the instantiation.",
-         "key": "xpath",
-         "leaf": {
-          "xpath": {
-           "description": "An xpath that specifies the element in a descriptor.",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "nfvi-metrics": {
-       "container": {
-        "vcpu": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "VCPU"
-          },
-          "total": {
-           "description": "The total number of VCPUs available.",
-           "type": "uint64"
-          },
-          "utilization": {
-           "description": "The VCPU utilization (percentage).",
-           "type": {
-            "decimal64": {
-             "fraction-digits": "2",
-             "range": "0 .. 100"
-            }
-           }
-          }
-         }
-        },
-        "memory": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "MEMORY"
-          },
-          "used": {
-           "description": "The amount of memory (bytes) currently in use.",
-           "type": "uint64"
-          },
-          "total": {
-           "description": "The amount of memory (bytes) available.",
-           "type": "uint64"
-          },
-          "utilization": {
-           "description": "The memory utilization (percentage).",
-           "type": {
-            "decimal64": {
-             "fraction-digits": "2",
-             "range": "0 .. 100"
-            }
-           }
-          }
-         }
-        },
-        "storage": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "STORAGE"
-          },
-          "used": {
-           "description": "The amount of storage (bytes) currently in use.",
-           "type": "uint64"
-          },
-          "total": {
-           "description": "The amount of storage (bytes) available.",
-           "type": "uint64"
-          },
-          "utilization": {
-           "description": "The storage utilization (percentage).",
-           "type": {
-            "decimal64": {
-             "fraction-digits": "2",
-             "range": "0 .. 100"
-            }
-           }
-          }
-         }
-        },
-        "external-ports": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "EXTERNAL PORTS"
-          },
-          "total": {
-           "description": "The total number of external ports.",
-           "type": "uint64"
-          }
-         }
-        },
-        "internal-ports": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "INTERNAL PORTS"
-          },
-          "total": {
-           "description": "The total number of internal ports.",
-           "type": "uint64"
-          }
-         }
-        },
-        "network": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "NETWORK TRAFFIC"
-          }
-         },
-         "container": {
-          "incoming": {
-           "leaf": {
-            "label": {
-             "description": "Label to show in UI",
-             "type": "string",
-             "default": "INCOMING NETWORK TRAFFIC"
-            },
-            "bytes": {
-             "description": "The cumulative number of incoming bytes.",
-             "type": "uint64"
-            },
-            "packets": {
-             "description": "The cumulative number of incoming packets.",
-             "type": "uint64"
-            },
-            "byte-rate": {
-             "description": "The current incoming byte-rate (bytes per second).",
-             "type": {
-              "decimal64": {
-               "fraction-digits": "2"
-              }
-             }
-            },
-            "packet-rate": {
-             "description": "The current incoming packet (packets per second).",
-             "type": {
-              "decimal64": {
-               "fraction-digits": "2"
-              }
-             }
-            }
-           }
-          },
-          "outgoing": {
-           "leaf": {
-            "label": {
-             "description": "Label to show in UI",
-             "type": "string",
-             "default": "OUTGOING NETWORK TRAFFIC"
-            },
-            "bytes": {
-             "description": "The cumulative number of outgoing bytes.",
-             "type": "uint64"
-            },
-            "packets": {
-             "description": "The cumulative number of outgoing packets.",
-             "type": "uint64"
-            },
-            "byte-rate": {
-             "description": "The current outgoing byte-rate (bytes per second).",
-             "type": {
-              "decimal64": {
-               "fraction-digits": "2"
-              }
-             }
-            },
-            "packet-rate": {
-             "description": "The current outgoing packet (packets per second).",
-             "type": {
-              "decimal64": {
-               "fraction-digits": "2"
-              }
-             }
-            }
-           }
-          }
-         }
-        }
-       }
-      }
-     }
-    }
-   }
-  },
-  "rw-pb-ext": {
-   "module": {
-    "rw-pb-ext": {
-     "namespace": "http://riftio.com/ns/riftware-1.0/rw-pb-ext",
-     "prefix": "rwpb",
-     "revision": {
-      "2014-03-28": {
-       "description": "Initial revision.",
-       "reference": "RIFT yang extensions for converting yang files to Google\nProtocol Buffers (protobuf) using rift protoc-c extensions."
-      }
-     }
-    }
-   }
-  },
-  "rwvcs-types": {
-   "module": {
-    "rwvcs-types": {
-     "namespace": "http://riftio.com/ns/riftware-1.0/rwvcs-types",
-     "prefix": "rwvcstypes"
-    }
-   }
-  }
- },
- "extension": {
-  "module": {
-   "argument": "name",
-   "include": "0..n",
-   "prefix": "0..1",
-   "anyxml": "0..n",
-   "augment": "0..n",
-   "choice": "0..n",
-   "contact": "0..1",
-   "container": "0..n",
-   "description": "0..1",
-   "deviation": "0..n",
-   "extension": "0..n",
-   "feature": "0..n",
-   "grouping": "0..n",
-   "identity": "0..n",
-   "import": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "namespace": "0..1",
-   "notification": "0..n",
-   "organization": "0..1",
-   "reference": "0..1",
-   "revision": "0..n",
-   "rpc": "0..n",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "yang-version": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  var changes, match, ref, synth, target;\n  synth = this.require('data-synth');\n  ref = params.augment;\n  for (target in ref) {\n    changes = ref[target];\n    match = this.locate(ctx, target);\n    if (match == null) {\n      continue;\n    }\n    synth.copy(match, changes);\n  }\n  return delete this.source[params.prefix];\n}"
-   },
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var k, m, modules, ref, synth, v;\n  synth = this.require('data-synth');\n  modules = {};\n  ref = params[\"import\"];\n  for (k in ref) {\n    v = ref[k];\n    modules[k] = children[k];\n    delete children[k];\n  }\n  m = (synth.Store(params, function() {\n    return this.set({\n      name: arg,\n      modules: modules\n    });\n  })).bind(children);\n  this.define('module', arg, m);\n  return m;\n}"
-   }
-  },
-  "prefix": {
-   "argument": "value",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return this.source[arg] = this.source;\n}"
-   }
-  },
-  "include": {
-   "argument": "module",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  var k, m, ref, ref1, ref2, results, v;\n  m = this.preprocess(this.resolve('dependencies', arg));\n  ref = m.extension;\n  for (k in ref) {\n    v = ref[k];\n    this.define('extension', k, v);\n  }\n  ref1 = m.typedef;\n  for (k in ref1) {\n    v = ref1[k];\n    this.define('typedef', k, v);\n  }\n  ref2 = m.schema;\n  results = [];\n  for (k in ref2) {\n    v = ref2[k];\n    results.push(ctx[k] = v);\n  }\n  return results;\n}"
-   },
-   "revision-date": "0..1"
-  },
-  "augment": {
-   "anyxml": "0..n",
-   "case": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "uses": "0..n",
-   "when": "0..1",
-   "argument": "target-node"
-  },
-  "belongs-to": {
-   "prefix": 1,
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return this.source[params.prefix] = this.source;\n}"
-   },
-   "argument": "module"
-  },
-  "bit": {
-   "description": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "position": "0..1",
-   "argument": "name"
-  },
-  "case": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "uses": "0..n",
-   "when": "0..1",
-   "argument": "name"
-  },
-  "choice": {
-   "anyxml": "0..n",
-   "case": "0..n",
-   "config": "0..1",
-   "container": "0..n",
-   "default": "0..1",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "mandatory": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "when": "0..1",
-   "argument": "condition"
-  },
-  "config": {
-   "preprocess": {
-    "!js/function": "function (arg, p, ctx) {\n  return ctx.config = arg === true || arg === 'true';\n}"
-   },
-   "argument": "value"
-  },
-  "container": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "config": "0..1",
-   "container": "0..n",
-   "description": "0..1",
-   "grouping": "0..n",
-   "if-feature": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "must": "0..n",
-   "presence": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "when": "0..1",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var synth;\n  synth = this.require('data-synth');\n  return (synth.Object(params)).bind(children);\n}"
-   },
-   "argument": "name"
-  },
-  "deviate": {
-   "config": "0..1",
-   "default": "0..1",
-   "mandatory": "0..1",
-   "max-elements": "0..1",
-   "min-elements": "0..1",
-   "must": "0..n",
-   "type": "0..1",
-   "unique": "0..1",
-   "units": "0..1",
-   "argument": "value"
-  },
-  "deviation": {
-   "description": "0..1",
-   "deviate": "1..n",
-   "reference": "0..1",
-   "argument": "target-node"
-  },
-  "enum": {
-   "description": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "value": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  if (params.value == null) {\n    if (this.enumValue == null) {\n      this.enumValue = 0;\n    }\n    params.value = this.enumValue++;\n  } else {\n    params.value = Number(params.value);\n    this.enumValue = params.value + 1;\n  }\n  return ctx[\"enum\"][arg] = params;\n}"
-   },
-   "argument": "name"
-  },
-  "feature": {
-   "description": "0..1",
-   "if-feature": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  if (params.status === 'unavailable') {\n    console.warn(\"feature \" + arg + \" is unavailable\");\n    if (typeof ctx.feature === 'object') {\n      return delete ctx.feature[arg];\n    } else {\n      return delete ctx.feature;\n    }\n  }\n}"
-   },
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var feature;\n  feature = this.resolve('feature', arg);\n  return null;\n}"
-   },
-   "argument": "name"
-  },
-  "grouping": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "description": "0..1",
-   "grouping": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "preprocess": {
-    "!js/function": "function (arg, params) {\n  return this.define('grouping', arg, params);\n}"
-   },
-   "argument": "name"
-  },
-  "identity": {
-   "base": "0..1",
-   "description": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params) {\n  return this.define('identity', arg, params);\n}"
-   },
-   "argument": "name"
-  },
-  "if-feature": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  if ((this.resolve('feature', arg)) == null) {\n    return ctx.status = 'unavailable';\n  }\n}"
-   },
-   "argument": "name"
-  },
-  "import": {
-   "prefix": 1,
-   "revision-date": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  var copy, k, m, original, ref, ref1, rev, schema, source, synth, v;\n  synth = this.require('data-synth');\n  schema = this.resolve('dependencies', arg, false);\n  if (schema == null) {\n    console.warn(\"no explicit dependency for \" + arg + \" defined, searching local filesystem\");\n    schema = this.parse(\"!yang \" + arg + \".yang\", this.source);\n    if (schema != null) {\n      this.define('dependencies', arg, schema);\n      source = this.source.parent;\n      while ((source.parent != null) && source.parent.name !== 'yangforge') {\n        source = source.parent;\n      }\n      if (source.dependencies == null) {\n        source.dependencies = {};\n      }\n      source.dependencies[arg] = schema;\n    }\n  }\n  m = this.preprocess(schema);\n  if (m == null) {\n    throw this.error(\"unable to resolve '\" + arg + \"' in dependencies\", 'import');\n  }\n  rev = params['revision-date'];\n  if ((rev != null) && !(rev in m.revision)) {\n    throw this.error(\"requested \" + rev + \" not available in \" + arg, 'import');\n  }\n  ref = m.extension;\n  for (k in ref) {\n    v = ref[k];\n    if (!(v.override === true)) {\n      continue;\n    }\n    original = this.resolve('extension', k);\n    copy = synth.copy({}, v);\n    copy.origin = synth.copy({}, (ref1 = original.origin) != null ? ref1 : original);\n    delete copy.override;\n    this.define('extension', k, copy);\n  }\n  return this.source[params.prefix] = m;\n}"
-   },
-   "construct": {
-    "!js/function": "function (arg, params, children, ctx) {\n  return this.compile(this.source[params.prefix], this.source);\n}"
-   },
-   "argument": "module"
-  },
-  "input": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "grouping": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var synth;\n  synth = this.require('data-synth');\n  return (synth.Object(params)).bind(children);\n}"
-   }
-  },
-  "leaf": {
-   "config": "0..1",
-   "default": "0..1",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "mandatory": "0..1",
-   "must": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "type": "0..1",
-   "units": "0..1",
-   "when": "0..1",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var synth;\n  synth = this.require('data-synth');\n  return synth.Property(params, function() {\n    if (children.type != null) {\n      return this.set({\n        type: children.type\n      });\n    }\n  });\n}"
-   },
-   "argument": "name"
-  },
-  "leaf-list": {
-   "config": "0..1",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "max-elements": "0..1",
-   "min-elements": "0..1",
-   "must": "0..n",
-   "ordered-by": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "type": "0..1",
-   "units": "0..1",
-   "when": "0..1",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var synth;\n  synth = this.require('data-synth');\n  return synth.List(params, function() {\n    if (children.type != null) {\n      return this.set({\n        type: children.type\n      });\n    }\n  });\n}"
-   },
-   "argument": "name"
-  },
-  "list": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "config": "0..1",
-   "container": "0..n",
-   "description": "0..1",
-   "grouping": "0..n",
-   "if-feature": "0..n",
-   "key": "0..1",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "max-elements": "0..1",
-   "min-elements": "0..1",
-   "must": "0..n",
-   "ordered-by": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "typedef": "0..n",
-   "unique": "0..1",
-   "uses": "0..n",
-   "when": "0..1",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var item, synth;\n  synth = this.require('data-synth');\n  item = (synth.Object(null)).bind(children);\n  return (synth.List(params)).set({\n    type: item\n  });\n}"
-   },
-   "argument": "name"
-  },
-  "mandatory": {
-   "preprocess": {
-    "!js/function": "function (arg, p, ctx) {\n  return ctx.mandatory = arg === true || arg === 'true';\n}"
-   },
-   "argument": "value"
-  },
-  "max-elements": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  if (arg !== 'unbounded') {\n    return ctx['max-elements'] = Number(arg);\n  }\n}"
-   },
-   "argument": "value"
-  },
-  "min-elements": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return ctx['min-elements'] = Number(arg);\n}"
-   },
-   "argument": "value"
-  },
-  "must": {
-   "description": "0..1",
-   "error-app-tag": "0..1",
-   "error-message": "0..1",
-   "reference": "0..1",
-   "argument": "condition"
-  },
-  "notification": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "description": "0..1",
-   "grouping": "0..n",
-   "if-feature": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "preprocess": {
-    "!js/function": "function (arg, params) {\n  return this.define('notification', arg, params);\n}"
-   },
-   "argument": "event"
-  },
-  "output": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "grouping": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var synth;\n  synth = this.require('data-synth');\n  return (synth.Object(params)).bind(children);\n}"
-   }
-  },
-  "path": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return ctx.path = arg.replace(/[_]/g, '.');\n}"
-   },
-   "argument": "value"
-  },
-  "pattern": {
-   "construct": {
-    "!js/function": "function (arg, params, children, ctx) {\n  if (ctx.patterns == null) {\n    ctx.patterns = [];\n  }\n  return ctx.patterns.push(new RegExp(arg));\n}"
-   },
-   "argument": "value"
-  },
-  "refine": {
-   "default": "0..1",
-   "description": "0..1",
-   "reference": "0..1",
-   "config": "0..1",
-   "mandatory": "0..1",
-   "presence": "0..1",
-   "must": "0..n",
-   "min-elements": "0..1",
-   "max-elements": "0..1",
-   "units": "0..1",
-   "argument": "target-node"
-  },
-  "require-instance": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return ctx['require-instance'] = arg === true || arg === 'true';\n}"
-   },
-   "argument": "value"
-  },
-  "revision": {
-   "description": "0..1",
-   "reference": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return this.define('revision', arg, params);\n}"
-   },
-   "argument": "date"
-  },
-  "rpc": {
-   "description": "0..1",
-   "grouping": "0..n",
-   "if-feature": "0..n",
-   "input": "0..1",
-   "output": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "typedef": "0..n",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var func, method, ref, ref1, request, response, synth;\n  synth = this.require('data-synth');\n  func = this.resolve('rpc', arg, false);\n  if (func == null) {\n    func = function(input, output, done) {\n      return done(\"No control logic found for '\" + arg + \"' rpc operation\");\n    };\n  }\n  request = (ref = children.input) != null ? ref : synth.Meta;\n  response = (ref1 = children.output) != null ? ref1 : synth.Meta;\n  method = function(data, resolve, reject) {\n    var e, error, input, output;\n    if (typeof console.debug === \"function\") {\n      console.debug(\"executing rpc \" + arg + \"...\");\n    }\n    try {\n      input = new request(data, this);\n      output = new response(null, this);\n    } catch (error) {\n      e = error;\n      return reject(e);\n    }\n    return func.call(this, input, output, function(e) {\n      if (e == null) {\n        return resolve(output);\n      } else {\n        return reject(e);\n      }\n    });\n  };\n  method.params = params;\n  method.input = request;\n  method.output = response;\n  return method;\n}"
-   },
-   "argument": "name"
-  },
-  "submodule": {
-   "argument": "name",
-   "anyxml": "0..n",
-   "augment": "0..n",
-   "belongs-to": "0..1",
-   "choice": "0..n",
-   "contact": "0..1",
-   "container": "0..n",
-   "description": "0..1",
-   "deviation": "0..n",
-   "extension": "0..n",
-   "feature": "0..n",
-   "grouping": "0..n",
-   "identity": "0..n",
-   "import": "0..n",
-   "include": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "notification": "0..n",
-   "organization": "0..1",
-   "reference": "0..1",
-   "revision": "0..n",
-   "rpc": "0..n",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "yang-version": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  var k, v;\n  for (k in params) {\n    v = params[k];\n    ctx[k] = v;\n  }\n  return delete ctx.submodule;\n}"
-   }
-  },
-  "status": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return ctx.status != null ? ctx.status : ctx.status = arg;\n}"
-   },
-   "argument": "value"
-  },
-  "type": {
-   "base": "0..1",
-   "bit": "0..n",
-   "enum": "0..n",
-   "fraction-digits": "0..1",
-   "length": "0..1",
-   "path": "0..1",
-   "pattern": "0..n",
-   "range": "0..1",
-   "require-instance": "0..1",
-   "type": "0..n",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return delete this.enumValue;\n}"
-   },
-   "construct": {
-    "!js/function": "function (arg, params, children, ctx) {\n  var key, mparams, ref, ref1, synth, typedef, value;\n  synth = this.require('data-synth');\n  typedef = this.resolve('typedef', arg);\n  if (typedef == null) {\n    throw this.error(\"unable to resolve typedef for \" + arg);\n  }\n  switch (false) {\n    case typedef.construct == null:\n      ctx.type = typedef.construct(params, this, arguments.callee);\n      break;\n    case typeof typedef.type !== 'object':\n      ref = typedef.type;\n      for (key in ref) {\n        value = ref[key];\n        mparams = synth.copy({}, value);\n        synth.copy(mparams, params);\n        arguments.callee.call(this, key, mparams, children, ctx);\n      }\n      break;\n    case typeof typedef.type !== 'string':\n      arguments.callee.call(this, typedef.type, params, children, ctx);\n  }\n  if ((ref1 = ctx.type) != null) {\n    ref1.toString = function() {\n      return arg;\n    };\n  }\n  return null;\n}"
-   },
-   "argument": "name"
-  },
-  "typedef": {
-   "default": "0..1",
-   "description": "0..1",
-   "units": "0..1",
-   "type": "0..1",
-   "reference": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params) {\n  return this.define('typedef', arg, params);\n}"
-   },
-   "argument": "name"
-  },
-  "uses": {
-   "augment": "0..n",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "refine": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "when": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  var changes, grouping, k, match, ref, ref1, synth, target, v;\n  synth = this.require('data-synth');\n  grouping = synth.copy({}, this.resolve('grouping', arg));\n  delete grouping.description;\n  delete grouping.reference;\n  synth.copy(ctx, grouping);\n  ref = params.refine;\n  for (target in ref) {\n    changes = ref[target];\n    match = this.locate(ctx, target);\n    if (match == null) {\n      continue;\n    }\n    for (k in changes) {\n      v = changes[k];\n      match[k] = v;\n    }\n  }\n  ref1 = params.augment;\n  for (target in ref1) {\n    changes = ref1[target];\n    match = this.locate(ctx, target);\n    if (match == null) {\n      continue;\n    }\n    synth.copy(match, changes);\n  }\n  if (typeof ctx.uses === 'object') {\n    return delete ctx.uses[arg];\n  } else {\n    return delete ctx.uses;\n  }\n}"
-   },
-   "argument": "name"
-  },
-  "when": {
-   "description": "0..1",
-   "reference": "0..1",
-   "argument": "condition"
-  },
-  "anyxml": {},
-  "base": {
-   "argument": "name"
-  },
-  "contact": {
-   "argument": {
-    "text": {
-     "yin-element": "true"
-    }
-   }
-  },
-  "default": {
-   "argument": "value"
-  },
-  "description": {
-   "argument": {
-    "text": {
-     "yin-element": "true"
-    }
-   }
-  },
-  "error-app-tag": {
-   "argument": "value"
-  },
-  "error-message": {
-   "argument": {
-    "value": {
-     "yin-element": "true"
-    }
-   }
-  },
-  "fraction-digits": {
-   "argument": "value"
-  },
-  "key": {
-   "argument": "value"
-  },
-  "length": {
-   "argument": "value"
-  },
-  "namespace": {
-   "argument": "uri"
-  },
-  "ordered-by": {
-   "argument": "value"
-  },
-  "organization": {
-   "argument": {
-    "text": {
-     "yin-element": "true"
-    }
-   }
-  },
-  "position": {
-   "argument": "value"
-  },
-  "presence": {
-   "argument": "value"
-  },
-  "range": {
-   "argument": "value"
-  },
-  "reference": {
-   "argument": {
-    "text": {
-     "yin-element": "true"
-    }
-   }
-  },
-  "revision-date": {
-   "argument": "date"
-  },
-  "unique": {
-   "argument": "tag"
-  },
-  "units": {
-   "argument": "value"
-  },
-  "value": {
-   "argument": "value"
-  },
-  "yang-version": {
-   "argument": "value"
-  },
-  "yin-element": {
-   "argument": "value"
-  }
- },
- "pkgdir": "/Users/kkashalk/dev/rift/modules/ui/composer/webapp/schemas/yang",
- "module": {}
-}
\ No newline at end of file
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw.vnffgd-yang.json b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rw.vnffgd-yang.json
deleted file mode 100644 (file)
index 42da1a0..0000000
+++ /dev/null
@@ -1,1719 +0,0 @@
-{
- "synth": "source",
- "name": "vnffgd",
- "schema": {
-  "module": {
-   "vnffgd": {
-    "namespace": "urn:ietf:params:xml:ns:yang:nfvo:vnffgd",
-    "prefix": "vnffgd",
-    "import": {
-     "rw-pb-ext": {
-      "prefix": "rwpb"
-     },
-     "ietf-inet-types": {
-      "prefix": "inet"
-     },
-     "ietf-yang-types": {
-      "prefix": "yang"
-     },
-     "mano-types": {
-      "prefix": "manotypes"
-     }
-    },
-    "revision": {
-     "2014-10-27": {
-      "description": "Initial revision. This YANG file defines\nthe VNF Forwarding Graph Descriptor (VNFFGD)",
-      "reference": "Derived from earlier versions of base YANG files"
-     }
-    },
-    "container": {
-     "vnffgd-catalog": {
-      "list": {
-       "vnffgd": {
-        "key": "id",
-        "leaf": {
-         "name": {
-          "description": "VNF Forwarding Graph Descriptor name.",
-          "type": "string"
-         },
-         "id": {
-          "description": "Identifier for the VNFFGD.",
-          "type": "yang:uuid"
-         },
-         "provider": {
-          "description": "Provider of the VNFFGD.",
-          "type": "string"
-         },
-         "description": {
-          "description": "Description of the VNFFGD.",
-          "type": "string"
-         },
-         "version": {
-          "description": "Version of the VNFFGD",
-          "type": "string"
-         }
-        }
-       }
-      }
-     }
-    }
-   }
-  }
- },
- "dependencies": {
-  "rw-pb-ext": {
-   "module": {
-    "rw-pb-ext": {
-     "namespace": "http://riftio.com/ns/riftware-1.0/rw-pb-ext",
-     "prefix": "rwpb",
-     "revision": {
-      "2014-03-28": {
-       "description": "Initial revision.",
-       "reference": "RIFT yang extensions for converting yang files to Google\nProtocol Buffers (protobuf) using rift protoc-c extensions."
-      }
-     },
-     "extension": {
-      "msg-new": {
-       "argument": "typename",
-       "description": "Generate an equivalent, top-level, protobuf message for this\ncontainer, list, rpc input, rpc output, or notification.  The\nargument is the name of the protobuf message type.  Allowed\nvalues are valid C identifiers.\n\nThe protobuf definition will only be generated when processing\nthe same module that defines the yang object - a duplicate will\nnot be generated when importing reusing a yang object via uses,\nor when importing the module."
-      },
-      "msg-name": {
-       "argument": "typename",
-       "description": "Change the name of an embedded protobuf message type for this\ncontainer or list.  Allowed values are valid C identifiers.\n\nIn lieu of this extension, embedded protobuf message typenames\nare based on the fieldname, and further mangled by removing\nunderscores and CamelCased at underscore boundaries.  This\nextension allows the automatic mangling procedure to be\noverridden.\n\nThis extension is incompatible with msg-new, which already\ndefines the typename for top-level messages.  Use this extension\nsolely for embedded messages."
-      },
-      "msg-flat": {
-       "argument": "selection",
-       "description": "Set the protobuf message rw_msgopts flat option on a container\nor list statement.  Allowed values are 'true', 'false', and\n'auto'.  The default is 'false' for top-level messages, and\n'auto' for embedded messages.  If 'auto' is specified, the\nbehavior is the same as the enclosing container or list.\n\nUnless overridden, this extension effectively applies to all\nenclosed descendent container and list statements.  Flatness will\nbe required by the protobuf compilation step."
-      },
-      "msg-tag-base": {
-       "argument": "value",
-       "description": "Specify a base tag value for a container, list, grouping, or\nuses statement.  Field tags may be specified relative to this\nbase.  Allowed values are positive\ndecimal integers."
-      },
-      "msg-proto-max-size": {
-       "argument": "value",
-       "description": "Specify the maximum size of this message in the C structure or\nso in bytes.  Allowed values are positive decimal integers."
-      },
-      "msg-typedef": {
-       "argument": "typename",
-       "description": "Create a prototbuf-c message typedef for the original, base\ndefinition of the container, list, grouping, rpc input, rpc\noutput, or notification.  Allowed values are valid C identifiers.\n\ntypename will be appended to the mangeled protobuf package name\nand an underscore, to ensure name uniqueness across the global\nschema.\n\nThe typedef will only be generated when processing\nthe same module that defines the yang object - a duplicate will\nnot be generated when importing reusing a yang object via uses,\nor when importing the module."
-      },
-      "field-name": {
-       "argument": "fieldname",
-       "description": "Change the name of the element to fieldname, when converting the\nobject to protobuf.  Allowed values are valid C identifiers.\n\nIn lieu of this extension, element names will be used as-is, if\npossible, or mangled to fit in the C identifier character space\n(invalid C identifier characters will be replaced with\nunderscore).  This extension allows the automatic mangling\nprocedure to be overridden."
-      },
-      "field-inline": {
-       "argument": "selection",
-       "description": "Set the protobuf field 'inline' option on a container, list,\nleaf-list, or leaf statement.  Allowed values are 'true',\n'false', and 'auto'.  If 'auto' is specified, the behavior is\ncontrolled by the enclosing container or list's protobuf-msg-flat\nsetting.\n\nWhen applied to a container or list statement, this extension is\ninherited by all enclosed objects, unless overridden."
-      },
-      "field-inline-max": {
-       "argument": "limit",
-       "description": "Set the protobuf field 'inline_max' option for list and\nleaf-list statements.  Allowed values are a positive decimal\ninteger, 'yang', or 'none'.  Example limits:\n\n '64'\n 'yang'\n 'none'\n\nIf 'none' is specified, then the inline_max protobuf extension\nwill not be used.\n\nIf 'yang' is specified, then the number of elements specified in\nthe yang 'max-elements' statement is used.  If there is no\n'max-elements' statement, the behavior defaults to 'none'.\n\nIf a decimal integer is specified, that number is used as the\nmaximum length.\n\nIf this extension is not specified, the behavior defaults to\n'yang'.  Descendant list and leaf-list objects do not inherit\nthis extension."
-      },
-      "field-string-max": {
-       "argument": "limit",
-       "description": "Set the protobuf field 'string_max' option for a leaf or\nleaf-list of type string, binary, leafref, identityref, or\ninstance-identifier.  Allowed values are a positive decimal\ninteger, 'yang', or 'none'.  An optional encoding specifier may\nalso be specified, as octet or utf8, which specifies how\ncharacters are counted.  If specified, the encoding must come\nfirst.  Example limits:\n\n 'octet 64'\n 'utf8 20'\n 'utf8 yang'\n 'utf8'\n '128'\n 'none'\n\nIf 'none' is specified, then the string_max protobuf extension\nwill not be used.  'none' cannot be combined with 'octet' or\n'utf8'.\n\nIf 'yang' is specified, the yang type must be string or binary.\nIf the yang type includes the length statement, then the\nstatements maximum length is used as the length.  Otherwise,\nbehavior defaults to 'none'.\n\nIf a decimal integer is specified, that number is used as the\nlength.\n\nThe encoding specifiers are used to determine the actual number\nof bytes used in the protobuf extension.  If the 'octet'\nspecifier is used, then the maximum length is used literally as\nthe byte length.  If the 'utf8' specified is used, then the\nmaximum length is considered to be in terms of worst-case UTF-8\ncharacters, in which case the protobuf byte length will actually\nbe 4 times the specified length.\n\nFor string and binary types, the default encoding is 'octet'.\nFor the remaining types, the default encoding is 'utf8',\nreflecting those types fundemental description as XML entities\nassumed to be encoded in UTF-8.\n\nIf this extension is not specified, then the default is 'yang'\nfor string and binary, and 'none' for the other types.  This\nextension cannot be specified on aggregate objects, and so it\ncannot be inherited."
-      },
-      "field-tag": {
-       "argument": "value",
-       "description": "Set the protobuf field tag.  Allowed values are a positive\ndecimal integer, 'auto', a base-relative addition expression, or\na field-relative addition expression.\n\nIf a decimal integer is specified, then the tag is set to the\nspecified number.  You should avoid using this form in a\ngrouping, because you may not be able to guarantee uniqueness\nacross all the uses of the group.  However, the syntax will be\nallowed.\n\nA base-relative addition expression allows the tag of a field to\nbe defined in terms of the base tag of an enclosing grouping,\ncontainer, list, or uses statement.  The expression has the form\n'+NUMBER', where NUMBER is the value to add to the base to derive\nthe current field's tag.\n\nA field-relative addition expression allows the tag of one field\nto be defined in terms of another field.  The expression has the\nform 'NAME+NUMBER', where NAME is the name of the other field,\nand NUMBER is the value to add to the other fields tag to derive\nthe current field's tag.\n\nIf this extension is not specified, the default behavior is\n'auto'."
-      },
-      "field-type": {
-       "argument": "type",
-       "description": "Override the default protobuf field type mapping for a leaf or\nleaf-list type, and use the specified protobuf type instead.\n\nAllowed values are any of the Protobuf scalar types, as\nrestricted by the yang leaf type:\n\n+---------------------------+-------------------------------+\n| (pseudo) yang leaf type   | (pseudo) protobuf scalar type |\n|---------------------------+-------------------------------+\n| int8, int16, int32        | int32, sint32, sfixed32, auto |\n+---------------------------+-------------------------------+\n| int64                     | int64, sint64, sfixed64, auto |\n+---------------------------+-------------------------------+\n| uint8, uint16, uint32     | uint32, fixed32, auto         |\n+---------------------------+-------------------------------+\n| uint64                    | uint64, fixed64, auto         |\n+---------------------------+-------------------------------+\n| decimal                   | uint64, sint64, int64,        |\n|                           | fixed64, sfixed64,            |\n|                           | float, double, auto           |\n+---------------------------+-------------------------------+\n| empty, boolean            | bool, auto                    |\n+---------------------------+-------------------------------+\n| string, leafref,          | string, auto                  |\n| identityref,              |                               |\n| instance-identifier,      |                               |\n| anyxml                    |                               |\n+---------------------------+-------------------------------+\n| bits, binary              | bytes, auto                   |\n+---------------------------+-------------------------------+\n\nIf 'auto' is specified, the default conversion will be used.  The\nprotobuf pseudo-type utf8 is equivalent to string, except that\nlength limits will be adjusted in protobuf extentions to allow\nthe string to be composed entirely of the maximum sized UTF-8\nmultibyte characters (byte length is 4 times larger than the\ncharacter length)."
-      },
-      "field-c-type": {
-       "argument": "type",
-       "description": "Override the default protoc-c C-language type mapping for a leaf\nor leaf-list type, and use the specified C type instead."
-      },
-      "package-name": {
-       "argument": "pkgname",
-       "description": "Specifies the name of the package name in the generated .proto\nfile on a module statement The argument is the name of the\npackage-name.  Allowed values are valid C identifiers When\npackage-name is not specified the generated package name defaults\nto the Yang module name"
-      },
-      "application-request-point": {
-       "description": "This extension is used temporarily until the config and data portions\nare split into different namespaces and keyspecs. This allows\napplications to provide data at a keyspec, and request config at a\ndifferent level"
-      },
-      "enum-name": {
-       "argument": "enumname",
-       "description": "Use the specified name for the enum enumerator in the .proto\ninstead of the default mangled name of the yang identifer.\nIf there is a name conflict with other enum name either specified\nexplicitly or generated one, the yangpbc conversion will fail.\nAllowed values are valid C identifiers."
-      },
-      "enum-type": {
-       "argument": "enumtypename",
-       "description": "Use the specified name for the enum type in the .proto instead\nof the default mangled name of the yang identifier.  If there is\na name conflict with another enum type, either auto-generated or\nexplicitly specified one, the yangpbc conversion will fail.\nAllowed values are valid C identifiers."
-      },
-      "file-pbc-include": {
-       "argument": "pathstring",
-       "description": "A module level extension to specify the include files for pb-c.h\nwhen any rift specific c-types are used.  This extension can\noccur multiple times as a child of module statement.  The value\nshould be a valid path string."
-      },
-      "field-merge-behavior": {
-       "argument": "value",
-       "description": "An extension for controlling the merge done for listy types\nduring upacking of protobuf. It can take 3 different value:\n\n1) default: The default is whatever protobuf-c does today\n   (for keyed lists, the default is equivalent to by-keys).\n\n2) by-keys: allowed on keyed lists (and leaf-lists): merge\n   elements with matching key.\n\n3) none: allowed on keyed lists (and leaf-lists): do not\n   attempt to merge elements. This must ONLY be used when it\n   is known or expected that the proto message would contain\n   large number of list items."
-      }
-     }
-    }
-   }
-  },
-  "mano-types": {
-   "module": {
-    "mano-types": {
-     "namespace": "urn:ietf:params:xml:ns:yang:nfvo:mano-types",
-     "prefix": "manotypes",
-     "import": {
-      "ietf-inet-types": {
-       "prefix": "inet"
-      }
-     },
-     "revision": {
-      "2015-04-23": {
-       "description": "Initial revision. This YANG file defines\nthe reusable base types for VNF Management\nand Orchestration (MANO).",
-       "reference": "Derived from earlier versions of base YANG files"
-      }
-     },
-     "typedef": {
-      "virtual-link-type": {
-       "description": "Type of virtual link\nELAN: A multipoint service connecting a set of VNFs\n// ELINE: For a simple point to point connection\n//        between a VNF and the existing network.\n// ETREE: A multipoint service connecting one or\n//        more roots and a set of leaves, but\n//        preventing inter-leaf communication.",
-       "type": {
-        "enumeration": {
-         "enum": "ELAN"
-        }
-       }
-      },
-      "http-method": {
-       "description": "Type of HTTP operation",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "POST": null,
-          "PUT": null,
-          "GET": null,
-          "DELETE": null,
-          "OPTIONS": null,
-          "PATCH": null
-         }
-        }
-       }
-      },
-      "api-type": {
-       "description": "Type of API to fetch monitoring params",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "HTTP": null,
-          "NETCONF": null,
-          "SOAP": null
-         }
-        }
-       }
-      },
-      "json-query-method": {
-       "description": "The method to extract a value from a JSON response\n\nNAMEKEY - Use the name as the key for a non-nested value.\nJSONPATH - Use jsonpath-rw implemenation to extract a value.\nOBJECTPATH - Use objectpath implemenation to extract a value.",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "NAMEKEY": null,
-          "JSONPATH": null,
-          "OBJECTPATH": null
-         }
-        }
-       }
-      },
-      "param-value-type": {
-       "description": "The type of the parameter value",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "INT": null,
-          "DECIMAL": null,
-          "STRING": null
-         }
-        }
-       }
-      },
-      "connection-point-type": {
-       "description": "Type of connection point\nVPORT: Virtual Port\n// VNIC_ADDR: Virtual NIC Address\n// PNIC_ADDR: Physical NIC Address\n// PPORT: Phsical Port.",
-       "type": {
-        "enumeration": {
-         "enum": "VPORT"
-        }
-       }
-      },
-      "widget-type": {
-       "description": "Type of the widget, typically used by the UI.",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "HISTOGRAM": null,
-          "BAR": null,
-          "GAUGE": null,
-          "SLIDER": null,
-          "COUNTER": null,
-          "TEXTBOX": null
-         }
-        }
-       }
-      },
-      "cpu-feature-type": {
-       "description": "Enumeration for CPU features.\n\nAES: CPU supports advanced instruction set for\nAES (Advanced Encryption Standard).\n\nCAT: Cache Allocation Technology (CAT) allows\nan Operating System, Hypervisor, or similar\nsystem management agent to specify the amount\nof L3 cache (currently the last-level cache\nin most server and client platforms) space an\napplication can fill (as a hint to hardware\nfunctionality, certain features such as power\nmanagement may override CAT settings).\n\nCMT: Cache Monitoring Technology (CMT) allows\nan Operating System, Hypervisor, or similar\nsystem management agent to determine the\nusage of cache based on applications running\non the platform. The implementation is\ndirected at L3 cache monitoring (currently\nthe last-level cache in most server and\nclient platforms).\n\nDDIO: Intel Data Direct I/O (DDIO) enables\nEthernet server NICs and controllers talk\ndirectly to the processor cache without a\ndetour via system memory. This enumeration\nspecifies if the VM requires a DDIO\ncapable host.",
-       "type": {
-        "enumeration": {
-         "enum": {
-          "PREFER_AES": null,
-          "REQUIRE_AES": null,
-          "PREFER_CAT": null,
-          "REQUIRE_CAT": null,
-          "PREFER_CMT": null,
-          "REQUIRE_CMT": null,
-          "PREFER_DDIO": null,
-          "REQUIRE_DDIO": null
-         }
-        }
-       }
-      }
-     },
-     "grouping": {
-      "named-value": {
-       "leaf": {
-        "name": {
-         "type": "string"
-        },
-        "value": {
-         "type": "string"
-        }
-       }
-      },
-      "vm-flavor": {
-       "container": {
-        "vm-flavor": {
-         "leaf": {
-          "vcpu-count": {
-           "description": "Number of vcpus for the VM.",
-           "type": "uint16"
-          },
-          "memory-mb": {
-           "description": "Amount of memory in MB.",
-           "type": "uint64"
-          },
-          "storage-gb": {
-           "description": "Amount of disk space in GB.",
-           "type": "uint64"
-          }
-         }
-        }
-       }
-      },
-      "vswitch-epa": {
-       "container": {
-        "vswitch-epa": {
-         "leaf": {
-          "ovs-acceleration": {
-           "description": "Specifies Open vSwitch acceleration mode.\nMANDATORY: OVS acceleration is required\nPREFERRED: OVS acceleration is preferred",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "MANDATORY": null,
-              "PREFERRED": null,
-              "DISABLED": null
-             }
-            }
-           }
-          },
-          "ovs-offload": {
-           "description": "Specifies Open vSwitch hardware offload mode.\nMANDATORY: OVS offload is required\nPREFERRED: OVS offload is preferred",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "MANDATORY": null,
-              "PREFERRED": null,
-              "DISABLED": null
-             }
-            }
-           }
-          }
-         }
-        }
-       }
-      },
-      "hypervisor-epa": {
-       "container": {
-        "hypervisor-epa": {
-         "leaf": {
-          "type": {
-           "description": "Specifies the type of hypervisor.\nKVM: KVM\nXEN: XEN",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "PREFER_KVM": null,
-              "REQUIRE_KVM": null
-             }
-            }
-           }
-          },
-          "version": {
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "host-epa": {
-       "container": {
-        "host-epa": {
-         "description": "Specifies the host level EPA attributes.",
-         "leaf": {
-          "cpu-model": {
-           "description": "Host CPU model. Examples include: SandyBridge,\nIvyBridge",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "PREFER_WESTMERE": null,
-              "REQUIRE_WESTMERE": null,
-              "PREFER_SANDYBRIDGE": null,
-              "REQUIRE_SANDYBRIDGE": null,
-              "PREFER_IVYBRIDGE": null,
-              "REQUIRE_IVYBRIDGE": null,
-              "PREFER_HASWELL": null,
-              "REQUIRE_HASWELL": null,
-              "PREFER_BROADWELL": null,
-              "REQUIRE_BROADWELL": null,
-              "PREFER_NEHALEM": null,
-              "REQUIRE_NEHALEM": null,
-              "PREFER_PENRYN": null,
-              "REQUIRE_PENRYN": null,
-              "PREFER_CONROE": null,
-              "REQUIRE_CONROE": null,
-              "PREFER_CORE2DUO": null,
-              "REQUIRE_CORE2DUO": null
-             }
-            }
-           }
-          },
-          "cpu-arch": {
-           "description": "Host CPU architecture.",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "PREFER_X86": null,
-              "REQUIRE_X86": null,
-              "PREFER_X86_64": null,
-              "REQUIRE_X86_64": null,
-              "PREFER_I686": null,
-              "REQUIRE_I686": null,
-              "PREFER_IA64": null,
-              "REQUIRE_IA64": null,
-              "PREFER_ARMV7": null,
-              "REQUIRE_ARMV7": null,
-              "PREFER_ARMV8": null,
-              "REQUIRE_ARMV8": null
-             }
-            }
-           }
-          },
-          "cpu-vendor": {
-           "description": "Host CPU Vendor.",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "PREFER_INTEL": null,
-              "REQUIRE_INTEL": null,
-              "PREFER_AMD": null,
-              "REQUIRE_AMD": null
-             }
-            }
-           }
-          },
-          "cpu-socket-count": {
-           "description": "Number of sockets on the host.",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "PREFER_ONE": null,
-              "PREFER_TWO": null,
-              "REQUIRE_ONE": null,
-              "REQUIRE_TWO": null
-             }
-            }
-           }
-          },
-          "cpu-core-count": {
-           "description": "Number of cores on the host.",
-           "type": "uint64"
-          },
-          "om-cpu-model-string": {
-           "description": "Openmano CPU model string",
-           "type": "string"
-          }
-         },
-         "leaf-list": {
-          "cpu-feature": {
-           "description": "List of CPU features.",
-           "type": "manotypes:cpu-feature-type"
-          },
-          "om-cpu-feature": {
-           "description": "Openmano CPU features",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "guest-epa": {
-       "description": "EPA attributes for the guest",
-       "container": {
-        "guest-epa": {
-         "leaf": {
-          "trusted-execution": {
-           "description": "This VM should be allocated from trusted pool",
-           "type": "boolean"
-          },
-          "mempage-size": {
-           "description": "Memory page allocation size. If a VM requires\nhugepages, it should choose LARGE or SIZE_2MB\nor SIZE_1GB. If the VM prefers hugepages it\nshould chose PREFER_LARGE.\nLARGE        : Require hugepages (either 2MB or 1GB)\nSMALL        : Doesn't require hugepages\nSIZE_2MB     : Requires 2MB hugepages\nSIZE_1GB     : Requires 1GB hugepages\nPREFER_LARGE : Application perfers hugepages",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "LARGE": null,
-              "SMALL": null,
-              "SIZE_2MB": null,
-              "SIZE_1GB": null,
-              "PREFER_LARGE": null
-             }
-            }
-           }
-          },
-          "cpu-pinning-policy": {
-           "description": "CPU pinning policy describes association\nbetween virtual CPUs in guest and the\nphysical CPUs in the host.\nDEDICATED : Virtual CPUs are pinned to\n            physical CPUs\nSHARED    : Multiple VMs may share the\n            same physical CPUs.\nANY       : Any policy is acceptable for the VM",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "DEDICATED": null,
-              "SHARED": null,
-              "ANY": null
-             }
-            }
-           },
-           "default": "ANY"
-          },
-          "cpu-thread-pinning-policy": {
-           "description": "CPU thread pinning policy describes how to\nplace the guest CPUs when the host supports\nhyper threads:\nAVOID   : Avoids placing a guest on a host\n          with threads.\nSEPARATE: Places vCPUs on separate cores,\n          and avoids placing two vCPUs on\n          two threads of same core.\nISOLATE : Places each vCPU on a different core,\n          and places no vCPUs from a different\n          guest on the same core.\nPREFER  : Attempts to place vCPUs on threads\n          of the same core.",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "AVOID": null,
-              "SEPARATE": null,
-              "ISOLATE": null,
-              "PREFER": null
-             }
-            }
-           }
-          }
-         },
-         "list": {
-          "pcie-device": {
-           "description": "List of pcie passthrough devices.",
-           "key": "device-id",
-           "leaf": {
-            "device-id": {
-             "description": "Device identifier.",
-             "type": "string"
-            },
-            "count": {
-             "description": "Number of devices to attach to the VM.",
-             "type": "uint64"
-            }
-           }
-          }
-         },
-         "choice": {
-          "numa-policy": {
-           "case": {
-            "numa-unware": {
-             "leaf": {
-              "numa-unware": {
-               "type": "empty"
-              }
-             }
-            },
-            "numa-aware": {
-             "container": {
-              "numa-node-policy": {
-               "description": "This policy defines numa topology of the\nguest. Specifically identifies if the guest\nshould be run on a host with one numa\nnode or multiple numa nodes. As an example\na guest may want 8 vcpus and 4 GB of\nmemory. But may want the vcpus and memory\ndistributed across multiple numa nodes.\nThe NUMA node 1 may run with 6 vcpus and\n3GB, and NUMA node 2 may run with 2 vcpus\nand 1GB.",
-               "leaf": {
-                "node-cnt": {
-                 "description": "The number of numa nodes to expose to the VM.",
-                 "type": "uint16"
-                },
-                "mem-policy": {
-                 "description": "This policy specifies how the memory should\nbe allocated in a multi-node scenario.\nSTRICT    : The memory must be allocated\n            strictly from the memory attached\n            to the NUMA node.\nPREFERRED : The memory should be allocated\n            perferentially from the memory\n            attached to the NUMA node",
-                 "type": {
-                  "enumeration": {
-                   "enum": {
-                    "STRICT": null,
-                    "PREFERRED": null
-                   }
-                  }
-                 }
-                }
-               },
-               "list": {
-                "node": {
-                 "key": "id",
-                 "leaf": {
-                  "id": {
-                   "description": "NUMA node identification. Typically\nit's 0 or 1",
-                   "type": "uint64"
-                  },
-                  "memory-mb": {
-                   "description": "Memory size expressed in MB\nfor this NUMA node.",
-                   "type": "uint64"
-                  }
-                 },
-                 "leaf-list": {
-                  "vcpu": {
-                   "description": "List of vcpus to allocate on\nthis numa node.",
-                   "type": "uint64"
-                  }
-                 },
-                 "choice": {
-                  "om-numa-type": {
-                   "description": "Openmano Numa type selection",
-                   "case": {
-                    "cores": {
-                     "leaf": {
-                      "num-cores": {
-                       "type": "uint8"
-                      }
-                     }
-                    },
-                    "paired-threads": {
-                     "container": {
-                      "paired-threads": {
-                       "leaf": {
-                        "num-paired-threads": {
-                         "type": "uint8"
-                        }
-                       },
-                       "list": {
-                        "paired-thread-ids": {
-                         "description": "List of thread pairs to use in case of paired-thread numa",
-                         "max-elements": "16",
-                         "key": "thread-a",
-                         "leaf": {
-                          "thread-a": {
-                           "type": "uint8"
-                          },
-                          "thread-b": {
-                           "type": "uint8"
-                          }
-                         }
-                        }
-                       }
-                      }
-                     }
-                    },
-                    "threads": {
-                     "leaf": {
-                      "num-threads": {
-                       "type": "uint8"
-                      }
-                     }
-                    }
-                   }
-                  }
-                 }
-                }
-               }
-              }
-             }
-            }
-           }
-          }
-         }
-        }
-       }
-      },
-      "provider-network": {
-       "container": {
-        "provider-network": {
-         "description": "Container for the provider network.",
-         "leaf": {
-          "physical-network": {
-           "description": "Name of the phsyical network on which the provider\nnetwork is built.",
-           "type": "string"
-          },
-          "overlay-type": {
-           "description": "Type of the overlay network.",
-           "type": {
-            "enumeration": {
-             "enum": {
-              "LOCAL": null,
-              "FLAT": null,
-              "VLAN": null,
-              "VXLAN": null,
-              "GRE": null
-             }
-            }
-           }
-          },
-          "segmentation_id": {
-           "description": "Segmentation ID",
-           "type": "uint32"
-          }
-         }
-        }
-       }
-      },
-      "monitoring-param": {
-       "list": {
-        "http-endpoint": {
-         "description": "List of http endpoints to be used by monitoring params",
-         "key": "path",
-         "leaf": {
-          "path": {
-           "description": "The HTTP path on the management server",
-           "type": "string"
-          },
-          "https": {
-           "description": "Pick HTTPS instead of HTTP , Default is false",
-           "type": "boolean",
-           "default": "false"
-          },
-          "port": {
-           "description": "The HTTP port to connect to",
-           "type": "inet:port-number"
-          },
-          "username": {
-           "description": "The HTTP basic auth username",
-           "type": "string"
-          },
-          "password": {
-           "description": "The HTTP basic auth password",
-           "type": "string"
-          },
-          "polling_interval_secs": {
-           "description": "The HTTP polling interval in seconds",
-           "type": "uint8",
-           "default": "2"
-          },
-          "method": {
-           "description": "This is the method to be performed at the uri.\nGET by default for action",
-           "type": "manotypes:http-method",
-           "default": "GET"
-          }
-         },
-         "list": {
-          "headers": {
-           "description": "Custom HTTP headers to put on HTTP request",
-           "key": "key",
-           "leaf": {
-            "key": {
-             "description": "HTTP header key",
-             "type": "string"
-            },
-            "value": {
-             "description": "HTTP header value",
-             "type": "string"
-            }
-           }
-          }
-         }
-        },
-        "monitoring-param": {
-         "description": "List of monitoring parameters at the NS level",
-         "key": "id",
-         "leaf": {
-          "id": {
-           "type": "string"
-          },
-          "name": {
-           "type": "string"
-          },
-          "http-endpoint-ref": {
-           "type": {
-            "leafref": {
-             "path": "../../http-endpoint/path"
-            }
-           }
-          },
-          "json-query-method": {
-           "type": "manotypes:json-query-method",
-           "default": "NAMEKEY"
-          },
-          "description": {
-           "type": "string"
-          },
-          "group-tag": {
-           "description": "A simple tag to group monitoring parameters",
-           "type": "string"
-          },
-          "value-type": {
-           "type": "manotypes:param-value-type",
-           "default": "INT"
-          },
-          "value-integer": {
-           "description": "Current value for an integer parameter",
-           "type": "int64"
-          },
-          "value-decimal": {
-           "description": "Current value for a decimal parameter",
-           "type": {
-            "decimal64": {
-             "fraction-digits": "4"
-            }
-           }
-          },
-          "value-string": {
-           "description": "Current value for a string parameter",
-           "type": "string"
-          },
-          "widget-type": {
-           "type": "manotypes:widget-type"
-          },
-          "units": {
-           "type": "string"
-          }
-         },
-         "container": {
-          "json-query-params": {
-           "leaf": {
-            "json-path": {
-             "description": "The jsonpath to use to extract value from JSON structure",
-             "type": "string"
-            },
-            "object-path": {
-             "description": "The objectpath to use to extract value from JSON structure",
-             "type": "string"
-            }
-           }
-          },
-          "numeric-constraints": {
-           "leaf": {
-            "min-value": {
-             "description": "Minimum value for the parameter",
-             "type": "uint64"
-            },
-            "max-value": {
-             "description": "Maxium value for the parameter",
-             "type": "uint64"
-            }
-           }
-          },
-          "text-constraints": {
-           "leaf": {
-            "min-length": {
-             "description": "Minimum string length for the parameter",
-             "type": "uint8"
-            },
-            "max-length": {
-             "description": "Maximum string length for the parameter",
-             "type": "uint8"
-            }
-           }
-          }
-         }
-        }
-       }
-      },
-      "control-param": {
-       "list": {
-        "control-param": {
-         "description": "List of control parameters to manage and\nupdate the running configuration of the VNF",
-         "key": "id",
-         "leaf": {
-          "id": {
-           "type": "string"
-          },
-          "name": {
-           "type": "string"
-          },
-          "description": {
-           "type": "string"
-          },
-          "group-tag": {
-           "description": "A simple tag to group control parameters",
-           "type": "string"
-          },
-          "min-value": {
-           "description": "Minimum value for the parameter",
-           "type": "uint64"
-          },
-          "max-value": {
-           "description": "Maxium value for the parameter",
-           "type": "uint64"
-          },
-          "current-value": {
-           "description": "Current value for the parameter",
-           "type": "uint64"
-          },
-          "step-value": {
-           "description": "Step value for the parameter",
-           "type": "uint64"
-          },
-          "units": {
-           "type": "string"
-          },
-          "widget-type": {
-           "type": "manotypes:widget-type"
-          },
-          "url": {
-           "description": "This is the URL where to perform the operation",
-           "type": "inet:uri"
-          },
-          "method": {
-           "description": "This is the method to be performed at the uri.\nPOST by default for action",
-           "type": "manotypes:http-method",
-           "default": "POST"
-          },
-          "payload": {
-           "description": "This is the operation payload or payload template as stringified\nJSON. This field provides the data  to be sent for this operation\ncall",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "action-param": {
-       "list": {
-        "action-param": {
-         "description": "List of action parameters to\ncontrol VNF",
-         "key": "id",
-         "leaf": {
-          "id": {
-           "type": "string"
-          },
-          "name": {
-           "type": "string"
-          },
-          "description": {
-           "type": "string"
-          },
-          "group-tag": {
-           "description": "A simple tag to group monitoring parameter",
-           "type": "string"
-          },
-          "url": {
-           "description": "This is the URL where to perform the operation",
-           "type": "inet:uri"
-          },
-          "method": {
-           "description": "This is the method to be performed at the uri.\nPOST by default for action",
-           "type": "manotypes:http-method",
-           "default": "POST"
-          },
-          "payload": {
-           "description": "This is the operation payload or payload template to be sent in\nthe data for this operation call",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "input-parameter": {
-       "description": "",
-       "list": {
-        "input-parameter": {
-         "description": "List of input parameters",
-         "key": "xpath",
-         "leaf": {
-          "xpath": {
-           "description": "A an xpath that specfies which element in a descriptor is to be\nmodified.",
-           "type": "string"
-          },
-          "value": {
-           "description": "The value that the element specified by the xpath should take when a\nrecord is created.",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "input-parameter-xpath": {
-       "list": {
-        "input-parameter-xpath": {
-         "description": "List of xpaths to parameters inside the NSD\nthe can be customized during the instantiation.",
-         "key": "xpath",
-         "leaf": {
-          "xpath": {
-           "description": "An xpath that specifies the element in a descriptor.",
-           "type": "string"
-          },
-          "label": {
-           "description": "A descriptive string",
-           "type": "string"
-          }
-         }
-        }
-       }
-      },
-      "nfvi-metrics": {
-       "container": {
-        "vcpu": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "VCPU"
-          },
-          "total": {
-           "description": "The total number of VCPUs available.",
-           "type": "uint64"
-          },
-          "utilization": {
-           "description": "The VCPU utilization (percentage).",
-           "type": {
-            "decimal64": {
-             "fraction-digits": "2",
-             "range": "0 .. 100"
-            }
-           }
-          }
-         }
-        },
-        "memory": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "MEMORY"
-          },
-          "used": {
-           "description": "The amount of memory (bytes) currently in use.",
-           "type": "uint64"
-          },
-          "total": {
-           "description": "The amount of memory (bytes) available.",
-           "type": "uint64"
-          },
-          "utilization": {
-           "description": "The memory utilization (percentage).",
-           "type": {
-            "decimal64": {
-             "fraction-digits": "2",
-             "range": "0 .. 100"
-            }
-           }
-          }
-         }
-        },
-        "storage": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "STORAGE"
-          },
-          "used": {
-           "description": "The amount of storage (bytes) currently in use.",
-           "type": "uint64"
-          },
-          "total": {
-           "description": "The amount of storage (bytes) available.",
-           "type": "uint64"
-          },
-          "utilization": {
-           "description": "The storage utilization (percentage).",
-           "type": {
-            "decimal64": {
-             "fraction-digits": "2",
-             "range": "0 .. 100"
-            }
-           }
-          }
-         }
-        },
-        "external-ports": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "EXTERNAL PORTS"
-          },
-          "total": {
-           "description": "The total number of external ports.",
-           "type": "uint64"
-          }
-         }
-        },
-        "internal-ports": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "INTERNAL PORTS"
-          },
-          "total": {
-           "description": "The total number of internal ports.",
-           "type": "uint64"
-          }
-         }
-        },
-        "network": {
-         "leaf": {
-          "label": {
-           "description": "Label to show in UI",
-           "type": "string",
-           "default": "NETWORK TRAFFIC"
-          }
-         },
-         "container": {
-          "incoming": {
-           "leaf": {
-            "label": {
-             "description": "Label to show in UI",
-             "type": "string",
-             "default": "INCOMING NETWORK TRAFFIC"
-            },
-            "bytes": {
-             "description": "The cumulative number of incoming bytes.",
-             "type": "uint64"
-            },
-            "packets": {
-             "description": "The cumulative number of incoming packets.",
-             "type": "uint64"
-            },
-            "byte-rate": {
-             "description": "The current incoming byte-rate (bytes per second).",
-             "type": {
-              "decimal64": {
-               "fraction-digits": "2"
-              }
-             }
-            },
-            "packet-rate": {
-             "description": "The current incoming packet (packets per second).",
-             "type": {
-              "decimal64": {
-               "fraction-digits": "2"
-              }
-             }
-            }
-           }
-          },
-          "outgoing": {
-           "leaf": {
-            "label": {
-             "description": "Label to show in UI",
-             "type": "string",
-             "default": "OUTGOING NETWORK TRAFFIC"
-            },
-            "bytes": {
-             "description": "The cumulative number of outgoing bytes.",
-             "type": "uint64"
-            },
-            "packets": {
-             "description": "The cumulative number of outgoing packets.",
-             "type": "uint64"
-            },
-            "byte-rate": {
-             "description": "The current outgoing byte-rate (bytes per second).",
-             "type": {
-              "decimal64": {
-               "fraction-digits": "2"
-              }
-             }
-            },
-            "packet-rate": {
-             "description": "The current outgoing packet (packets per second).",
-             "type": {
-              "decimal64": {
-               "fraction-digits": "2"
-              }
-             }
-            }
-           }
-          }
-         }
-        }
-       }
-      }
-     }
-    }
-   }
-  }
- },
- "extension": {
-  "module": {
-   "argument": "name",
-   "include": "0..n",
-   "prefix": "0..1",
-   "anyxml": "0..n",
-   "augment": "0..n",
-   "choice": "0..n",
-   "contact": "0..1",
-   "container": "0..n",
-   "description": "0..1",
-   "deviation": "0..n",
-   "extension": "0..n",
-   "feature": "0..n",
-   "grouping": "0..n",
-   "identity": "0..n",
-   "import": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "namespace": "0..1",
-   "notification": "0..n",
-   "organization": "0..1",
-   "reference": "0..1",
-   "revision": "0..n",
-   "rpc": "0..n",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "yang-version": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  var changes, match, ref, synth, target;\n  synth = this.require('data-synth');\n  ref = params.augment;\n  for (target in ref) {\n    changes = ref[target];\n    match = this.locate(ctx, target);\n    if (match == null) {\n      continue;\n    }\n    synth.copy(match, changes);\n  }\n  return delete this.source[params.prefix];\n}"
-   },
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var k, m, modules, ref, synth, v;\n  synth = this.require('data-synth');\n  modules = {};\n  ref = params[\"import\"];\n  for (k in ref) {\n    v = ref[k];\n    modules[k] = children[k];\n    delete children[k];\n  }\n  m = (synth.Store(params, function() {\n    return this.set({\n      name: arg,\n      modules: modules\n    });\n  })).bind(children);\n  this.define('module', arg, m);\n  return m;\n}"
-   }
-  },
-  "prefix": {
-   "argument": "value",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return this.source[arg] = this.source;\n}"
-   }
-  },
-  "include": {
-   "argument": "module",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  var k, m, ref, ref1, ref2, results, v;\n  m = this.preprocess(this.resolve('dependencies', arg));\n  ref = m.extension;\n  for (k in ref) {\n    v = ref[k];\n    this.define('extension', k, v);\n  }\n  ref1 = m.typedef;\n  for (k in ref1) {\n    v = ref1[k];\n    this.define('typedef', k, v);\n  }\n  ref2 = m.schema;\n  results = [];\n  for (k in ref2) {\n    v = ref2[k];\n    results.push(ctx[k] = v);\n  }\n  return results;\n}"
-   },
-   "revision-date": "0..1"
-  },
-  "augment": {
-   "anyxml": "0..n",
-   "case": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "uses": "0..n",
-   "when": "0..1",
-   "argument": "target-node"
-  },
-  "belongs-to": {
-   "prefix": 1,
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return this.source[params.prefix] = this.source;\n}"
-   },
-   "argument": "module"
-  },
-  "bit": {
-   "description": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "position": "0..1",
-   "argument": "name"
-  },
-  "case": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "uses": "0..n",
-   "when": "0..1",
-   "argument": "name"
-  },
-  "choice": {
-   "anyxml": "0..n",
-   "case": "0..n",
-   "config": "0..1",
-   "container": "0..n",
-   "default": "0..1",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "mandatory": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "when": "0..1",
-   "argument": "condition"
-  },
-  "config": {
-   "preprocess": {
-    "!js/function": "function (arg, p, ctx) {\n  return ctx.config = arg === true || arg === 'true';\n}"
-   },
-   "argument": "value"
-  },
-  "container": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "config": "0..1",
-   "container": "0..n",
-   "description": "0..1",
-   "grouping": "0..n",
-   "if-feature": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "must": "0..n",
-   "presence": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "when": "0..1",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var synth;\n  synth = this.require('data-synth');\n  return (synth.Object(params)).bind(children);\n}"
-   },
-   "argument": "name"
-  },
-  "deviate": {
-   "config": "0..1",
-   "default": "0..1",
-   "mandatory": "0..1",
-   "max-elements": "0..1",
-   "min-elements": "0..1",
-   "must": "0..n",
-   "type": "0..1",
-   "unique": "0..1",
-   "units": "0..1",
-   "argument": "value"
-  },
-  "deviation": {
-   "description": "0..1",
-   "deviate": "1..n",
-   "reference": "0..1",
-   "argument": "target-node"
-  },
-  "enum": {
-   "description": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "value": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  if (params.value == null) {\n    if (this.enumValue == null) {\n      this.enumValue = 0;\n    }\n    params.value = this.enumValue++;\n  } else {\n    params.value = Number(params.value);\n    this.enumValue = params.value + 1;\n  }\n  return ctx[\"enum\"][arg] = params;\n}"
-   },
-   "argument": "name"
-  },
-  "feature": {
-   "description": "0..1",
-   "if-feature": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  if (params.status === 'unavailable') {\n    console.warn(\"feature \" + arg + \" is unavailable\");\n    if (typeof ctx.feature === 'object') {\n      return delete ctx.feature[arg];\n    } else {\n      return delete ctx.feature;\n    }\n  }\n}"
-   },
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var feature;\n  feature = this.resolve('feature', arg);\n  return null;\n}"
-   },
-   "argument": "name"
-  },
-  "grouping": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "description": "0..1",
-   "grouping": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "preprocess": {
-    "!js/function": "function (arg, params) {\n  return this.define('grouping', arg, params);\n}"
-   },
-   "argument": "name"
-  },
-  "identity": {
-   "base": "0..1",
-   "description": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params) {\n  return this.define('identity', arg, params);\n}"
-   },
-   "argument": "name"
-  },
-  "if-feature": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  if ((this.resolve('feature', arg)) == null) {\n    return ctx.status = 'unavailable';\n  }\n}"
-   },
-   "argument": "name"
-  },
-  "import": {
-   "prefix": 1,
-   "revision-date": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  var copy, k, m, original, ref, ref1, rev, schema, source, synth, v;\n  synth = this.require('data-synth');\n  schema = this.resolve('dependencies', arg, false);\n  if (schema == null) {\n    console.warn(\"no explicit dependency for \" + arg + \" defined, searching local filesystem\");\n    schema = this.parse(\"!yang \" + arg + \".yang\", this.source);\n    if (schema != null) {\n      this.define('dependencies', arg, schema);\n      source = this.source.parent;\n      while ((source.parent != null) && source.parent.name !== 'yangforge') {\n        source = source.parent;\n      }\n      if (source.dependencies == null) {\n        source.dependencies = {};\n      }\n      source.dependencies[arg] = schema;\n    }\n  }\n  m = this.preprocess(schema);\n  if (m == null) {\n    throw this.error(\"unable to resolve '\" + arg + \"' in dependencies\", 'import');\n  }\n  rev = params['revision-date'];\n  if ((rev != null) && !(rev in m.revision)) {\n    throw this.error(\"requested \" + rev + \" not available in \" + arg, 'import');\n  }\n  ref = m.extension;\n  for (k in ref) {\n    v = ref[k];\n    if (!(v.override === true)) {\n      continue;\n    }\n    original = this.resolve('extension', k);\n    copy = synth.copy({}, v);\n    copy.origin = synth.copy({}, (ref1 = original.origin) != null ? ref1 : original);\n    delete copy.override;\n    this.define('extension', k, copy);\n  }\n  return this.source[params.prefix] = m;\n}"
-   },
-   "construct": {
-    "!js/function": "function (arg, params, children, ctx) {\n  return this.compile(this.source[params.prefix], this.source);\n}"
-   },
-   "argument": "module"
-  },
-  "input": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "grouping": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var synth;\n  synth = this.require('data-synth');\n  return (synth.Object(params)).bind(children);\n}"
-   }
-  },
-  "leaf": {
-   "config": "0..1",
-   "default": "0..1",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "mandatory": "0..1",
-   "must": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "type": "0..1",
-   "units": "0..1",
-   "when": "0..1",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var synth;\n  synth = this.require('data-synth');\n  return synth.Property(params, function() {\n    if (children.type != null) {\n      return this.set({\n        type: children.type\n      });\n    }\n  });\n}"
-   },
-   "argument": "name"
-  },
-  "leaf-list": {
-   "config": "0..1",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "max-elements": "0..1",
-   "min-elements": "0..1",
-   "must": "0..n",
-   "ordered-by": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "type": "0..1",
-   "units": "0..1",
-   "when": "0..1",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var synth;\n  synth = this.require('data-synth');\n  return synth.List(params, function() {\n    if (children.type != null) {\n      return this.set({\n        type: children.type\n      });\n    }\n  });\n}"
-   },
-   "argument": "name"
-  },
-  "list": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "config": "0..1",
-   "container": "0..n",
-   "description": "0..1",
-   "grouping": "0..n",
-   "if-feature": "0..n",
-   "key": "0..1",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "max-elements": "0..1",
-   "min-elements": "0..1",
-   "must": "0..n",
-   "ordered-by": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "typedef": "0..n",
-   "unique": "0..1",
-   "uses": "0..n",
-   "when": "0..1",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var item, synth;\n  synth = this.require('data-synth');\n  item = (synth.Object(null)).bind(children);\n  return (synth.List(params)).set({\n    type: item\n  });\n}"
-   },
-   "argument": "name"
-  },
-  "mandatory": {
-   "preprocess": {
-    "!js/function": "function (arg, p, ctx) {\n  return ctx.mandatory = arg === true || arg === 'true';\n}"
-   },
-   "argument": "value"
-  },
-  "max-elements": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  if (arg !== 'unbounded') {\n    return ctx['max-elements'] = Number(arg);\n  }\n}"
-   },
-   "argument": "value"
-  },
-  "min-elements": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return ctx['min-elements'] = Number(arg);\n}"
-   },
-   "argument": "value"
-  },
-  "must": {
-   "description": "0..1",
-   "error-app-tag": "0..1",
-   "error-message": "0..1",
-   "reference": "0..1",
-   "argument": "condition"
-  },
-  "notification": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "description": "0..1",
-   "grouping": "0..n",
-   "if-feature": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "preprocess": {
-    "!js/function": "function (arg, params) {\n  return this.define('notification', arg, params);\n}"
-   },
-   "argument": "event"
-  },
-  "output": {
-   "anyxml": "0..n",
-   "choice": "0..n",
-   "container": "0..n",
-   "grouping": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var synth;\n  synth = this.require('data-synth');\n  return (synth.Object(params)).bind(children);\n}"
-   }
-  },
-  "path": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return ctx.path = arg.replace(/[_]/g, '.');\n}"
-   },
-   "argument": "value"
-  },
-  "pattern": {
-   "construct": {
-    "!js/function": "function (arg, params, children, ctx) {\n  if (ctx.patterns == null) {\n    ctx.patterns = [];\n  }\n  return ctx.patterns.push(new RegExp(arg));\n}"
-   },
-   "argument": "value"
-  },
-  "refine": {
-   "default": "0..1",
-   "description": "0..1",
-   "reference": "0..1",
-   "config": "0..1",
-   "mandatory": "0..1",
-   "presence": "0..1",
-   "must": "0..n",
-   "min-elements": "0..1",
-   "max-elements": "0..1",
-   "units": "0..1",
-   "argument": "target-node"
-  },
-  "require-instance": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return ctx['require-instance'] = arg === true || arg === 'true';\n}"
-   },
-   "argument": "value"
-  },
-  "revision": {
-   "description": "0..1",
-   "reference": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return this.define('revision', arg, params);\n}"
-   },
-   "argument": "date"
-  },
-  "rpc": {
-   "description": "0..1",
-   "grouping": "0..n",
-   "if-feature": "0..n",
-   "input": "0..1",
-   "output": "0..1",
-   "reference": "0..1",
-   "status": "0..1",
-   "typedef": "0..n",
-   "construct": {
-    "!js/function": "function (arg, params, children) {\n  var func, method, ref, ref1, request, response, synth;\n  synth = this.require('data-synth');\n  func = this.resolve('rpc', arg, false);\n  if (func == null) {\n    func = function(input, output, done) {\n      return done(\"No control logic found for '\" + arg + \"' rpc operation\");\n    };\n  }\n  request = (ref = children.input) != null ? ref : synth.Meta;\n  response = (ref1 = children.output) != null ? ref1 : synth.Meta;\n  method = function(data, resolve, reject) {\n    var e, error, input, output;\n    if (typeof console.debug === \"function\") {\n      console.debug(\"executing rpc \" + arg + \"...\");\n    }\n    try {\n      input = new request(data, this);\n      output = new response(null, this);\n    } catch (error) {\n      e = error;\n      return reject(e);\n    }\n    return func.call(this, input, output, function(e) {\n      if (e == null) {\n        return resolve(output);\n      } else {\n        return reject(e);\n      }\n    });\n  };\n  method.params = params;\n  method.input = request;\n  method.output = response;\n  return method;\n}"
-   },
-   "argument": "name"
-  },
-  "submodule": {
-   "argument": "name",
-   "anyxml": "0..n",
-   "augment": "0..n",
-   "belongs-to": "0..1",
-   "choice": "0..n",
-   "contact": "0..1",
-   "container": "0..n",
-   "description": "0..1",
-   "deviation": "0..n",
-   "extension": "0..n",
-   "feature": "0..n",
-   "grouping": "0..n",
-   "identity": "0..n",
-   "import": "0..n",
-   "include": "0..n",
-   "leaf": "0..n",
-   "leaf-list": "0..n",
-   "list": "0..n",
-   "notification": "0..n",
-   "organization": "0..1",
-   "reference": "0..1",
-   "revision": "0..n",
-   "rpc": "0..n",
-   "typedef": "0..n",
-   "uses": "0..n",
-   "yang-version": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  var k, v;\n  for (k in params) {\n    v = params[k];\n    ctx[k] = v;\n  }\n  return delete ctx.submodule;\n}"
-   }
-  },
-  "status": {
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return ctx.status != null ? ctx.status : ctx.status = arg;\n}"
-   },
-   "argument": "value"
-  },
-  "type": {
-   "base": "0..1",
-   "bit": "0..n",
-   "enum": "0..n",
-   "fraction-digits": "0..1",
-   "length": "0..1",
-   "path": "0..1",
-   "pattern": "0..n",
-   "range": "0..1",
-   "require-instance": "0..1",
-   "type": "0..n",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  return delete this.enumValue;\n}"
-   },
-   "construct": {
-    "!js/function": "function (arg, params, children, ctx) {\n  var key, mparams, ref, ref1, synth, typedef, value;\n  synth = this.require('data-synth');\n  typedef = this.resolve('typedef', arg);\n  if (typedef == null) {\n    throw this.error(\"unable to resolve typedef for \" + arg);\n  }\n  switch (false) {\n    case typedef.construct == null:\n      ctx.type = typedef.construct(params, this, arguments.callee);\n      break;\n    case typeof typedef.type !== 'object':\n      ref = typedef.type;\n      for (key in ref) {\n        value = ref[key];\n        mparams = synth.copy({}, value);\n        synth.copy(mparams, params);\n        arguments.callee.call(this, key, mparams, children, ctx);\n      }\n      break;\n    case typeof typedef.type !== 'string':\n      arguments.callee.call(this, typedef.type, params, children, ctx);\n  }\n  if ((ref1 = ctx.type) != null) {\n    ref1.toString = function() {\n      return arg;\n    };\n  }\n  return null;\n}"
-   },
-   "argument": "name"
-  },
-  "typedef": {
-   "default": "0..1",
-   "description": "0..1",
-   "units": "0..1",
-   "type": "0..1",
-   "reference": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params) {\n  return this.define('typedef', arg, params);\n}"
-   },
-   "argument": "name"
-  },
-  "uses": {
-   "augment": "0..n",
-   "description": "0..1",
-   "if-feature": "0..n",
-   "refine": "0..n",
-   "reference": "0..1",
-   "status": "0..1",
-   "when": "0..1",
-   "preprocess": {
-    "!js/function": "function (arg, params, ctx) {\n  var changes, grouping, k, match, ref, ref1, synth, target, v;\n  synth = this.require('data-synth');\n  grouping = synth.copy({}, this.resolve('grouping', arg));\n  delete grouping.description;\n  delete grouping.reference;\n  synth.copy(ctx, grouping);\n  ref = params.refine;\n  for (target in ref) {\n    changes = ref[target];\n    match = this.locate(ctx, target);\n    if (match == null) {\n      continue;\n    }\n    for (k in changes) {\n      v = changes[k];\n      match[k] = v;\n    }\n  }\n  ref1 = params.augment;\n  for (target in ref1) {\n    changes = ref1[target];\n    match = this.locate(ctx, target);\n    if (match == null) {\n      continue;\n    }\n    synth.copy(match, changes);\n  }\n  if (typeof ctx.uses === 'object') {\n    return delete ctx.uses[arg];\n  } else {\n    return delete ctx.uses;\n  }\n}"
-   },
-   "argument": "name"
-  },
-  "when": {
-   "description": "0..1",
-   "reference": "0..1",
-   "argument": "condition"
-  },
-  "anyxml": {},
-  "base": {
-   "argument": "name"
-  },
-  "contact": {
-   "argument": {
-    "text": {
-     "yin-element": "true"
-    }
-   }
-  },
-  "default": {
-   "argument": "value"
-  },
-  "description": {
-   "argument": {
-    "text": {
-     "yin-element": "true"
-    }
-   }
-  },
-  "error-app-tag": {
-   "argument": "value"
-  },
-  "error-message": {
-   "argument": {
-    "value": {
-     "yin-element": "true"
-    }
-   }
-  },
-  "fraction-digits": {
-   "argument": "value"
-  },
-  "key": {
-   "argument": "value"
-  },
-  "length": {
-   "argument": "value"
-  },
-  "namespace": {
-   "argument": "uri"
-  },
-  "ordered-by": {
-   "argument": "value"
-  },
-  "organization": {
-   "argument": {
-    "text": {
-     "yin-element": "true"
-    }
-   }
-  },
-  "position": {
-   "argument": "value"
-  },
-  "presence": {
-   "argument": "value"
-  },
-  "range": {
-   "argument": "value"
-  },
-  "reference": {
-   "argument": {
-    "text": {
-     "yin-element": "true"
-    }
-   }
-  },
-  "revision-date": {
-   "argument": "date"
-  },
-  "unique": {
-   "argument": "tag"
-  },
-  "units": {
-   "argument": "value"
-  },
-  "value": {
-   "argument": "value"
-  },
-  "yang-version": {
-   "argument": "value"
-  },
-  "yin-element": {
-   "argument": "value"
-  }
- },
- "pkgdir": "/Users/onvelocity/rift-composer/webapp/schemas/yang",
- "module": {}
-}
\ No newline at end of file
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rwvcs-types.yang.src b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/rwvcs-types.yang.src
deleted file mode 100755 (executable)
index 1d1998c..0000000
+++ /dev/null
@@ -1,420 +0,0 @@
-
-/*
- * STANDARD_RIFT_IO_COPYRIGHT
- *
- */
-
-module rwvcs-types
-{
-  namespace "http://riftio.com/ns/riftware-1.0/rwvcs-types";
-  prefix "rwvcstypes";
-
-  import rw-pb-ext { 
-    prefix "rwpb"; 
-  }
-
-  import rw-yang-types { 
-    prefix "rwt"; 
-  }
-
-  import ietf-inet-types { 
-    prefix "inet"; 
-    revision-date 2013-07-15; 
-  }
-
-  revision 2014-03-12 {
-    description
-      "Initial implementation of RW.Manifest.";
-    reference
-      "RW.VX Software Component Document";
-  }
-
-  typedef component_type {
-    type enumeration {
-      enum RWCOLLECTION;
-      enum RWVM;
-      enum RWPROC;
-      enum PROC;
-      enum RWTASKLET;
-    }
-  }
-
-  typedef recovery-type {
-    type enumeration {
-      enum NONE;
-      enum RESTART;
-      enum FAILCRITICAL;
-      enum IGNORE;
-      enum CUSTOM;
-    }
-  }
-
-  grouping rwvcs-variable-list {
-    leaf-list python-variable {
-      description 
-          "List of Python variable assignments";
-      type string;
-    }
-  }
-
-  grouping valgrind {
-    container valgrind {
-      leaf enable {
-        description 
-            "Run the component under valgrind";
-        type boolean;
-      }
-
-      leaf-list opts {
-        description 
-            "Command line options to pass to valgrind";
-        type string;
-      }
-    }
-  }
-
-  grouping action-list {
-    list action {
-      description 
-          "This section contains a sequence 
-           of RW.VCS actions";
-      key "name";
-      //rwpb:msg-new VcsAction;
-
-      leaf name {
-        description 
-            "Name of the action within the sequence";
-        type string;
-      }
-
-      grouping rwvcs-python-loop {
-        leaf python-loop-expression {
-          description "Python expression";
-          type string;
-        }
-
-        leaf python-loop-iterate {
-          description "Python iteration";
-          type string;
-        }
-      }
-      uses rwvcs-python-loop;
-
-      choice action {
-        case annex {
-          container annex {
-            leaf component-name {
-              description 
-                  "Name of the component type 
-                   in the inventory";
-              type leafref {
-                path "../../../../../../../component/component-name";
-              }
-            }
-            leaf instance-id {
-              description 
-                  "ID of the component instance 
-                   in the inventory";
-              type string;
-            }
-          }
-        }
-
-        case start {
-          container start {
-            //rwpb:msg-new ActionStart;
-
-            uses rwvcs-variable-list;
-            leaf component-name {
-              description 
-                  "Name of the component type in 
-                   the inventory";
-              type leafref {
-                path "../../../../../../../component/component-name";
-              }
-            }
-            leaf instance-id {
-              description 
-                  "ID of the component instance 
-                   in the inventory";
-              type string;
-            }
-            leaf config-ready {
-              description 
-                  "Config readiness check enable";
-              type boolean;
-              default true;
-            }
-            leaf recovery-action {
-              description 
-                  "Define recovery action if this component fail";
-              type recovery-type;
-            }
-          }
-        }
-
-        case sleep {
-          container sleep {
-            leaf wait-time-usec {
-              description 
-                  "Time to wait while sleeping";
-              type uint32;
-            }
-          }
-        }
-      } // choice action
-    } // list action
-  } // grouping action-list
-
-  grouping rwvcs-event-list {
-    container event-list {
-      description "";
-      //rwpb:msg-new VcsEventList;
-
-      list event {
-        description 
-            "This section contains a list 
-             of RW.VCS events";
-        key "name";
-        //rwpb:msg-new VcsEvent;
-
-        leaf name {
-          description 
-              "Name of the event";
-          type string;
-        }
-
-        uses action-list;
-      } // list event
-    } // container event-list
-  } // grouping rwvcs-event-list
-
-  grouping rwvcs-rwcollection {
-    container rwcollection {
-      description 
-          "This section defines a RW.VCS 
-           rwollection component";
-      //rwpb:msg-new VcsRwCollection;
-
-      leaf collection-type {
-        description "Collection type";
-        type string;
-      }
-
-      uses rwvcs-event-list;
-    }
-  }
-
-  grouping rwvcs-rwvm {
-    container rwvm {
-      description 
-          "This section defines a RW.VCS 
-           rwvm component";
-      //rwpb:msg-new VcsRwVm;
-
-      leaf pool-name {
-        description 
-            "Name of the pool from which to 
-             allocate the VM";
-        type string;
-      }
-
-      leaf leader {
-        description
-            "True if this VM is designated as a leader for
-             the parent collection.";
-        type boolean;
-      }
-
-      uses rwvcs-event-list;
-      uses valgrind;
-    }
-  }
-
-  grouping rwvcs-rwproc {
-    container rwproc {
-      description 
-          "This section defines a RW.VCS 
-           rwproc component";
-      //rwpb:msg-new VcsRwproc;
-
-      leaf run-as {
-        description
-            "Host OS user that should run this 
-             process, requires sudo -E access 
-             and non-collapsed processes";
-        type string;
-      }
-
-      list tasklet {
-        description 
-            "List of tasklets to be run within 
-             this process";
-        key "name";
-        //rwpb:msg-new RwprocTasklet;
-
-        leaf name {
-          description 
-              "Local description of the tasklet";
-          type string;
-        }
-
-        leaf component-name {
-          description 
-              "Component name of the tasklet";
-          mandatory true;
-          type string;
-        }
-
-        leaf instance-id {
-          description
-              "If specified, the desired instance-id of
-               tasklet component instance";
-          type uint32;
-        }
-
-        leaf config-ready {
-          description 
-              "Config readiness check enable";
-          type boolean;
-          default true;
-        }
-
-        leaf recovery-action {
-          description 
-              "Define recovery action if this component fail";
-          type recovery-type;
-        }
-
-        uses rwvcs-variable-list;
-      }
-      uses valgrind;
-    }
-  }
-
-  grouping native-proc {
-    container native-proc {
-      //rwpb:msg-new NativeProc;
-
-      leaf run-as {
-        description 
-            "Host OS user that should run this 
-             process, requires sudo -E access";
-        type string;
-      }
-
-      leaf environment {
-        description 
-            "Runtime environment for native process";
-        type string;
-      }
-
-      leaf exe-path {
-        description 
-            "Path to native process executable";
-        type string;
-      }
-
-      leaf args {
-        description 
-            "Arguments to pass to native process";
-        type string;
-      }
-
-      leaf network-namespace {
-        description 
-            "Namespace to start process in";
-        type string;
-      }
-
-      leaf stdout {
-        description 
-            "Redirect stdout to the file at the 
-             specified path";
-        type string;
-      }
-
-      leaf stderr {
-        description 
-            "Redirect stderr to the file at the 
-             specified path. Optionally, 'stdout' 
-             may be used to redirect to the same 
-             file as stdout";
-        type string;
-      }
-
-      leaf interactive {
-        description "Native process is interactive and needs
-          terminal control";
-        type empty;
-      }
-      uses valgrind;
-    }
-  }
-
-  grouping rwvcs-rwtasklet {
-    container rwtasklet {
-      description 
-          "This section defines a RW.VCS 
-           rwtasklet component";
-      //rwpb:msg-new VcsRwTasklet;
-
-      leaf plugin-directory {
-        description "";
-        type string;
-      }
-
-      leaf plugin-name {
-        description "";
-        type string;
-      }
-
-      leaf plugin-version {
-        description "";
-        type string;
-      }
-    }
-  }
-
-  grouping rwvcs-component-list {
-    list component {
-      description 
-          "This section defines the RIFT.ware 
-           virtual components";
-      key "component-name";
-      //rwpb:application-request-point;
-
-      leaf component-name {
-        description "";
-        type string;
-      }
-
-      leaf component-type {
-        description "";
-        type component_type;
-        mandatory true;
-      }
-
-      choice component {
-        case rwvcs-rwcollection {
-          uses rwvcs-rwcollection;
-        }
-        case rwvcs-rwvm {
-          uses rwvcs-rwvm;
-        }
-        case rwvcs-rwproc {
-          uses rwvcs-rwproc;
-        }
-        case native-proc {
-          uses native-proc;
-        }
-        case rwvcs-rwtasklet {
-          uses rwvcs-rwtasklet;
-        }
-      }
-    } // list component
-  } // grouping rwvcs-component-list
-}
-
-// vim: sw=2
-
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/src-append.sh b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/src-append.sh
deleted file mode 100755 (executable)
index a4bc8ad..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-
-# append .src to all the yang files
-
-# show the commands we will run
-for f in *.yang; do echo mv "$f" "$f.src"; done
-
-# then do it
-for f in *.yang; do mv "$f" "$f.src"; done
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/src-remove.sh b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/src-remove.sh
deleted file mode 100755 (executable)
index 8d62684..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-
-# remove .src from all the yang files
-
-# show the commands we will run
-for f in *.yang.src; do echo mv "$f" "${f/.src/}"; done
-
-# then run them
-for f in *.yang.src; do mv "$f" "${f/.src/}"; done
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/vld.yang.src b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/vld.yang.src
deleted file mode 100755 (executable)
index 5244dfd..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-
-/*
- * STANDARD_RIFT_IO_COPYRIGHT
- *
- */
-
-module vld
-{
-  namespace "urn:ietf:params:xml:ns:yang:nfvo:vld";
-  prefix "vld";
-
-  import rw-pb-ext {
-    prefix "rwpb";
-  }
-
-  import vnfd {
-    prefix "vnfd";
-  }
-
-  import ietf-inet-types {
-    prefix "inet";
-  }
-
-  import ietf-yang-types {
-    prefix "yang";
-  }
-
-  import mano-types {
-    prefix "manotypes";
-  }
-
-  revision 2015-09-10 {
-    description
-      "Initial revision. This YANG file defines
-       the Virtual Link Descriptor (VLD)";
-    reference
-      "Derived from earlier versions of base YANG files";
-  }
-
-  container vld-catalog {
-
-    list vld {
-      key "id";
-
-      leaf id {
-        description "Identifier for the VLD.";
-        type yang:uuid;
-      }
-
-      leaf name {
-        description "Virtual Link Descriptor (VLD) name.";
-        type string;
-      }
-
-      leaf short-name {
-        description "Short name for VLD for UI";
-        type string;
-      }
-
-      leaf vendor {
-        description "Provider of the VLD.";
-        type string;
-      }
-
-      leaf description {
-        description "Description of the VLD.";
-        type string;
-      }
-
-      leaf version {
-        description "Version of the VLD";
-        type string;
-      }
-
-      leaf type {
-        type manotypes:virtual-link-type;
-      }
-
-      leaf root-bandwidth {
-        description
-            "For ELAN this is the aggregate bandwidth.";
-        type uint64;
-      }
-
-      leaf leaf-bandwidth {
-        description
-            "For ELAN this is the bandwidth of branches.";
-        type uint64;
-      }
-
-      list vnfd-connection-point-ref {
-        description
-            "A list of references to connection points.";
-        key "vnfd-ref member-vnf-index-ref";
-
-        leaf vnfd-ref {
-          description "A reference to a vnfd";
-          type leafref {
-            path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id";
-          }
-        }
-
-        leaf member-vnf-index-ref {
-          description 
-              "A reference to the consituent-vnfd id in nsd. 
-              Should have been a leafref to:
-                '/nsd:nsd-catalog:/nsd:nsd/constituent-vnfd/member-vnf-index-ref'. 
-              Instead using direct leaf to avoid circular reference.";
-          type uint64; 
-        }
-
-        leaf vnfd-connection-point-ref {
-          description 
-              "A reference to a connection point name in a vnfd";
-          type leafref {
-            path "/vnfd:vnfd-catalog/vnfd:vnfd" 
-               + "[vnfd:id = current()/../vld:vnfd-ref]"
-               + "/vnfd:connection-point/vnfd:name";
-          }
-        }
-      }
-
-      // replicate for pnfd container here
-      uses manotypes:provider-network;
-    }
-  }
-}
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/vlr.yang.src b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/vlr.yang.src
deleted file mode 100755 (executable)
index 38d87e0..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-
-/*
- * STANDARD_RIFT_IO_COPYRIGHT
- *
- */
-
-module vlr
-{
-  namespace "urn:ietf:params:xml:ns:yang:nfvo:vlr";
-  prefix "vlr";
-
-  import rw-pb-ext {
-    prefix "rwpb";
-  }
-
-  import ietf-inet-types {
-    prefix "inet";
-  }
-
-  import ietf-yang-types {
-    prefix "yang";
-  }
-
-  import mano-types {
-    prefix "manotypes";
-  }
-
-  import vld {
-    prefix "vld";
-  }
-
-  revision 2015-09-10 {
-    description
-      "Initial revision. This YANG file defines
-       the Virtual Link Record (VLR)";
-    reference
-      "Derived from earlier versions of base YANG files";
-  }
-
-  container vlr-catalog {
-    config false;
-
-    list vlr {
-      key "id";
-      unique "name";
-
-      leaf id {
-        description "Identifier for the VLR.";
-        type yang:uuid;
-      }
-
-      leaf name {
-        description "VLR name.";
-        type string;
-      }
-
-      leaf nsr-id-ref {
-        description 
-            "NS instance identifier. 
-             This is a leafref /nsr:ns-instance-config/nsr:nsr/nsr:id";
-        type yang:uuid;
-      }
-
-      leaf res-id {
-        description "Identifier for resmgr id mapping";
-        type yang:uuid;
-      }
-
-      leaf short-name {
-        description "Short name for VLR for UI";
-        type string;
-      }
-
-      leaf vendor {
-        description "Provider of the VLR.";
-        type string;
-      }
-
-      leaf description {
-        description "Description of the VLR.";
-        type string;
-      }
-
-      leaf version {
-        description "Version of the VLR";
-        type string;
-      }
-
-      leaf type {
-        type manotypes:virtual-link-type;
-      }
-
-      leaf root-bandwidth {
-        description
-            "For ELAN this is the aggregate bandwidth.";
-        type uint64;
-      }
-
-      leaf leaf-bandwidth {
-        description
-            "For ELAN this is the bandwidth of branches.";
-        type uint64;
-      }
-
-      leaf create-time {
-        description
-          "Creation timestamp of this Virtual Link.
-          The timestamp is expressed as seconds 
-          since unix epoch - 1970-01-01T00:00:00Z";
-
-        type uint32;
-      }
-
-      leaf vld-ref {
-        description "Reference to VLD";
-        type leafref {
-          path "/vld:vld-catalog/vld:vld/vld:id";
-        }
-      }
-
-      leaf network-id {
-        description 
-            "Identifier for the allocated network resource.";
-        type string;
-      }
-
-      // replicate for pnfd container here
-
-      uses manotypes:provider-network;
-
-      leaf status {
-        description
-            "Status of the virtual link record.";
-        type enumeration {
-          enum LINK_UP;
-          enum DEGRADED;
-          enum LINK_DOWN;
-        }
-      }
-      leaf operational-status {
-        description
-          "The operational status of the Virtual Link
-            init                 : The VL is in init stat.
-            vl-alloc-pending     : The VL alloc is pending in VIM
-            running              : The VL is up  and running in VM
-            vl-terminate-pending : The VL is being terminated in VIM.
-            terminated           : The VL is terminated in the VM.
-            failed               : The VL instantiation failed in VIM.
-          ";
-
-        type enumeration {
-          //rwpb:enum-type "VlOperationalStatus";
-          enum init;
-          enum vl-alloc-pending;
-          enum running;
-          enum vl-terminate-pending;
-          enum terminated;
-          enum failed;
-        }
-      }
-    }
-  }
-}
-
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/vnfd.yang.src b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/vnfd.yang.src
deleted file mode 100644 (file)
index 03423c8..0000000
+++ /dev/null
@@ -1,472 +0,0 @@
-
-/*
- * STANDARD_RIFT_IO_COPYRIGHT
- *
- */
-
-module vnfd
-{
-  namespace "urn:ietf:params:xml:ns:yang:nfvo:vnfd";
-  prefix "vnfd";
-
-  import mano-types {
-    prefix "manotypes";
-  }
-
-  import rw-pb-ext {
-    prefix "rwpb";
-  }
-
-  import ietf-yang-types {
-    prefix "yang";
-  }
-
-  import ietf-inet-types {
-    prefix "inet";
-  }
-
-  revision 2015-09-10 {
-    description
-      "Initial revision. This YANG file defines
-       the Virtual Network Function (VNF)";
-    reference
-      "Derived from earlier versions of base YANG files";
-  }
-
-  grouping common-connection-point {
-    leaf name {
-      description "Name of the connection point";
-      type string;
-    }
-    
-    leaf id {
-      description "Identifier for the internal connection points";
-      type string;
-    }
-
-    leaf short-name {
-      description "Short name of the connection point";
-      type string;
-    }
-    
-    leaf type {
-      description "Type of the connection point.";
-      type manotypes:connection-point-type;
-    }
-  }
-  
-  grouping virtual-interface {
-    container virtual-interface {
-      description
-          "Container for the virtual interface properties";
-
-      leaf type {
-        description
-            "Specifies the type of virtual interface
-             between VM and host.
-             VIRTIO          : Use the traditional VIRTIO interface.
-             PCI-PASSTHROUGH : Use PCI-PASSTHROUGH interface.
-             SR-IOV          : Use SR-IOV interface.
-             OM-MGMT         : Used to specify openmano mgmt external-connection type";
-
-        type enumeration {
-          enum OM-MGMT;
-          enum PCI-PASSTHROUGH;
-          enum SR-IOV;
-          enum VIRTIO;
-        }
-        default "VIRTIO";
-      }
-
-      leaf vpci {
-        description
-            "Specifies the virtual PCI address. Expressed in
-             the following format dddd:dd:dd.d. For example
-             0000:00:12.0. This information can be used to
-             pass as metadata during the VM creation.";
-        type string;
-      }
-
-      leaf bandwidth {
-        description
-            "Aggregate bandwidth of the NIC.";
-        type uint64;
-      }
-    }
-  }
-
-  container vnfd-catalog {
-
-    description
-        "Virtual Network Function Descriptor (VNFD).";
-
-    list vnfd {
-      key "id";
-
-      leaf id {
-        description "Identifier for the VNFD.";
-        type string;
-      }
-
-      leaf name {
-        description "VNFD name.";
-        mandatory true;
-        type string;
-      }
-
-      leaf short-name {
-        description "VNFD short name.";
-        type string;
-      }
-
-      leaf vendor {
-        description "Vendor of the VNFD.";
-        type string;
-      }
-
-      leaf logo {
-        description
-            "Vendor logo for the Virtual Network Function";
-        type string;
-      }
-
-      leaf description {
-        description "Description of the VNFD.";
-        type string;
-      }
-
-      leaf version {
-        description "Version of the VNFD";
-        type string;
-      }
-
-      container mgmt-interface {
-        description
-            "Interface over which the VNF is managed.";
-
-        uses manotypes:vnf-configuration;
-        
-        choice endpoint-type {
-          description
-              "Indicates the type of management endpoint.";
-
-          case ip {
-            description
-                "Specifies the static IP address for managing the VNF.";
-            leaf ip-address {
-              type inet:ip-address;
-            }
-          }
-
-          case vdu-id {
-            description
-                "Use the default management interface on this VDU.";
-            leaf vdu-id {
-              type leafref {
-                path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:vdu/vnfd:id";
-              }
-            }
-          }
-
-          case cp {
-            description
-                "Use the ip address associated with this connection point.";
-            leaf cp {
-              type leafref {
-                path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:connection-point/vnfd:name";
-              }
-            }
-          }
-        }
-
-        leaf port {
-          description
-              "Port for the management interface.";
-          type inet:port-number;
-        }
-
-        container dashboard-params {
-          description "Parameters for the VNF dashboard";
-
-          leaf path {
-            description "The HTTP path for the dashboard";
-            type string;
-          }
-
-          leaf https {
-            description "Pick HTTPS instead of HTTP , Default is false";
-            type boolean;
-          }
-
-          leaf port {
-            description "The HTTP port for the dashboard";
-            type inet:port-number;
-          }
-        }
-      }
-
-      list internal-vld {
-        key "id";
-        description
-            "List of Internal Virtual Link Descriptors (VLD).
-            The internal VLD describes the basic topology of
-            the connectivity (e.g. E-LAN, E-Line, E-Tree)
-            between internal VNF components of the system.";
-
-        leaf id {
-          description "Identifier for the VLD";
-          type string;
-        }
-
-        leaf name {
-          description "Name of the internal VLD";
-          type string;
-        }
-
-        leaf short-name {
-          description "Short name of the internal VLD";
-          type string;
-        }
-
-        leaf description {
-          type string;
-        }
-
-        leaf type {
-          type manotypes:virtual-link-type;
-        }
-
-        leaf root-bandwidth {
-          description
-              "For ELAN this is the aggregate bandwidth.";
-          type uint64;
-        }
-
-        leaf leaf-bandwidth {
-          description
-              "For ELAN this is the bandwidth of branches.";
-          type uint64;
-        }
-
-        leaf-list internal-connection-point-ref {
-          type leafref {
-            path "../../vdu/internal-connection-point/id";
-          }
-        }
-
-        uses manotypes:provider-network;
-      }
-
-      list connection-point {
-        key "name";
-        description
-            "List for external connection points. Each VNF has one
-            or more external connection points. As the name
-            implies that external connection points are used for
-            connecting the VNF to other VNFs or to external networks.
-            Each VNF exposes these connection points to the
-            orchestrator. The orchestrator can construct network
-            services by connecting the connection points between
-            different VNFs. The NFVO will use VLDs and VNFFGs at
-            the network service level to construct network services.";
-
-        uses common-connection-point;
-      }
-
-      list vdu {
-        description "List of Virtual Deployment Units";
-        key "id";
-
-        leaf id {
-          description "Unique id for the VDU";
-          type string;
-        }
-
-        leaf name {
-          description "Unique name for the VDU";
-          type string;
-        }
-
-        leaf description {
-            description "Description of the VDU.";
-            type string;
-        }
-
-        leaf count {
-          description "Number of instances of VDU";
-          type uint64;
-        }
-
-        leaf mgmt-vpci {
-          description
-              "Specifies the virtual PCI address. Expressed in
-             the following format dddd:dd:dd.d. For example
-             0000:00:12.0. This information can be used to
-             pass as metadata during the VM creation.";
-          type string;
-        }
-
-
-        uses manotypes:vm-flavor;
-        uses manotypes:guest-epa;
-        uses manotypes:vswitch-epa;
-        uses manotypes:hypervisor-epa;
-        uses manotypes:host-epa;
-
-        leaf image {
-          description
-            "Image name for the software image.
-             If the image name is found within the VNF packaage it will
-             be uploaded to all cloud accounts during onboarding process.
-             Otherwise, the image must be added to the cloud account with
-             the same name as entered here.
-            ";
-          mandatory true;
-          type string;
-        }
-
-        leaf image-checksum {
-          description
-            "Image md5sum for the software image.
-            The md5sum, if provided, along with the image name uniquely
-            identifies an image uploaded to the CAL.
-            ";
-          type string;
-        }
-
-        leaf cloud-init {
-          description "Content of cloud-init script";
-          type string;
-        }
-
-        list internal-connection-point {
-          key "id";
-          description
-              "List for internal connection points. Each VNFC
-              has zero or more internal connection points.
-              Internal connection points are used for connecting
-              the VNF components internal to the VNF. If a VNF
-              has only one VNFC, it may not have any internal
-              connection points.";
-
-          uses common-connection-point;
-
-          leaf internal-vld-ref {
-            type leafref {
-              path "../../../internal-vld/id";
-            }
-          }
-        }
-
-        list internal-interface {
-          description
-              "List of internal interfaces for the VNF";
-          key name;
-
-          leaf name {
-            description
-                "Name of internal interface. Note that this
-                name has only local significance to the VDU.";
-            type string;
-          }
-
-          leaf vdu-internal-connection-point-ref {
-            type leafref {
-              path "../../internal-connection-point/id";
-            }
-          }
-          uses virtual-interface;
-        }
-
-        list external-interface {
-          description
-              "List of external interfaces for the VNF.
-              The external interfaces enable sending
-              traffic to and from VNF.";
-          key name;
-
-          leaf name {
-            description
-                "Name of the external interface. Note that
-                this name has only local significance.";
-            type string;
-          }
-
-          leaf vnfd-connection-point-ref {
-            description
-              "Name of the external connection point.";
-            type leafref {
-              path "../../../connection-point/name";
-            }
-          }
-          uses virtual-interface;
-        }
-      }
-
-      list vdu-dependency {
-        description
-            "List of VDU dependencies.";
-
-        key vdu-source-ref;
-        leaf vdu-source-ref {
-          type leafref {
-            path "../../vdu/id";
-          }
-        }
-
-        leaf vdu-depends-on-ref {
-          description
-              "Reference to the VDU that
-              source VDU depends.";
-          type leafref {
-            path "../../vdu/id";
-          }
-        }
-      }
-
-      leaf service-function-chain {
-        description "Type of node in Service Function Chaining Architecture";
-
-        type enumeration {
-          enum UNAWARE;
-          enum CLASSIFIER;
-          enum SF;
-          enum SFF;
-        }
-        default "UNAWARE";
-      }
-      
-      leaf service-function-type {
-        description
-            "Type of Service Function.
-             NOTE: This needs to map with Service Function Type in ODL to
-             support VNFFG. Service Function Type is manadatory param in ODL
-             SFC. This is temporarily set to string for ease of use";
-            type string;
-      }
-
-      uses manotypes:monitoring-param;
-
-      list placement-groups {
-        description "List of placement groups at VNF level";
-
-        key "name";
-        uses manotypes:placement-group-info;
-        
-        list constituent-vdus {
-          description
-              "List of VDUs that are part of this placement group";
-          key "member-vdu-ref";
-        
-          leaf member-vdu-ref {
-            type leafref {
-              path "../../../vdu/id";
-            }
-          }
-        }
-      }
-    }
-  }
-}
-
-// vim: sw=2
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/vnffgd.yang.src b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/vnffgd.yang.src
deleted file mode 100755 (executable)
index ae3197a..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-
-/*
- * STANDARD_RIFT_IO_COPYRIGHT
- *
- */
-
-module vnffgd
-{
-  namespace "urn:ietf:params:xml:ns:yang:nfvo:vnffgd";
-  prefix "vnffgd";
-
-  import rw-pb-ext {
-    prefix "rwpb";
-  }
-
-  import ietf-inet-types {
-    prefix "inet";
-  }
-
-  import ietf-yang-types {
-    prefix "yang";
-  }
-
-  import mano-types {
-    prefix "manotypes";
-  }
-
-  revision 2014-10-27 {
-    description
-      "Initial revision. This YANG file defines 
-       the VNF Forwarding Graph Descriptor (VNFFGD)";
-    reference
-      "Derived from earlier versions of base YANG files";
-  }
-
-  container vnffgd-catalog {
-
-    list vnffgd {
-      key "id";
-
-      leaf name {
-        description "VNF Forwarding Graph Descriptor name.";
-        type string;
-      }
-
-      leaf id {
-        description "Identifier for the VNFFGD.";
-        type yang:uuid;
-      }
-
-      leaf provider {
-        description "Provider of the VNFFGD.";
-        type string;
-      }
-
-      leaf description {
-        description "Description of the VNFFGD.";
-        type string;
-      }
-
-      leaf version {
-        description "Version of the VNFFGD";
-        type string;
-      }
-
-      //TODO: Add more content here
-    }
-  }
-}
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/vnfr.yang.src b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/vnfr.yang.src
deleted file mode 100755 (executable)
index dc286cf..0000000
+++ /dev/null
@@ -1,443 +0,0 @@
-
-/*
- * STANDARD_RIFT_IO_COPYRIGHT
- *
- */
-
-module vnfr
-{
-  namespace "urn:ietf:params:xml:ns:yang:nfvo:vnfr";
-  prefix "vnfr";
-
-  import mano-types {
-    prefix "manotypes";
-  }
-
-  import rw-pb-ext {
-    prefix "rwpb";
-  }
-
-  import vnfd {
-    prefix "vnfd";
-  }
-
-  import nsd {
-    prefix "nsd";
-  }
-
-  import vlr {
-    prefix "vlr";
-  }
-
-  import ietf-yang-types {
-    prefix "yang";
-  }
-
-  import ietf-inet-types {
-    prefix "inet";
-  }
-
-  revision 2015-09-10 {
-    description
-      "Initial revision. This YANG file defines
-       the Virtual Network Function Record (VNFR)";
-    reference
-      "Derived from earlier versions of base YANG files";
-  }
-
-  grouping virtual-interface {
-    container virtual-interface {
-      description
-          "Container for the virtual interface properties";
-
-      leaf type {
-        description
-            "Specifies the type of virtual interface
-             between VM and host.
-             VIRTIO          : Use the traditional VIRTIO interface.
-             PCI-PASSTHROUGH : Use PCI-PASSTHROUGH interface.
-             SR-IOV          : Use SR-IOV interface.";
-        type enumeration {
-          enum VIRTIO;
-          enum PCI-PASSTHROUGH;
-          enum SR-IOV;
-        }
-      }
-
-      leaf bandwidth {
-        description
-            "Aggregate bandwidth of the NIC.";
-        type uint64;
-      }
-
-      leaf ovs-offload {
-        description
-            "Defines if the NIC supports OVS offload.
-             MANDATORY : OVS offload support in the NIC is mandatory.
-             PREFERRED : OVS offload support in the NIC is preferred.";
-        type enumeration {
-          enum MANDATORY;
-          enum PREFERRED;
-        }
-      }
-
-      leaf vendor-id {
-        description
-            "Specifies the vendor specific id for
-             the device. This is used when a NIC from
-             specific HW vendor is required.";
-        type string;
-      }
-
-      leaf datapath-library {
-        description
-            "Specifies the name and version of the datapath
-             library the NIC is expected to support.";
-        type string;
-      }
-
-      leaf provider-network-name {
-        description
-            "Name of the provider network to which this
-             NIC is attached.";
-        type string;
-      }
-    }
-  }
-
-  container vnfr-catalog {
-    config false;
-    list vnfr {
-      description
-          "Virtual Network Function Record (VNFR).";
-      key "id";
-      unique "name";
-
-      leaf id {
-        description "Identifier for the VNFR.";
-        type yang:uuid;
-      }
-
-      leaf nsr-id-ref {
-        description
-            "NS instance identifier.
-             This is a leafref /nsr:ns-instance-config/nsr:nsr/nsr:id";
-        type yang:uuid;
-      }
-
-      leaf member-vnf-index-ref {
-        description "Reference to member VNF index in Network service.";
-        type leafref {
-          path "/nsd:nsd-catalog/nsd:nsd/nsd:constituent-vnfd/nsd:member-vnf-index";
-        }
-      }
-
-      leaf dashboard-url {
-        description "Dashboard URL";
-        type inet:uri;
-      }
-
-      leaf name {
-        description "VNFR name.";
-        type string;
-      }
-
-      leaf short-name {
-        description "VNFR short name.";
-        type string;
-      }
-
-      leaf vendor {
-        description "Vendor of the VNFR.";
-        type string;
-      }
-
-      leaf description {
-        description "Description of the VNFR.";
-        type string;
-      }
-
-      leaf version {
-        description "Version of the VNFR";
-        type string;
-      }
-
-      leaf create-time {
-        description 
-          "Creation timestamp of this Virtual Network 
-          Function.  The timestamp is expressed as 
-          seconds since unix epoch - 1970-01-01T00:00:00Z";
-
-        type uint32;
-      }
-
-      leaf vnfd-ref {
-        description "Reference to VNFD";
-        type leafref {
-          path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id";
-        }
-      }
-
-      // Use parameters provided here to configure this VNF
-      uses manotypes:vnf-configuration;
-
-      // Mainly used by Mon-params & dashboard url
-      container mgmt-interface {
-        leaf ip-address {
-          type inet:ip-address;
-        }
-        leaf port {
-          type inet:port-number;
-        }
-      }
-
-      list internal-vlr {
-        key "vlr-ref";
-
-        leaf vlr-ref {
-          description "Reference to a VLR record in the VLR catalog";
-          type leafref {
-            path "/vlr:vlr-catalog/vlr:vlr/vlr:id";
-          }
-        }
-
-        leaf-list internal-connection-point-ref {
-          type leafref {
-            path "../../vdur/internal-connection-point/id";
-          }
-        }
-      }
-
-      list connection-point {
-        key "name";
-        description
-            "List for external connection points. Each VNF has one
-             or more external connection points. As the name
-             implies that external connection points are used for
-             connecting the VNF to other VNFs or to external networks.
-             Each VNF exposes these connection points to the
-             orchestrator. The orchestrator can construct network
-             services by connecting the connection points between
-             different VNFs. The NFVO will use VLDs and VNFFGs at
-             the network service level to construct network services.";
-
-        uses vnfd:common-connection-point;
-
-        leaf vlr-ref {
-          description 
-              "Reference to the VLR associated with this connection point";
-          type  leafref {
-            path "/vlr:vlr-catalog/vlr:vlr/vlr:id";
-          }
-        }
-
-        leaf ip-address {
-          description 
-              "IP address assigned to the external connection point";
-          type inet:ip-address;
-        }
-        leaf connection-point-id {
-          //rwpb:field-inline "true";
-          //rwpb:field-string-max 64;
-          type string;
-        }
-      }
-
-      list vdur {
-        description "List of Virtual Deployment Units";
-        key "id";
-        unique "name";
-
-        leaf id {
-          description "Unique id for the VDU";
-          type yang:uuid;
-        }
-
-        leaf name {
-          description "name of the instantiated VDUR";
-          type string;
-        }
-
-        leaf vdu-id-ref {
-          type leafref {
-            path "/vnfd:vnfd-catalog/vnfd:vnfd" 
-               + "[vnfd:id = current()/../../vnfr:vnfd-ref]"
-               + "/vnfd:vdu/vnfd:id";
-          }
-        }
-
-        leaf vim-id {
-          description "Allocated VM resource id";
-          type string;
-        }
-
-        leaf flavor-id {
-          description "VIM assigned flavor id";
-          type string;
-        }
-
-        leaf image-id {
-          description "VIM assigned image id";
-          type string;
-        }
-
-        leaf management-ip {
-          description "Management IP address";
-          type inet:ip-address;
-        }
-
-        leaf vm-management-ip {
-          description "VM Private Management IP address";
-          type inet:ip-address;
-        }
-
-        uses manotypes:vm-flavor;
-        uses manotypes:guest-epa;
-        uses manotypes:vswitch-epa;
-        uses manotypes:hypervisor-epa;
-        uses manotypes:host-epa;
-
-        list internal-connection-point {
-          key "id";
-          description
-              "List for internal connection points. Each VNFC
-               has zero or more internal connection points.
-               Internal connection points are used for connecting
-               the VNF components internal to the VNF. If a VNF
-               has only one VNFC, it may not have any internal
-               connection points.";
-
-          uses vnfd:common-connection-point;
-
-          leaf ip-address {
-            description 
-                "IP address assigned to the external connection point";
-            type inet:ip-address;
-          }
-        }
-
-        list internal-interface {
-          description
-              "List of internal interfaces for the VNF";
-          key name;
-
-          leaf name {
-            description
-                "Name of internal interface. Note that this
-                 name has only local significance to the VDU.";
-            type string;
-          }
-
-          leaf vdur-internal-connection-point-ref {
-            type leafref {
-              path "../../internal-connection-point/id";
-            }
-          }
-          uses virtual-interface;
-        }
-
-        list external-interface {
-          description
-              "List of external interfaces for the VNF.
-               The external interfaces enable sending
-               traffic to and from VNF.";
-          key name;
-
-          leaf name {
-            description
-                "Name of the external interface. Note that
-                 this name has only local significance.";
-            type string;
-          }
-
-          leaf vnfd-connection-point-ref {
-            description
-              "Name of the external connection point.";
-            type leafref {
-              path "../../../connection-point/name";
-            }
-          }
-          uses virtual-interface;
-        }
-        leaf operational-status {
-          description
-            "The operational status of the VDU 
-              init                : The VDU has just started.
-              vm-init-phase       : The VDUs in the VNF is being created in VIM.
-              vm-alloc-pending    : The  VM alloc is pending in VIM
-              running             : The VDU is active in VM
-              terminate           : The VDU is being terminated
-              vm-terminate-phase  : The VDU in the VNF is being terminated in VIM.
-              terminated          : The VDU is in the terminated state.
-              failed              : The VDU  instantiation failed.
-            ";
-
-          type enumeration {
-            //rwpb:enum-type "VduOperationalStatus";
-            enum init;
-            enum vm-init-phase;
-            enum vm-alloc-pending;
-            enum running;
-            enum terminate;
-            enum vl-terminate-phase;
-            enum terminated;
-            enum failed;
-          }
-        }
-      }
-
-      uses manotypes:monitoring-param;
-
-      leaf operational-status {
-        description
-          "The operational status of the VNFR instance
-            init                : The VNF has just started.
-            vl-init-phase       : The internal VLs in the VNF are being instantiated.
-            vm-init-phase       : The VMs for VDUs in the VNF are being instantiated.
-            running             : The VNF is in running state.
-            terminate           : The VNF is being terminated.
-            vm-terminate-phase  : The VMs in the VNF are being terminated.
-            vl-terminate-phase  : The internal VLs in the VNF are being terminated.
-            terminated          : The VNF is in the terminated state.
-            failed              : The VNF instantiation failed
-          ";
-
-        type enumeration {
-          //rwpb:enum-type "VnfrOperationalStatus";
-          enum init;
-          enum vl-init-phase;
-          enum vm-init-phase;
-          enum running;
-          enum terminate;
-          enum vm-terminate-phase;
-          enum vl-terminate-phase;
-          enum terminated;
-          enum failed;
-        }
-      }
-      leaf config-status {
-        description
-          "The configuration status of the NS instance
-            configuring: At least one of the VNFs in this instance is in configuring state
-            configured:  All the VNFs in this NS instance are configured or config-not-needed state
-          ";
-
-        type enumeration {
-          enum configuring {
-            value 1;
-          }
-          enum configured {
-            value 2;
-          }
-          enum failed {
-            value 3;
-          }
-          enum config-not-needed {
-            value 4;
-          }
-        }
-      }
-    }
-  }
-}
-
diff --git a/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/yang2json.sh b/modules/ui/rw.ui/skyquake/plugins/composer/src/schemas/yang/yang2json.sh
deleted file mode 100755 (executable)
index 7a32875..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-
-# STANDARD_RIFT_IO_COPYRIGHT
-
-./src-remove.sh
-
-yfc schema -c rw-nsd.yang -f json -o json-nsd.json
-yfc schema -c rw-vnfd.yang -f json -o json-vnfd.json
-#yfc schema -c vnffgd.yang -f json -o json-vnffgd.json
-#yfc schema -c rw-vld.yang -f json -o json-vld.json
-#yfc schema -c ietf-inet-types.yang -f json -o ietf-inet-types.yang.json;
-#yfc schema -c ietf-yang-types.yang -f json -o ietf-yang-types.yang.json
-
-./src-append.sh
-
-# todo: transform the -yang.json into a simpler json for the UI to consume