BUG 363 -- use yang files from IM repo 65/5765/1
authorJeremy Mordkoff <Jeremy.Mordkoff@riftio.com>
Thu, 7 Dec 2017 00:07:05 +0000 (19:07 -0500)
committerJeremy Mordkoff <Jeremy.Mordkoff@riftio.com>
Thu, 7 Dec 2017 00:07:05 +0000 (19:07 -0500)
Signed-off-by: Jeremy Mordkoff <Jeremy.Mordkoff@riftio.com>
19 files changed:
.gitignore
BUILD.sh
devops-stages/stage-build.sh
models/plugins/yang/ietf-l2-topology.yang [deleted file]
models/plugins/yang/ietf-network-topology.yang [deleted file]
models/plugins/yang/ietf-network.yang [deleted file]
models/plugins/yang/mano-rift-groupings.yang [deleted file]
models/plugins/yang/mano-types.yang [deleted file]
models/plugins/yang/nsd-base.yang [deleted file]
models/plugins/yang/nsd.yang [deleted file]
models/plugins/yang/nsr.yang [deleted file]
models/plugins/yang/odl-network-topology.yang [deleted file]
models/plugins/yang/project-nsd.yang [deleted file]
models/plugins/yang/project-vnfd.yang [deleted file]
models/plugins/yang/vlr.yang [deleted file]
models/plugins/yang/vnfd-base.yang [deleted file]
models/plugins/yang/vnfd.yang [deleted file]
models/plugins/yang/vnffgd.yang [deleted file]
models/plugins/yang/vnfr.yang [deleted file]

index 6c320fe..17e4d81 100644 (file)
@@ -43,3 +43,20 @@ node_modules/
 *.log
 
 .cache
+
+models/plugins/yang/ietf-l2-topology.yang
+models/plugins/yang/ietf-network-topology.yang
+models/plugins/yang/ietf-network.yang
+models/plugins/yang/mano-rift-groupings.yang
+models/plugins/yang/mano-types.yang
+models/plugins/yang/nsd-base.yang
+models/plugins/yang/nsd.yang
+models/plugins/yang/nsr.yang
+models/plugins/yang/odl-network-topology.yang
+models/plugins/yang/project-nsd.yang
+models/plugins/yang/project-vnfd.yang
+models/plugins/yang/vlr.yang
+models/plugins/yang/vnfd-base.yang
+models/plugins/yang/vnfd.yang
+models/plugins/yang/vnffgd.yang
+models/plugins/yang/vnfr.yang
index 7ccdeba..a2cbff2 100755 (executable)
--- a/BUILD.sh
+++ b/BUILD.sh
@@ -112,7 +112,36 @@ else
     sudo mkdir -p /usr/rift/etc/default
     sudo chmod 777 /usr/rift/etc/default
     echo LAUNCHPAD_OPTIONS="--use-xml-mode" >> /usr/rift/etc/default/launchpad
-    sudo systemctl daemon-reload
+    sudo systemctl daemon-reload || true
+
+    IM_FILES="
+ietf-l2-topology.yang
+ietf-network-topology.yang
+ietf-network.yang
+mano-rift-groupings.yang
+mano-types.yang
+nsd-base.yang
+nsd.yang
+nsr.yang
+odl-network-topology.yang
+project-nsd.yang
+project-vnfd.yang
+vlr.yang
+vnfd-base.yang
+vnfd.yang
+vnffgd.yang
+vnfr.yang
+"
+    echo "installing IM files"
+    if [ ! -d ../IM ]; then
+        echo cloning IM
+        # note that this cannot be inside the SO or else CMAKE will find it 
+        git clone $(dirname $(git remote get-url origin))/IM.git ../IM
+    fi
+    for file in $IM_FILES; do 
+        rm -f models/plugins/yang/$file
+        cp ../IM/models/yang/$file models/plugins/yang
+    done
 
     # Build  and install module
     make -j16 
index 4354ee1..876b299 100755 (executable)
@@ -1,4 +1,31 @@
 #!/bin/sh
 rm -rf .build
+IM_FILES="
+ietf-l2-topology.yang
+ietf-network-topology.yang
+ietf-network.yang
+mano-rift-groupings.yang
+mano-types.yang
+nsd-base.yang
+nsd.yang
+nsr.yang
+odl-network-topology.yang
+project-nsd.yang
+project-vnfd.yang
+vlr.yang
+vnfd-base.yang
+vnfd.yang
+vnffgd.yang
+vnfr.yang
+"
+echo "installing IM files"
+# note that this cannot be inside the SO or else CMAKE will find it 
+tmp=$(mktemp -d)
+git clone $(dirname $(git remote get-url origin))/IM.git $tmp
+for file in $IM_FILES; do 
+    rm -f models/plugins/yang/$file
+    cp $tmp/models/yang/$file models/plugins/yang
+done
+rm -rf $tmp
 make NOT_DEVELOPER_BUILD=TRUE -j16 package
 
diff --git a/models/plugins/yang/ietf-l2-topology.yang b/models/plugins/yang/ietf-l2-topology.yang
deleted file mode 100644 (file)
index 9f572cb..0000000
+++ /dev/null
@@ -1,578 +0,0 @@
-
-/*
- * NO RW COPYRIGHT
- *
- */
-
-module ietf-l2-topology {
-    yang-version 1;
-    namespace "urn:ietf:params:xml:ns:yang:ietf-l2-topology";
-    prefix "l2t";
-
-    import ietf-network {
-      prefix "nw";
-    }
-
-    import ietf-network-topology {
-      prefix "nt";
-    }
-
-    import ietf-inet-types {
-      prefix "inet";
-    }
-
-    import ietf-yang-types {
-      prefix "yang";
-    }
-
-    organization "TBD";
-    contact "I-D Editor: jie.dong@huawei.com";
-
-    description
-      "This module defines a basic model for
-       the layer-2 topology of a network";
-
-    revision "2015-06-23" {
-      description "Initial revision";
-      reference "draft-ietf-i2rs-l2-network-topology-01";
-    }
-
-   /*
-    * Typedefs
-    */
-
-    typedef vlan {
-      type uint16 {
-        range "0..4095";
-      }
-      description "VLAN ID";
-    }
-
-    typedef trill-nickname {
-      type uint16;
-      description "TRILL Nickname";
-    }
-
-    typedef flag-type {
-      type identityref {
-        base "flag-identity";
-      }
-      description "Base type for flags";
-    }
-
-    typedef l2-network-event-type {
-      type enumeration {
-        enum "add" {
-          value 0;
-          description "An L2 node or link or termination-point
-          has been added";
-        }
-        enum "remove" {
-          value 1;
-          description "An L2 node or link or termination-point
-          has been removed";
-        }
-        enum "update" {
-          value 2;
-          description "An L2 node or link or termination-point
-          has been updated";
-        }
-      }
-      description "l2 network event type for notifications";
-    } // l2-topology-event-type
-
-
-    /*
-    * Features
-    */
-
-    feature VLAN {
-      description
-        "Indicates that the system supports the
-         vlan functions";
-    }
-
-    feature QinQ {
-      description
-        "Indicates that the system supports the
-         qinq functions";
-    }
-
-    feature PBB {
-      description
-       "Indicates that the device supports the
-        provider-backbone-bridging functions";
-    }
-
-    feature VPLS {
-      description
-        "Indicates that the device supports the
-         VPLS functions";
-      reference "RFC 4761, RFC 4762";
-    }
-
-    feature TRILL {
-      description
-        "Indicates that the device supports the
-         TRILL functions";
-      reference "RFC 6325";
-    }
-
-    feature VXLAN {
-      description
-        "Indicates that the device supports the
-         VXLAN functions";
-      reference "RFC 7348";
-    }
-
-   /*
-    * Identities
-    */
-    identity flag-identity {
-      description "Base type for flags";
-    }
-
-    identity encapsulation-type {
-      description
-        "Base identity from which specific encapsulation
-         types are derived.";
-    }
-
-    identity eth-encapsulation-type {
-      base encapsulation-type;
-      description
-        "Base identity from which specific ethernet
-         encapsulation types are derived.";
-
-    }
-
-    identity ethernet {
-      base eth-encapsulation-type;
-      description
-        "native ethernet encapsulation";
-    }
-
-    identity vlan {
-      base eth-encapsulation-type;
-      description
-        "vlan encapsulation";
-    }
-
-    identity qinq {
-      base eth-encapsulation-type;
-      description
-        "qinq encapsulation";
-    }
-
-    identity pbb {
-      base eth-encapsulation-type;
-      description
-        "pbb encapsulation";
-    }
-
-    identity trill {
-      base eth-encapsulation-type;
-      description
-        "trill encapsulation";
-    }
-
-    identity vpls {
-      base eth-encapsulation-type;
-      description
-        "vpls encapsulation";
-    }
-
-    identity vxlan {
-      base eth-encapsulation-type;
-      description
-        "vxlan encapsulation";
-    }
-
-    identity frame-relay {
-      base encapsulation-type;
-      description
-        "Frame Relay encapsulation";
-    }
-
-    identity ppp {
-      base encapsulation-type;
-      description
-        "PPP encapsulation";
-    }
-
-    identity hdlc {
-      base encapsulation-type;
-      description
-        "HDLC encapsulation";
-    }
-
-    identity atm {
-      base encapsulation-type;
-      description
-        "Base identity from which specific ATM
-         encapsulation types are derived.";
-
-    }
-
-    identity pwe3 {
-      base encapsulation-type;
-      description
-        "Base identity from which specific pw
-         encapsulation types are derived.";
-    }
-
-
-   /*
-    * Groupings
-    */
-
-
-    grouping l2-network-type {
-      description "Identify the topology type to be L2.";
-      container l2-network {
-        presence "indicates L2 Network";
-        description
-        "The presence of the container node indicates
-         L2 Topology";
-      }
-    }
-
-    grouping l2-network-attributes {
-      description "L2 Topology scope attributes";
-      container l2-network-attributes {
-        description "Containing L2 network attributes";
-        leaf name {
-          type string;
-          description "Name of the L2 network";
-        }
-
-        leaf-list flag {
-          type flag-type;
-          description "L2 network flags";
-        }
-      }
-    }
-
-    grouping l2-node-attributes {
-      description "L2 node attributes";
-      container l2-node-attributes {
-        description "Containing L2 node attributes";
-        leaf name {
-          type string;
-          description "Node name";
-        }
-        leaf description {
-          type string;
-          description "Node description";
-        }
-        leaf-list management-address {
-          type inet:ip-address;
-          description "System management address";
-        }
-        leaf management-vid {
-          if-feature VLAN;
-          type vlan;
-          description "System management VID";
-        }
-        leaf-list nick-name {
-          if-feature TRILL;
-          type trill-nickname;
-          description "Nickname of the RBridge";
-        }
-        leaf-list flag {
-          type flag-type;
-          description "Node operational flags";
-        }
-      }
-    }  // grouping l2-node-attributes
-
-
-    grouping l2-link-attributes {
-      description "L2 link attributes";
-      container l2-link-attributes {
-        description "Containing L2 link attributes";
-        leaf name {
-          type string;
-          description "Link name";
-        }
-        leaf-list flag {
-          type flag-type;
-          description "Link flags";
-        }
-        leaf rate {
-          type decimal64 {
-            fraction-digits 2;
-          }
-          description "Link rate";
-
-        }
-        leaf delay {
-          type uint32;
-          description "Link delay in microseconds";
-        }
-        leaf-list srlg {
-          type uint32;
-          description
-            "List of Shared Risk Link Groups
-             this link belongs to.";
-        }
-      }
-    } // grouping l2-link-attributes
-
-    grouping l2-termination-point-attributes {
-      description "L2 termination point attributes";
-      container l2-termination-point-attributes {
-        description "Containing L2 TP attributes";
-        leaf description {
-          type string;
-          description "Port description";
-        }
-
-        leaf maximum-frame-size {
-          type uint32;
-          description "Maximum frame size";
-        }
-
-        choice l2-termination-point-type {
-          description
-            "Indicates termination-point type
-             specific attributes";
-          case ethernet {
-            leaf mac-address {
-              type yang:mac-address;
-              description "Interface MAC address";
-            }
-
-            leaf eth-encapsulation {
-              type identityref {
-                base eth-encapsulation-type;
-              }
-              description
-                "Encapsulation type of this
-                 ternimation point.";
-            }
-
-            leaf port-vlan-id {
-              if-feature VLAN;
-              type vlan;
-              description "Port VLAN ID";
-            }
-
-            list vlan-id-name {
-              if-feature VLAN;
-              key "vlan-id";
-              description "Interface configured VLANs";
-              leaf vlan-id {
-                type vlan;
-                description "VLAN ID";
-              }
-              leaf vlan-name {
-                type string;
-                description "VLAN Name";
-              }
-            }
-          } //case ethernet
-
-          case legacy {
-            leaf encapsulation {
-              type identityref {
-                base encapsulation-type;
-              }
-              description
-                "Encapsulation type of this termination point.";
-            }
-          } //case legacy
-
-        } //choice termination-point-type
-
-        leaf tp-state {
-          type enumeration {
-            enum in-use {
-              value 0;
-              description
-                "the termination point is in forwarding state";
-            }
-            enum blocking {
-              value 1;
-              description
-                "the termination point is in blocking state";
-            }
-            enum down {
-              value 2;
-              description
-                "the termination point is in down state";
-            }
-            enum others {
-              value 3;
-              description
-                "the termination point is in other state";
-            }
-          }
-          config false;
-          description "State of the termination point";
-        }
-      }
-    } // grouping l2-termination-point-attributes
-
-/*** grouping of network/node/link/tp leaf-refs ***/
-
-  grouping network-ref {
-    description
-      "Grouping for an absolute reference to a network topology
-      instance.";
-    leaf network-ref {
-      type leafref {
-        path "/nw:network/nw:network-id";
-      }
-      description
-        "An absolute reference to a network topology instance.";
-    }
-  }
-
-  grouping link-ref {
-    description
-      "Grouping for an absolute reference to a link instance.";
-      uses network-ref;
-      leaf link-ref {
-        type leafref {
-          path "/nw:network"
-            +"[nw:network-id = current()/../network-ref]"
-            +"/nt:link/nt:link-id";
-        }
-      description
-        "An absolute reference to a link instance.";
-    }
-  }
-
-  grouping node-ref {
-    description
-      "Grouping for an absolute reference to a node instance.";
-    uses network-ref;
-    leaf node-ref {
-      type leafref {
-        path "/nw:network"
-          +"[nw:network-id = current()/../network-ref]"
-          +"/nw:node/nw:node-id";
-      }
-      description
-        "An absolute reference to a node instance.";
-    }
-  }
-
-  grouping tp-ref {
-    description
-      "Grouping for an absolute reference to a termination point.";
-    uses node-ref;
-    leaf tp-ref {
-      type leafref {
-        path "/nw:network"
-          +"[nw:network-id = current()/../network-ref]"
-          +"/nw:node[nw:node-id = current()/../node-ref]"
-          +"/nt:termination-point/nt:tp-id";
-      }
-      description
-        "Grouping for an absolute reference to a TP.";
-    }
-  }
-
-
-   /*
-    * Data nodes
-    */
-    augment "/nw:network/nw:network-types" {
-      description
-        "Introduce new network type for L2 topology";
-      uses l2-network-type;
-    }
-
-    augment "/nw:network" {
-      /* RIFT-Change: when not to be used yet
-      when "nw:network-types/l2-network" {
-        description
-          "Augmentation parameters apply only for networks
-           with L2 topology";
-      }
-      */
-      description
-        "Configuration parameters for the L2 network
-         as a whole";
-      uses l2-network-attributes;
-    }
-
-    augment "/nw:network/nw:node" {
-      /* RIFT-Change: when not to be used yet
-      when "../nw:network-types/l2-network" {
-        description
-          "Augmentation parameters apply only for networks
-           with L2 topology";
-      }
-      */
-      description
-        "Configuration parameters for L2 at the node
-         level";
-      uses l2-node-attributes;
-    }
-
-    augment "/nw:network/nt:link" {
-      /* RIFT-Change: when not to be used yet
-      when "/nw:network/nw:network-types/l2-network" {
-        description
-          "Augmentation parameters apply only for networks
-           with L2 topology";
-      }
-      */
-      description "Augment L2 topology link information";
-      uses l2-link-attributes;
-    }
-
-    augment "/nw:network/nw:node/nt:termination-point" {
-      /* RIFT-Change: when not to be used yet
-      when "/nw:network/nw:network-types/l2-network" {
-        description
-          "Augmentation parameters apply only for networks
-           with L2 topology";
-      }
-      */
-      description
-        "Augment L2 topology termination point configuration";
-      uses l2-termination-point-attributes;
-    }
-
-   /*
-    * Notifications
-    */
-
-    notification l2-node-event {
-      description "Notification event for L2 node";
-      leaf event-type {
-        type l2-network-event-type;
-        description "Event type";
-      }
-      uses node-ref;
-      uses l2-network-type;
-      uses l2-node-attributes;
-    }
-
-    notification l2-link-event {
-      description "Notification event for L2 link";
-      leaf event-type {
-        type l2-network-event-type;
-        description "Event type";
-      }
-      uses link-ref;
-      uses l2-network-type;
-      uses l2-link-attributes;
-    }
-
-    notification l2-termination-point-event {
-      description "Notification event for L2 termination point";
-      leaf event-type {
-        type l2-network-event-type;
-        description "Event type";
-      }
-      uses tp-ref;
-      uses l2-network-type;
-      uses l2-termination-point-attributes;
-    }
-
-}  // module l2-topology
diff --git a/models/plugins/yang/ietf-network-topology.yang b/models/plugins/yang/ietf-network-topology.yang
deleted file mode 100644 (file)
index e8f7c79..0000000
+++ /dev/null
@@ -1,257 +0,0 @@
-
-/*
- * NO RW COPYRIGHT
- *
- */
-
-module ietf-network-topology {
-   yang-version 1;
-   namespace "urn:ietf:params:xml:ns:yang:ietf-network-topology";
-   prefix lnk;
-
-   import ietf-inet-types {
-     prefix inet;
-   }
-   import ietf-network {
-     prefix nd;
-   }
-
-   organization "TBD";
-   contact
-     "WILL-BE-DEFINED-LATER";
-   description
-     "This module defines a common base model for network topology,
-      augmenting the base network model with links to connect nodes,
-      as well as termination points to terminate links on nodes.";
-
-   revision 2015-06-08 {
-     description
-       "Initial revision.";
-     reference "draft-ietf-i2rs-yang-network-topo-01";
-   }
-
-   typedef link-id {
-     type inet:uri;
-     description
-       "An identifier for a link in a topology.
-        The identifier may be opaque.
-        The identifier SHOULD be chosen such that the same link in a
-        real network topology will always be identified through the
-        same identifier, even if the model is instantiated in
-            separate datastores. An implementation MAY choose to capture
-        semantics in the identifier, for example to indicate the type
-        of link and/or the type of topology that the link is a part
-        of.";
-   }
-
-   typedef tp-id {
-     type inet:uri;
-     description
-       "An identifier for termination points on a node.
-        The identifier may be opaque.
-        The identifier SHOULD be chosen such that the same TP in a
-        real network topology will always be identified through the
-        same identifier, even if the model is instantiated in
-        separate datastores. An implementation MAY choose to capture
-        semantics in the identifier, for example to indicate the type
-        of TP and/or the type of node and topology that the TP is a
-        part of.";
-   }
-
-   grouping link-ref {
-     description
-       "References a link in a specific network.";
-     leaf link-ref {
-       type leafref {
-         path "/nd:network[nd:network-id=current()/../"+
-           "nd:network-ref]/link/link-id";
-       }
-       description
-         "A type for an absolute reference a link instance.
-          (This type should not be used for relative references.
-          In such a case, a relative path should be used instead.)";
-     }
-     uses nd:network-ref;
-   }
-
-   grouping tp-ref {
-     description
-       "References a termination point in a specific node.";
-     leaf tp-ref {
-       type leafref {
-         path "/nd:network[nd:network-id=current()/../"+
-           "nd:network-ref]/nd:node[nd:node-id=current()/../"+
-           "nd:node-ref]/termination-point/tp-id";
-       }
-       description
-         "A type for an absolute reference to a termination point.
-          (This type should not be used for relative references.
-          In such a case, a relative path should be used instead.)";
-     }
-     uses nd:node-ref;
-   }
-
-   augment "/nd:network" {
-     description
-       "Add links to the network model.";
-     list link {
-       key "link-id";
-
-       description
-         "A Network Link connects a by Local (Source) node and
-          a Remote (Destination) Network Nodes via a set of the
-          nodes' termination points.
-          As it is possible to have several links between the same
-          source and destination nodes, and as a link could
-          potentially be re-homed between termination points, to
-          ensure that we would always know to distinguish between
-          links, every link is identified by a dedicated link
-          identifier.
-          Note that a link models a point-to-point link, not a
-          multipoint link.
-          Layering dependencies on links in underlay topologies are
-          not represented as the layering information of nodes and of
-          termination points is sufficient.";
-       container source {
-         description
-           "This container holds the logical source of a particular
-            link.";
-         leaf source-node {
-           type leafref {
-             // RIFT change: 
-             path "../../../../nd:network/nd:node/nd:node-id";
-           }
-           mandatory true;
-           description
-             "Source node identifier, must be in same topology.";
-         }
-         leaf source-tp {
-           type leafref {
-             // RIFT change: 
-             path "../../../../nd:network/nd:node[nd:node-id=current()/../"+
-               "source-node]/termination-point/tp-id";
-           }
-           description
-             "Termination point within source node that terminates
-              the link.";
-         }
-       }
-       container destination {
-         description
-           "This container holds the logical destination of a
-            particular link.";
-         leaf dest-node {
-           type leafref {
-             // RIFT change 
-             path "../../../../nd:network/nd:node/nd:node-id";
-           }
-           mandatory true;
-           description
-             "Destination node identifier, must be in the same
-              network.";
-         }
-         leaf dest-tp {
-           type leafref {
-             // RIFT change: 
-             path "../../../../nd:network/nd:node[nd:node-id=current()/../"+
-               "dest-node]/termination-point/tp-id";
-           }
-           description
-             "Termination point within destination node that
-              terminates the link.";
-         }
-       }
-       leaf link-id {
-         type link-id;
-         description
-           "The identifier of a link in the topology.
-            A link is specific to a topology to which it belongs.";
-       }
-       list supporting-link {
-         key "network-ref link-ref";
-         description
-           "Identifies the link, or links, that this link
-            is dependent on.";
-         leaf network-ref {
-           type leafref {
-             // RIFT change: 
-             path "../../../../nd:network/nd:supporting-network/nd:network-ref";
-           }
-           description
-             "This leaf identifies in which underlay topology
-              supporting link is present.";
-         }
-         leaf link-ref {
-           type leafref {
-             path "/nd:network[nd:network-id=current()/.."+
-               "/network-ref]/link/link-id";
-           }
-           description
-             "This leaf identifies a link which is a part
-              of this link's underlay. Reference loops, in which
-              a link identifies itself as its underlay, either
-              directly or transitively, are not allowed.";
-         }
-       }
-     }
-   }
-   augment "/nd:network/nd:node" {
-     description
-       "Augment termination points which terminate links.
-        Termination points can ultimately be mapped to interfaces.";
-     list termination-point {
-       key "tp-id";
-       description
-         "A termination point can terminate a link.
-          Depending on the type of topology, a termination point
-          could, for example, refer to a port or an interface.";
-       leaf tp-id {
-         type tp-id;
-         description
-           "Termination point identifier.";
-       }
-       list supporting-termination-point {
-         key "network-ref node-ref tp-ref";
-         description
-           "The leaf list identifies any termination points that
-            the termination point is dependent on, or maps onto.
-            Those termination points will themselves be contained
-            in a supporting node.
-            This dependency information can be inferred from
-            the dependencies between links.  For this reason,
-            this item is not separately configurable.  Hence no
-            corresponding constraint needs to be articulated.
-            The corresponding information is simply provided by the
-            implementing system.";
-         leaf network-ref {
-           type leafref {
-             // RIFT change:
-             path "/nd:network/nd:node/nd:supporting-node/nd:network-ref"; 
-           }
-           description
-             "This leaf identifies in which topology the
-              supporting termination point is present.";
-         }
-         leaf node-ref {
-           type leafref {
-             // RIFT change: 
-             path "/nd:network/nd:node/nd:supporting-node/nd:node-ref";
-           }
-           description
-             "This leaf identifies in which node the supporting
-              termination point is present.";
-         }
-         leaf tp-ref {
-           type leafref {
-             path "/nd:network[nd:network-id=current()/../"+
-               "network-ref]/nd:node[nd:node-id=current()/../"+
-               "node-ref]/termination-point/tp-id";
-           }
-           description
-             "Reference to the underlay node, must be in a
-              different topology";
-         }
-       }
-     }
-   }
-}
diff --git a/models/plugins/yang/ietf-network.yang b/models/plugins/yang/ietf-network.yang
deleted file mode 100644 (file)
index 9308544..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-
-/*
- * NO RW COPYRIGHT
- *
- */
-
-module ietf-network {
-  yang-version 1;
-  namespace "urn:ietf:params:xml:ns:yang:ietf-network";
-  prefix nd;
-
-  import ietf-inet-types {
-    prefix inet;
-  }
-
-  organization "TBD";
-  contact
-    "WILL-BE-DEFINED-LATER";
-  description
-    "This module defines a common base model for a collection
-     of nodes in a network. Node definitions s are further used
-     in network topologies and inventories.";
-
-  revision 2015-06-08 {
-    description
-      "Initial revision.";
-    reference "draft-ietf-i2rs-yang-network-topo-01";
-  }
-
-  typedef node-id {
-    type inet:uri;
-    description
-      "Identifier for a node.";
-  }
-
-  typedef network-id {
-    type inet:uri;
-    description
-      "Identifier for a network.";
-  }
-
-  grouping network-ref {
-    description
-      "Contains the information necessary to reference a network,
-       for example an underlay network.";
-    leaf network-ref {
-      type leafref {
-        path "/network/network-id";
-      }
-      description
-        "Used to reference a network, for example an underlay
-         network.";
-    }
-  }
-
-  grouping node-ref {
-    description
-      "Contains the information necessary to reference a node.";
-    leaf node-ref {
-      type leafref {
-        path "/network[network-id=current()/../network-ref]"+
-          "/node/node-id";
-      }
-      description
-        "Used to reference a node.
-         Nodes are identified relative to the network they are
-         contained in.";
-    }
-    uses network-ref;
-  }
-
-  list network {
-    config false;
-    key "network-id";
-    description
-      "Describes a network.
-       A network typically contains an inventory of nodes,
-       topological information (augmented through
-       network-topology model), as well as layering
-       information.";
-    container network-types {
-      description
-        "Serves as an augmentation target.
-         The network type is indicated through corresponding
-         presence containers augmented into this container.";
-    }
-    leaf network-id {
-      type network-id;
-      description
-        "Identifies a network.";
-    }
-    leaf server-provided {
-      type boolean;
-      config false;
-      description
-        "Indicates whether the information concerning this
-         particular network is populated by the server
-         (server-provided true, the general case for network
-         information discovered from the server),
-         or whether it is configured by a client
-         (server-provided true, possible e.g. for
-         service overlays managed through a controller).";
-    }
-    list supporting-network {
-      key "network-ref";
-      description
-        "An underlay network, used to represent layered network
-         topologies.";
-
-      leaf network-ref {
-        type leafref {
-          path "/network/network-id";
-        }
-        description
-          "References the underlay network.";
-      }
-    }
-    list node {
-      key "node-id";
-      description
-        "The inventory of nodes of this network.";
-      leaf node-id {
-        type node-id;
-        description
-          "Identifies a node uniquely within the containing
-           network.";
-      }
-      list supporting-node {
-        key "network-ref node-ref";
-        description
-          "Represents another node, in an underlay network, that
-           this node is supported by.  Used to represent layering
-           structure.";
-        leaf network-ref {
-          type leafref {
-            path "../../../supporting-network/network-ref";
-          }
-          description
-            "References the underlay network that the
-             underlay node is part of.";
-        }
-        leaf node-ref {
-          type leafref {
-            path "/network/node/node-id";
-          }
-          description
-            "References the underlay node itself.";
-        }
-      }
-    }
-  }
-}
-
diff --git a/models/plugins/yang/mano-rift-groupings.yang b/models/plugins/yang/mano-rift-groupings.yang
deleted file mode 100644 (file)
index 7788724..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * 
- *   Copyright 2016-2017 RIFT.IO Inc
- *
- *   Licensed under the Apache License, Version 2.0 (the "License");
- *   you may not use this file except in compliance with the License.
- *   You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *   Unless required by applicable law or agreed to in writing, software
- *   distributed under the License is distributed on an "AS IS" BASIS,
- *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *   See the License for the specific language governing permissions and
- *   limitations under the License.
- *
- *
- */
-
- module mano-rift-groupings
-{
-  namespace "urn:ietf:params:xml:ns:yang:nfvo:mano-rift-groupings";
-  prefix "mano-rift";
-
-  import mano-types {
-    prefix "manotypes";
-  }
-
-  grouping custom-meta-data {
-    description "Grouping for instance-specific meta data";
-    list custom-meta-data {
-      description
-          "List of meta-data to be associated with the instance";
-      key "name";
-      leaf name {
-        description "Name of the meta-data parameter";
-        type string;
-      }
-
-      leaf data-type {
-        description "Data-type the meta-data parameter";
-        type manotypes:meta-data-type;
-        default "STRING";
-      }
-
-      leaf value {
-        description "Value of the meta-data parameter";
-        type string;
-      }
-
-      leaf destination {
-        description "Type of input parameter";
-        type enumeration {
-            enum "CLOUD_INIT";
-            enum "CLOUD_METADATA";
-        }
-        default "CLOUD_METADATA";
-      }
-    }
-  }
-
-  grouping volume-info-additions {
-       leaf boot-volume {
-      description "This flag indicates if this is boot volume or not";
-      type boolean;
-    }
-
-    leaf boot-priority {
-      description "Boot priority associated with volume";
-      type int32;
-    }
-  }
-
-  grouping http-end-point-additions {
-       leaf data {
-      description
-        "This is the data to be sent with POST ";
-      type  string;
-    }
-  }
-
-  grouping ssh-key-generated {
-       container ssh-key-generated {
-      description "SSH key pair generated for this NS";
-      leaf public-key {
-        description "Public key generated";
-        type string;
-      }
-      leaf private-key-file {
-        description "Path to the private key file";
-        type string;
-      }
-    }
-  }
-}
diff --git a/models/plugins/yang/mano-types.yang b/models/plugins/yang/mano-types.yang
deleted file mode 100644 (file)
index 8950c7a..0000000
+++ /dev/null
@@ -1,2190 +0,0 @@
-
-/*
- *
- *   Copyright 2016-2017 RIFT.IO Inc
- *
- *   Licensed under the Apache License, Version 2.0 (the "License");
- *   you may not use this file except in compliance with the License.
- *   You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *   Unless required by applicable law or agreed to in writing, software
- *   distributed under the License is distributed on an "AS IS" BASIS,
- *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *   See the License for the specific language governing permissions and
- *   limitations under the License.
- *
- *
- */
-
-module mano-types
-{
-  namespace "urn:ietf:params:xml:ns:yang:nfvo:mano-types";
-  prefix "manotypes";
-
-  import ietf-inet-types {
-    prefix "inet";
-  }
-
-  import rw-project {
-    prefix "rw-project";
-  }
-
-  revision 2017-02-08 {
-    description
-      "Update model to support projects.";
-  }
-
-  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 meta-data-type {
-    type enumeration {
-      enum STRING;
-    }
-  }
-
-  typedef package-type {
-      description "Type of descriptor being on-boarded";
-      type enumeration {
-        enum NSD;
-        enum VNFD;
-      }
-    }
-
-  typedef parameter-data-type {
-    type enumeration {
-      enum STRING;
-      enum INTEGER;
-      enum BOOLEAN;
-    }
-  }
-
-  grouping primitive-parameter-value {
-    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;
-      }
-    }
-  }
-
-  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 parameter";
-      type string;
-    }
-
-    leaf read-only {
-      description
-        "The value should be dimmed by the UI.
-        Only applies to parameters with default values.";
-      type boolean;
-      default false;
-    }
-
-    leaf hidden {
-      description
-        "The value should be hidden by the UI.
-        Only applies to parameters with default values.";
-      type boolean;
-      default false;
-    }
-  }
-
-  grouping ui-primitive-group {
-    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 for the service primitive.";
-        key "name";
-        uses manotypes:primitive-parameter;
-      }
-
-      leaf mandatory {
-        description "Is this parameter group mandatory";
-        type boolean;
-        default true;
-      }
-    }
-  }
-
-  grouping event-config {
-    leaf seq {
-      description
-          "Sequence number for the configuration primitive.";
-      type uint64;
-    }
-
-    leaf name {
-      description
-          "Name of the configuration primitive.";
-      type string;
-      mandatory "true";
-    }
-
-    leaf user-defined-script {
-      description
-          "A user defined script.";
-      type string;
-    }
-
-    list parameter {
-      key "name";
-      leaf name {
-        type string;
-      }
-
-      leaf value {
-        description "Value of the configuration primitive.";
-        type string;
-      }
-    }
-  }
-  
- grouping image-properties {
-    leaf image {
-      description
-            "Image name for the software image.
-             If the image name is found within the VNF package it will
-             be uploaded to all VIM accounts during onboarding process.
-             Otherwise, the image must be added to the VIM account with
-             the same name as entered here.
-            ";
-      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;
-    }
-  }
-
-
-  grouping vca-relationships {
-    container vca-relationships {
-      list relation {
-        description "List of relations between VCA componets.";
-
-        key "requires provides";
-
-        leaf requires {
-          description
-            "Name of the required relation.";
-          type string;
-        }
-
-        leaf provides {
-          description
-            "Name of the provided relation.";
-          type string;
-        }
-      }
-    }
-  }
-
-  grouping vca-configuration {
-    description
-        "Information about the VNF or VDU configuration. Note:
-         If the NS contains multiple instances of the
-         same VNF or VDU, each instance could have a different
-         configuration.";
-
-    choice config-method {
-      description
-          "Defines the configuration method for the VNF or VDU.";
-      case script {
-        description
-            "Use custom script for configuring the VNF or VDU.
-             This script is executed in the context of
-             Orchestrator (The same system and environment
-             as the Launchpad).";
-        container script {
-          leaf script-type {
-            description
-                "Script type - currently supported - Scripts confirming to Rift CA plugin";
-            type enumeration {
-              enum rift;
-            }
-          }
-        }
-      }
-
-      case juju {
-        description
-          "Configure the VNF or VDU through Juju.";
-        container juju {
-          leaf charm {
-            description "Juju charm to use with the VNF or VDU.";
-            type string;
-          }
-          uses manotypes:vca-relationships;
-        }
-      }
-    }
-
-    list config-primitive {
-      description
-        "List of config primitives supported by the
-        configuration agent for this VNF or VDU.";
-      key "name";
-
-      leaf name {
-        description
-          "Name of the config primitive.";
-        type string;
-      }
-
-      list parameter {
-        description
-          "List of parameters to the config primitive.";
-        key "name";
-        uses primitive-parameter;
-      }
-
-      leaf user-defined-script {
-        description
-          "A user defined script. If user defined script is defined,
-           the script will be executed using bash";
-        type string;
-      }
-    }
-
-    list initial-config-primitive {
-      description
-        "Initial set of configuration primitives.";
-      key "seq";
-      leaf seq {
-        description
-          "Sequence number for the configuration primitive.";
-        type uint64;
-      }
-
-      choice primitive-type {
-        case primitive-definition {
-          leaf name {
-            description
-              "Name of the configuration primitive.";
-            type string;
-          }
-
-          uses primitive-parameter-value;
-
-          leaf user-defined-script {
-            description
-              "A user defined script.";
-            type string;
-          }
-        }
-      }
-    }
-  } // END - grouping vca-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 ELINE;
-      // enum ETREE;
-    }
-  }
-
-  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 parameters";
-
-    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 implementation to extract a value.
-       OBJECTPATH - Use objectpath implementation 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: Physical Port.";
-
-    type enumeration {
-      enum VPORT;
-    }
-  }
-
-  typedef widget-type {
-    description
-        "Type of the widget, typically used by the UI.";
-    type enumeration {
-      enum COUNTER;
-      enum GAUGE;
-      enum TEXTBOX;
-      enum SLIDER;
-      enum HISTOGRAM;
-      enum BAR;
-    }
-  }
-
-  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;
-      enum REQUIRE_VME;
-      enum PREFER_VME;
-      enum REQUIRE_DE;
-      enum PREFER_DE;
-      enum REQUIRE_PSE;
-      enum PREFER_PSE;
-      enum REQUIRE_TSC;
-      enum PREFER_TSC;
-      enum REQUIRE_MSR;
-      enum PREFER_MSR;
-      enum REQUIRE_PAE;
-      enum PREFER_PAE;
-      enum REQUIRE_MCE;
-      enum PREFER_MCE;
-      enum REQUIRE_CX8;
-      enum PREFER_CX8;
-      enum REQUIRE_APIC;
-      enum PREFER_APIC;
-      enum REQUIRE_SEP;
-      enum PREFER_SEP;
-      enum REQUIRE_MTRR;
-      enum PREFER_MTRR;
-      enum REQUIRE_PGE;
-      enum PREFER_PGE;
-      enum REQUIRE_MCA;
-      enum PREFER_MCA;
-      enum REQUIRE_CMOV;
-      enum PREFER_CMOV;
-      enum REQUIRE_PAT;
-      enum PREFER_PAT;
-      enum REQUIRE_PSE36;
-      enum PREFER_PSE36;
-      enum REQUIRE_CLFLUSH;
-      enum PREFER_CLFLUSH;
-      enum REQUIRE_DTS;
-      enum PREFER_DTS;
-      enum REQUIRE_ACPI;
-      enum PREFER_ACPI;
-      enum REQUIRE_MMX;
-      enum PREFER_MMX;
-      enum REQUIRE_FXSR;
-      enum PREFER_FXSR;
-      enum REQUIRE_SSE;
-      enum PREFER_SSE;
-      enum REQUIRE_SSE2;
-      enum PREFER_SSE2;
-      enum REQUIRE_SS;
-      enum PREFER_SS;
-      enum REQUIRE_HT;
-      enum PREFER_HT;
-      enum REQUIRE_TM;
-      enum PREFER_TM;
-      enum REQUIRE_IA64;
-      enum PREFER_IA64;
-      enum REQUIRE_PBE;
-      enum PREFER_PBE;
-      enum REQUIRE_RDTSCP;
-      enum PREFER_RDTSCP;
-      enum REQUIRE_PNI;
-      enum PREFER_PNI;
-      enum REQUIRE_PCLMULQDQ;
-      enum PREFER_PCLMULQDQ;
-      enum REQUIRE_DTES64;
-      enum PREFER_DTES64;
-      enum REQUIRE_MONITOR;
-      enum PREFER_MONITOR;
-      enum REQUIRE_DS_CPL;
-      enum PREFER_DS_CPL;
-      enum REQUIRE_VMX;
-      enum PREFER_VMX;
-      enum REQUIRE_SMX;
-      enum PREFER_SMX;
-      enum REQUIRE_EST;
-      enum PREFER_EST;
-      enum REQUIRE_TM2;
-      enum PREFER_TM2;
-      enum REQUIRE_SSSE3;
-      enum PREFER_SSSE3;
-      enum REQUIRE_CID;
-      enum PREFER_CID;
-      enum REQUIRE_FMA;
-      enum PREFER_FMA;
-      enum REQUIRE_CX16;
-      enum PREFER_CX16;
-      enum REQUIRE_XTPR;
-      enum PREFER_XTPR;
-      enum REQUIRE_PDCM;
-      enum PREFER_PDCM;
-      enum REQUIRE_PCID;
-      enum PREFER_PCID;
-      enum REQUIRE_DCA;
-      enum PREFER_DCA;
-      enum REQUIRE_SSE4_1;
-      enum PREFER_SSE4_1;
-      enum REQUIRE_SSE4_2;
-      enum PREFER_SSE4_2;
-      enum REQUIRE_X2APIC;
-      enum PREFER_X2APIC;
-      enum REQUIRE_MOVBE;
-      enum PREFER_MOVBE;
-      enum REQUIRE_POPCNT;
-      enum PREFER_POPCNT;
-      enum REQUIRE_TSC_DEADLINE_TIMER;
-      enum PREFER_TSC_DEADLINE_TIMER;
-      enum REQUIRE_XSAVE;
-      enum PREFER_XSAVE;
-      enum REQUIRE_AVX;
-      enum PREFER_AVX;
-      enum REQUIRE_F16C;
-      enum PREFER_F16C;
-      enum REQUIRE_RDRAND;
-      enum PREFER_RDRAND;
-      enum REQUIRE_FSGSBASE;
-      enum PREFER_FSGSBASE;
-      enum REQUIRE_BMI1;
-      enum PREFER_BMI1;
-      enum REQUIRE_HLE;
-      enum PREFER_HLE;
-      enum REQUIRE_AVX2;
-      enum PREFER_AVX2;
-      enum REQUIRE_SMEP;
-      enum PREFER_SMEP;
-      enum REQUIRE_BMI2;
-      enum PREFER_BMI2;
-      enum REQUIRE_ERMS;
-      enum PREFER_ERMS;
-      enum REQUIRE_INVPCID;
-      enum PREFER_INVPCID;
-      enum REQUIRE_RTM;
-      enum PREFER_RTM;
-      enum REQUIRE_MPX;
-      enum PREFER_MPX;
-      enum REQUIRE_RDSEED;
-      enum PREFER_RDSEED;
-      enum REQUIRE_ADX;
-      enum PREFER_ADX;
-      enum REQUIRE_SMAP;
-      enum PREFER_SMAP;
-    }
-  }
-
-  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 vm-flavor-name {
-       leaf vm-flavor-name {
-               description "flavor name to be used while creating vm using cloud account";
-               type string;
-       }
-       }
-
-  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 uint64;
-      }
-
-      leaf cpu-core-count {
-        description "Number of cores on the host.";
-        type uint64;
-      }
-
-      leaf cpu-core-thread-count {
-        description "Number of threads per cores on the host.";
-        type uint64;
-      }
-
-      list cpu-feature {
-        key "feature";
-        description "List of CPU features.";
-        leaf feature {
-          description "CPU feature.";
-          type cpu-feature-type;
-        }
-      }
-
-
-      leaf om-cpu-model-string {
-        description "OpenMANO CPU model string";
-        type string;
-      }
-
-      list om-cpu-feature {
-        key "feature";
-        description "List of OpenMANO CPU features";
-        leaf feature {
-          description "CPU feature";
-          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 choose 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 prefers 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-unaware {
-          leaf numa-unaware {
-            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 might need 8 VCPUs and 4 GB of
-                 memory. However, it might need the VCPUs
-                 and memory distributed across multiple
-                 NUMA nodes. In this scenario, NUMA node
-                 1 could run with 6 VCPUs and 3GB, and
-                 NUMA node 2 could 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
-                               preferentially 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;
-              }
-
-              list vcpu {
-                key "id";
-                description
-                    "List of VCPUs to allocate on
-                     this NUMA node.";
-                leaf id {
-                  type uint64;
-                  description "List of VCPUs ids to allocate on
-                               this NUMA node";
-                }
-              }
-
-              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 physical network on which the provider
-             network is built.";
-        type string;
-      }
-
-      leaf segmentation_id {
-        description
-            "ID of segregated virtual networks";
-            type uint32;
-      }
-    }
-  }
-
-  grouping ns-service-primitive {
-    list service-primitive {
-      description
-          "Network service level service primitives.";
-
-      key "name";
-
-      leaf name {
-        description
-            "Name of the service primitive.";
-        type string;
-      }
-
-      list parameter {
-        description
-            "List of parameters for the service 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 for the service 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 service 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 resolved 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
-          "Method that the URI should perform.
-           Deafult action is GET.";
-
-        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 network service 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 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;
-        }
-      }
-
-      uses monitoring-param-ui-data;
-      uses monitoring-param-value;
-
-    }
-  }
-
-  grouping monitoring-param-aggregation {
-    typedef aggregation-type {
-      description "aggregation-type";
-      type enumeration {
-        enum AVERAGE;
-        enum MINIMUM;
-        enum MAXIMUM;
-        enum COUNT;
-        enum SUM;
-      }
-    }
-
-    leaf aggregation-type {
-      type aggregation-type;
-    }
-  }
-
-  grouping monitoring-param-ui-data {
-      leaf description {
-        type string;
-      }
-
-      leaf group-tag {
-        description "A tag to group monitoring parameters";
-        type string;
-      }
-
-
-      leaf widget-type {
-        description "Defines the UI Display variant of measured counters.";
-        type manotypes:widget-type;
-        default "COUNTER";
-      }
-
-      leaf units {
-        description "Measured Counter Units (e.g., Packets, Kbps, Mbps, etc.)";
-        type string;
-      }
-  }
-
-  grouping monitoring-param-value {
-      leaf value-type {
-        type param-value-type;
-        default "INT";
-      }
-
-      container numeric-constraints {
-        leaf min-value {
-          description
-              "Minimum value for the parameter";
-          type uint64;
-        }
-        leaf max-value {
-          description
-              "Maximum 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;
-      }
-  }
-
-  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 {
-        description "Identifier for control parameter";
-        type string;
-      }
-
-      leaf name {
-        description "Name of a control parameter";
-        type string;
-      }
-
-      leaf description {
-        description "A description of the control parameter";
-        type string;
-      }
-
-      leaf group-tag {
-        description "A tag to group control parameters";
-        type string;
-      }
-
-      leaf min-value {
-        description
-            "Minimum value for the parameter";
-        type uint64;
-      }
-
-      leaf max-value {
-        description
-            "Maximum 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 the operation should be performed.";
-
-        type inet:uri;
-      }
-
-      leaf method {
-        description
-          "Method that the URI should perform.
-           Default Action is POST";
-
-        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 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 of input parameters that can be specified when instantiating a network service.";
-
-    list input-parameter {
-      description
-          "List of input parameters";
-
-      key xpath;
-
-
-      leaf xpath {
-        description
-          "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 "Default Value for the 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 urgency 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
-        "Statistic type to use 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 in certain scenarios, such as if 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 VIM provider";
-
-      type string;
-    }
-
-    leaf name {
-      description "A human readable string to identify the alarm";
-      type string;
-    }
-
-    leaf description {
-      description "A description of this alarm";
-      type string;
-    }
-
-    leaf vdur-id {
-      description
-          "The identifier of the VDUR that the alarm is associated with";
-      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 importance 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 used to define whether an alarm should be
-           triggered in certain scenarios, such as if the metric statistic
-           goes above or below a specified 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
-          "Defines the length of time (seconds) in which metric data are
-           collected in order to evaluate the chosen statistic.";
-      type uint32;
-    }
-  }
-
-  typedef cloud-account-type {
-    description "VIM account type";
-    type enumeration {
-      enum aws;
-      enum cloudsim;
-      enum cloudsim_proxy;
-      enum mock;
-      enum openmano;
-      enum openstack;
-      enum vsphere;
-      enum openvim;
-    }
-  }
-
-  grouping host-aggregate {
-    list host-aggregate {
-      description "Name of the Host Aggregate";
-      key "metadata-key";
-
-      leaf metadata-key {
-        description
-            "Name of the additional information attached to the host-aggregate";
-        type string;
-      }
-      leaf metadata-value {
-        description
-            "Value of the corresponding metadata-key";
-        type string;
-      }
-    }
-  }
-
-  grouping placement-group-input {
-    leaf cloud-type {
-      type manotypes:cloud-account-type;
-    }
-    choice cloud-provider {
-      case openstack {
-        container availability-zone {
-          description "Name of the Availability Zone";
-          leaf name {
-            type string;
-          }
-        }
-        container server-group {
-          description "Name of the Affinity/Anti-Affinity Server Group";
-          leaf name {
-            type string;
-          }
-        }
-        uses host-aggregate;
-      }
-      case aws {
-        leaf aws-construct {
-          type empty;
-        }
-      }
-      case openmano {
-        leaf openmano-construct {
-          type empty;
-        }
-      }
-      case vsphere {
-        leaf vsphere-construct {
-          type empty;
-        }
-      }
-      case mock {
-        leaf mock-construct {
-          type empty;
-        }
-      }
-      case cloudsim {
-        leaf cloudsim-construct {
-          type empty;
-        }
-      }
-    }
-  }
-
-  grouping cloud-config {
-    list key-pair {
-      key "name";
-      description "Used to configure the list of public keys to be injected as part
-          of ns instantiation";
-
-      leaf name {
-        description "Name of this key pair";
-        type string;
-      }
-
-      leaf key {
-        description "Key associated with this key pair";
-        type string;
-      }
-    }
-
-    list user {
-      key "name";
-      description "List of users to be added through cloud-config";
-
-      leaf name {
-        description "Name of the user ";
-        type string;
-      }
-
-      leaf user-info {
-        description "The user name's real name";
-        type string;
-      }
-
-      list key-pair {
-        key "name";
-        description "Used to configure the list of public keys to be injected as part
-            of ns instantiation";
-
-        leaf name {
-          description "Name of this key pair";
-          type string;
-        }
-
-        leaf key {
-          description "Key associated with this key pair";
-          type string;
-        }
-      }
-    }
-  }
-
-  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";
-    }
-  }
-
-  grouping ip-profile-info {
-    description "Grouping for IP-Profile";
-    container ip-profile-params {
-
-      leaf ip-version {
-        type inet:ip-version;
-        default ipv4;
-      }
-
-      leaf subnet-address {
-        description "Subnet IP prefix associated with IP Profile";
-        type inet:ip-prefix;
-      }
-
-      leaf gateway-address {
-        description "IP Address of the default gateway associated with IP Profile";
-        type inet:ip-address;
-      }
-
-      leaf security-group {
-        description "Name of the security group";
-        type string;
-      }
-
-      list dns-server {
-        key "address";
-        leaf address {
-          description "List of DNS Servers associated with IP Profile";
-          type inet:ip-address;
-        }
-      }
-
-      container dhcp-params {
-        leaf enabled {
-          description "This flag indicates if DHCP is enabled or not";
-          type boolean;
-          default true;
-        }
-
-        leaf start-address {
-          description "Start IP address of the IP-Address range associated with DHCP domain";
-          type inet:ip-address;
-        }
-
-        leaf count {
-          description "Size of the DHCP pool associated with DHCP domain";
-          type uint32;
-        }
-      }
-
-      leaf subnet-prefix-pool {
-        description "VIM Specific reference to pre-created subnet prefix";
-        type string;
-      }
-    }
-  }
-
-  grouping ip-profile-list {
-    list ip-profiles {
-      description
-          "List of IP Profiles.
-             IP Profile describes the IP characteristics for the Virtual-Link";
-
-      key "name";
-
-      leaf name {
-        description "Name of the IP-Profile";
-        type string;
-      }
-
-      leaf description {
-        description "Description for IP profile";
-        type string;
-      }
-
-      uses ip-profile-info;
-    }
-  }
-
-  grouping config-file {
-    description "Grouping for files needed to be mounted into an additional drive";
-    list config-file {
-      description
-          "List of configuration files to be written on an additional drive";
-      key "source";
-      leaf source {
-        description "Name of the configuration file";
-        type string;
-      }
-      leaf dest {
-        description "Full path of the destination in the guest";
-        type string;
-      }
-    }
-  }
-
-  grouping supplemental-boot-data {
-    description "Grouping for custom vim data";
-    container supplemental-boot-data {
-      uses manotypes:config-file;
-      leaf boot-data-drive {
-        description "Some VIMs implement additional drives to host config-files or meta-data";
-        type boolean;
-        default false;
-      }
-    }
-  }
-
-  grouping volume-info {
-    description "Grouping for Volume-info";
-
-    leaf description {
-      description "Description for Volume";
-      type string;
-    }
-
-    leaf size {
-      description "Size of disk in GB";
-      type uint64;
-    }
-
-    choice volume-source {
-      description
-            "Defines the source of the volume. Possible options are
-             1. Ephemeral -- Empty disk
-             2. Image     -- Refer to image to be used for volume
-             3. Volume    -- Reference of pre-existing volume to be used
-            ";
-
-      case ephemeral {
-        leaf ephemeral {
-          type empty;
-        }
-      }
-
-      case image {
-        uses image-properties;
-      }
-    }
-
-    leaf device-bus {
-      description "Type of disk-bus on which this disk is exposed to guest";
-      type enumeration {
-        enum ide;
-        enum usb;
-        enum virtio;
-        enum scsi;
-      }
-    }
-
-    leaf device-type {
-      description "The type of device as exposed to guest";
-      type enumeration {
-          enum disk;
-          enum cdrom;
-          enum floppy;
-          enum lun;
-      }
-    }
-  }
-
-  grouping rpc-project-name {
-    leaf project-name {
-      default "default";
-      description
-        "Project to which this belongs";
-      type leafref {
-        path "/rw-project:project/rw-project:name";
-      }
-    }
-  }
-}
diff --git a/models/plugins/yang/nsd-base.yang b/models/plugins/yang/nsd-base.yang
deleted file mode 100644 (file)
index c332869..0000000
+++ /dev/null
@@ -1,781 +0,0 @@
-
-/*
- * 
- *   Copyright 2017 RIFT.IO Inc
- *
- *   Licensed under the Apache License, Version 2.0 (the "License");
- *   you may not use this file except in compliance with the License.
- *   You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *   Unless required by applicable law or agreed to in writing, software
- *   distributed under the License is distributed on an "AS IS" BASIS,
- *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *   See the License for the specific language governing permissions and
- *   limitations under the License.
- *
- *
- */
-
-module nsd-base
-{
-  namespace "http://riftio.com/ns/riftware-1.0/nsd-base";
-  prefix "nsd-base";
-
-  import ietf-inet-types {
-    prefix "inet";
-  }
-
-  import mano-types {
-    prefix "manotypes";
-  }
-
-  revision 2017-02-28 {
-    description
-      "Initial revision. This YANG file defines
-       the Network Service Descriptor (NSD)
-       common groupings";
-    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;
-      }
-    }
-  }
-
-  typedef scaling-policy-type {
-    type enumeration {
-      enum manual {
-        value 1;
-      }
-      enum automatic {
-        value 2;
-      }
-    }
-  }
-
-  typedef scaling-criteria-operation {
-    type enumeration {
-      enum AND {
-        value 1;
-      }
-      enum OR {
-        value 2;
-      }
-    }
-  }
-
-  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 parameter";
-      type string;
-    }
-  }
-
-  grouping nsd-descriptor-common {
-    leaf id {
-      description "Identifier for the NSD.";
-      type string {
-        length 1..63;
-      }
-    }
-
-    leaf name {
-      description "NSD name.";
-      mandatory true;
-      type string;
-    }
-
-    leaf short-name {
-      description "Short name to appear as label in the UI";
-      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;
-      }
-    }
-
-    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 scaling-policy {
-
-        key "name";
-
-        leaf name {
-          description
-              "Name of the scaling policy";
-          type string;
-        }
-
-        leaf scaling-type {
-          description
-              "Type of scaling";
-          type scaling-policy-type;
-        }
-
-        leaf enabled {
-          description
-            "Specifies if the scaling policy can be applied";
-          type boolean;
-          default true;
-        }
-
-        leaf scale-in-operation-type {
-          description
-              "Operation to be applied to check between scaling criterias to
-               check if the scale in threshold condition has been met.
-               Defaults to AND";
-          type scaling-criteria-operation;
-          default AND;
-        }
-
-        leaf scale-out-operation-type {
-          description
-              "Operation to be applied to check between scaling criterias to
-               check if the scale out threshold condition has been met.
-               Defauls to OR";
-          type scaling-criteria-operation;
-          default OR;
-        }
-
-        leaf threshold-time {
-          description
-            "The duration for which the criteria must hold true";
-          type uint32;
-          mandatory true;
-        }
-
-        leaf cooldown-time {
-          description
-            "The duration after a scaling-in/scaling-out action has been
-            triggered, for which there will be no further optional";
-          type uint32;
-          mandatory true;
-        }
-
-        list scaling-criteria {
-          description
-              "list of conditions to be met for generating scaling
-                 requests";
-          key "name";
-
-          leaf name {
-            type string;
-          }
-
-          leaf scale-in-threshold {
-            description
-                "Value below which scale-in requests are generated";
-            type uint64;
-          }
-
-          leaf scale-out-threshold {
-            description
-                "Value above which scale-out requests are generated";
-            type uint64;
-          }
-
-          leaf ns-monitoring-param-ref {
-            description
-               "Reference to the NS level monitoring parameter
-                that is aggregated";
-            type leafref {
-              path "../../../../monitoring-param/id";
-            }
-          }
-        }
-      }
-
-      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-service-primitive-name-ref {
-          description "Reference to the NS service primitive";
-          type leafref {
-            path "../../../service-primitive/name";
-          }
-        }
-      }
-    }
-
-
-    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 to appear as label in the 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 "../../../../constituent-vnfd/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";
-
-             type leafref {
-                path "../../../../constituent-vnfd" +
-                     "[member-vnf-index = current()/../member-vnf-index-ref]" +
-                     "/vnfd-id-ref";
-             }
-           }
-
-          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 resolved this will switched to use
-                  leafref";
-            // TODO: Keeping as string as this needs to be
-            // diffenent lvel based of if it is nsd-catalog or
-            // in nsr.
-            // type leafref {
-            //   path "../../../../../../vnfd:vnfd-catalog/vnfd:vnfd" +
-            //        "[vnfd:id = current()/../vnfd-id-ref]/" +
-            //        "vnfd:connection-point/vnfd:name";
-            // }
-            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 "../../rsp/id";
-          }
-        }
-
-        leaf member-vnf-index-ref {
-          description "Reference to member-vnf within constituent-vnfds";
-          type leafref {
-            path "../../../constituent-vnfd/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";
-
-          type leafref {
-              path "../../../constituent-vnfd" +
-                   "[member-vnf-index = current()/../member-vnf-index-ref]" +
-                   "/vnfd-id-ref";
-          }
-        }
-
-        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 resolved this will switched to use
-                  leafref";
-          // TODO: Keeping as string as this needs to be
-          // diffenent lvel based of if it is nsd-catalog or
-          // in nsr.
-          // type leafref {
-          //     path "../../../../../vnfd:vnfd-catalog/vnfd:vnfd" +
-          //          "[vnfd:id = current()/../vnfd-id-ref]/" +
-          //          "vnfd:connection-point/vnfd:name";
-          // }
-          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:ip-profile-list;
-
-    list initial-service-primitive {
-      description
-        "Initial set of service primitives for NSD.";
-      key "seq";
-
-      uses manotypes:event-config;
-    }
-
-    list terminate-service-primitive {
-      description
-        "Set of service primitives during
-         termination for NSD.";
-      key "seq";
-
-      uses manotypes:event-config;
-    }
-
-    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;
-        }
-      }
-    }
-
-    list key-pair {
-      key "name";
-      description "Used to configure the list of public keys to be injected as part
-          of ns instantiation";
-
-      leaf name {
-        description "Name of this key pair";
-        type string;
-      }
-
-      leaf key {
-        description "Key associated with this key pair";
-        type string;
-      }
-    }
-
-    list user {
-      key "name";
-      description "List of users to be added through cloud-config";
-
-      leaf name {
-        description "Name of the user ";
-        type string;
-      }
-
-      leaf user-info {
-        description "The user name's real name";
-        type string;
-      }
-
-      list key-pair {
-        key "name";
-        description "Used to configure the list of public keys to be injected as part
-            of ns instantiation";
-
-        leaf name {
-          description "Name of this key pair";
-          type string;
-        }
-
-        leaf key {
-          description "Key associated with this key pair";
-          type string;
-        }
-      }
-    }
-  }
-
-  grouping nsd-vld-common {
-    /* Still having issues modelling this,
-       see the comments under vnfd-connection-point-ref
-    */
-    description
-      "List of Virtual Link Descriptors.";
-
-    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 to appear as label in the 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;
-    }
-
-    // replicate for pnfd container here
-    uses manotypes:provider-network;
-
-    leaf mgmt-network {
-      description "Flag indicating whether this network is a VIM management network";
-      type boolean;
-      default false;
-    }
-
-    choice init-params {
-      description "Extra parameters for VLD instantiation";
-
-      case vim-network-ref {
-        leaf vim-network-name {
-          description
-            "Name of network in VIM account. This is used to indicate
-                   pre-provisioned network name in cloud account.";
-          type string;
-        }
-      }
-
-      case vim-network-profile {
-        leaf ip-profile-ref {
-          description "Named reference to IP-profile object";
-          type leafref {
-            path "../../ip-profiles/name";
-          }
-        }
-      }
-
-    }
-  }
-
-  grouping monitoring-param-common {
-    description
-      "List of monitoring parameters from VNF's that should be
-        propogated up into NSR";
-
-    leaf id {
-      type string;
-    }
-
-    leaf name {
-      type string;
-    }
-
-    uses manotypes:monitoring-param-value;
-    uses manotypes:monitoring-param-ui-data;
-    uses manotypes:monitoring-param-aggregation;
-  }
-}
diff --git a/models/plugins/yang/nsd.yang b/models/plugins/yang/nsd.yang
deleted file mode 100644 (file)
index 4a88eac..0000000
+++ /dev/null
@@ -1,319 +0,0 @@
-
-/*
- *
- *   Copyright 2016-2017 RIFT.IO Inc
- *
- *   Licensed under the Apache License, Version 2.0 (the "License");
- *   you may not use this file except in compliance with the License.
- *   You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *   Unless required by applicable law or agreed to in writing, software
- *   distributed under the License is distributed on an "AS IS" BASIS,
- *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *   See the License for the specific language governing permissions and
- *   limitations under the License.
- *
- *
- */
-
-module nsd
-{
-  namespace "urn:ietf:params:xml:ns:yang:nfvo:nsd";
-  prefix "nsd";
-
-  import vnfd {
-    prefix "vnfd";
-  }
-
-  import nsd-base {
-    prefix "nsd-base";
-  }
-
-  import mano-types {
-    prefix "manotypes";
-  }
-
-  revision 2017-02-28 {
-    description
-      "Update model to support projects.";
-  }
-
-  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";
-  }
-
-  grouping nsd-constituent-vnfd {
-    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;
-      }
-    }
-  }
-
-  grouping nsd-vld {
-    list vld {
-
-      key "id";
-
-      uses nsd-base:nsd-vld-common;
-
-      list vnfd-connection-point-ref {
-        description
-            "A list of references to connection points.";
-        key "member-vnf-index-ref vnfd-connection-point-ref";
-
-        leaf member-vnf-index-ref {
-          description "Reference to member-vnf within constituent-vnfds";
-          type leafref {
-            path "../../../constituent-vnfd/member-vnf-index";
-          }
-        }
-
-        leaf vnfd-id-ref {
-          description
-              "A reference to a VNFD";
-          type leafref {
-            path "../../../constituent-vnfd" +
-                 "[member-vnf-index = current()/../member-vnf-index-ref]" +
-                 "/vnfd-id-ref";
-          }
-        }
-
-        leaf vnfd-connection-point-ref {
-          description "A reference to a connection point name";
-          type leafref {
-            path "/vnfd:vnfd-catalog/vnfd:vnfd" +
-                 "[vnfd:id = current()/../vnfd-id-ref]/" +
-                 "vnfd:connection-point/vnfd:name";
-          }
-        }
-      }
-    }
-  }
-
-  grouping nsd-vnf-dependency {
-    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";
-        }
-      }
-    }
-  }
-
-  grouping nsd-placement-groups {
-    list placement-groups {
-      description "List of placement groups at NS level";
-
-      key "name";
-      uses manotypes:placement-group-info;
-
-      list member-vnfd {
-        description
-            "List of VNFDs that are part of this placement 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 "../../../constituent-vnfd" + 
-                 "[member-vnf-index = current()/../member-vnf-index-ref]" +
-                 "/vnfd-id-ref";
-          }
-        }
-      }
-    }
-  }
-
-  grouping nsd-monitoring-param {
-
-    list monitoring-param {
-      key id;
-
-      uses nsd-base:monitoring-param-common;
-
-      list vnfd-monitoring-param {
-        description "A list of VNFD monitoring params";
-        key "member-vnf-index-ref vnfd-monitoring-param-ref";
-
-        leaf vnfd-id-ref {
-          description
-             "A reference to a VNFD. This is a leafref";
-
-          type leafref {
-            path "../../../constituent-vnfd" +
-                 "[member-vnf-index = current()/../member-vnf-index-ref]" +
-                 "/vnfd-id-ref";
-          }
-        }
-
-        leaf vnfd-monitoring-param-ref {
-          description "A reference to the VNFD monitoring param";
-          type leafref {
-            path "/vnfd:vnfd-catalog/vnfd:vnfd"
-              + "[vnfd:id = current()/../vnfd-id-ref]"
-              + "/vnfd:monitoring-param/vnfd:id";
-          }
-        }
-
-        leaf member-vnf-index-ref {
-          description
-            "Mandatory reference to member-vnf within constituent-vnfds";
-          type leafref {
-            path "../../../constituent-vnfd/member-vnf-index";
-          }
-        }
-      }
-    }
-  }
-
-  grouping nsd-service-primitive {
-   list service-primitive {
-      description
-          "Network service level service primitives.";
-
-      key "name";
-
-      leaf name {
-        description
-            "Name of the service primitive.";
-        type string;
-      }
-
-      list parameter {
-        description
-            "List of parameters for the service primitive.";
-
-        key "name";
-        uses manotypes:primitive-parameter;
-      }
-
-      uses manotypes:ui-primitive-group;
-
-      list vnf-primitive-group {
-        description
-            "List of service primitives grouped by VNF.";
-
-        key "member-vnf-index-ref";
-        leaf member-vnf-index-ref {
-          description
-              "Reference to member-vnf within constituent-vnfds";
-          type leafref {
-             path "../../../constituent-vnfd/member-vnf-index";
-          }
-        }
-
-        leaf vnfd-id-ref {
-          description
-              "A reference to a VNFD. This is a leafref";
-
-          type leafref {
-             path "../../../constituent-vnfd" +
-                "[member-vnf-index = current()/../member-vnf-index-ref]" + "/vnfd-id-ref";
-          }
-        }
-
-        leaf vnfd-name {
-          description
-              "Name of the VNFD";
-          type leafref {
-              path "/vnfd:vnfd-catalog/vnfd:vnfd"
-                    + "[vnfd:id = current()/../vnfd-id-ref]"
-                    + "/vnfd:name";
-          }
-        }
-
-        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;
-      }
-    }
-  }
-
-  container nsd-catalog {
-
-    list nsd {
-      key id;
-
-      uses nsd-base:nsd-descriptor-common;
-
-      uses nsd-vld;
-
-      uses nsd-constituent-vnfd;
-
-      uses nsd-placement-groups;
-
-      uses nsd-vnf-dependency;
-
-      uses nsd-monitoring-param;
-
-      uses nsd-service-primitive;
-    }
-  }
-}
diff --git a/models/plugins/yang/nsr.yang b/models/plugins/yang/nsr.yang
deleted file mode 100644 (file)
index 12cf850..0000000
+++ /dev/null
@@ -1,1610 +0,0 @@
-
-/*
- * 
- *   Copyright 2016-2017 RIFT.IO Inc
- *
- *   Licensed under the Apache License, Version 2.0 (the "License");
- *   you may not use this file except in compliance with the License.
- *   You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *   Unless required by applicable law or agreed to in writing, software
- *   distributed under the License is distributed on an "AS IS" BASIS,
- *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *   See the License for the specific language governing permissions and
- *   limitations under the License.
- *
- *
- */
-
-module nsr
-{
-  namespace "urn:ietf:params:xml:ns:yang:nfvo:nsr";
-  prefix "nsr";
-
-  import vlr {
-    prefix "vlr";
-  }
-
-  import nsd-base {
-    prefix "nsd-base";
-  }
-
-  import project-nsd {
-    prefix "project-nsd";
-  }
-
-  import project-vnfd {
-    prefix "project-vnfd";
-  }
-
-  import vnfr {
-    prefix "vnfr";
-  }
-
-  import ietf-inet-types {
-    prefix "inet";
-  }
-
-  import ietf-yang-types {
-    prefix "yang";
-  }
-
-  import mano-types {
-    prefix "manotypes";
-  }
-
-  import rw-project {
-    prefix "rw-project";
-  }
-
-  revision 2017-02-08 {
-    description
-      "Update model to support projects.";
-  }
-
-  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 vnffgr-operational-status {
-    type enumeration {
-      enum init;
-      enum running;
-      enum terminate;
-      enum terminated;
-      enum failed;
-    }
-  }
-
-  typedef ns-operational-status {
-    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;
-      enum vl-instantiate;
-      enum vl-terminate;
-    }
-  }
-
-  typedef config-states {
-    type enumeration {
-      enum init;
-      enum configuring;
-      enum config_not_needed;
-      enum configured;
-      enum failed;
-      enum terminate;
-    }
-  }
-
-  typedef trigger-type {
-    type enumeration {
-      enum ns-primitive;
-      enum vnf-primitive;
-    }
-  }
-
-  grouping cloud-config {
-    description "List of cloud config parameters";
-
-    list ssh-authorized-key {
-      key "key-pair-ref";
-
-      description "List of authorized ssh keys as part of cloud-config";
-
-      leaf key-pair-ref {
-        description "A reference to the key pair entry in the global key pair table";
-        type leafref {
-          path "../../../../key-pair/name";
-        }
-      }
-    }
-    list user {
-      key "name";
-      description "Used to configure the list of public keys to be injected as part
-                 of ns instantiation";
-      leaf name {
-        description "Name of this key pair";
-        type string;
-      }
-      leaf user-info {
-        description "The user name's real name";
-        type string;
-      }
-      list ssh-authorized-key {
-        key "key-pair-ref";
-
-        description "Used to configure the list of public keys to be injected as part
-                        of ns instantiation";
-
-        leaf key-pair-ref {
-          description "A reference to the key pair entry in the global key pair table";
-          type leafref {
-            path "../../../../../key-pair/name";
-          }
-        }
-      }
-    }
-  }
-
-  augment "/rw-project:project" {
-    list key-pair {
-      key "name";
-      description "Used to configure the list of public keys to be injected as part
-                 of ns instantiation";
-      leaf name {
-        description "Name of this key pair";
-        type string;
-      }
-
-      leaf key {
-        description "Key associated with this key pair";
-        type string;
-      }
-    }
-  }
-
-  grouping event-service-primitive {
-    leaf seq {
-      description
-          "Sequence number for the service primitive.";
-      type uint64;
-    }
-
-    leaf name {
-      description
-          "Name of the service primitive.";
-      type string;
-      mandatory "true";
-    }
-
-    leaf user-defined-script {
-      description
-          "A user defined script.";
-      type string;
-    }
-
-    list parameter {
-      key "name";
-      leaf name {
-        type string;
-      }
-
-      leaf value {
-        type string;
-      }
-    }
-  }
-
-  augment "/rw-project:project" {
-    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 admin-status {
-          description
-            "This is the administrative status of the NS instance";
-
-          type enumeration {
-            enum ENABLED;
-            enum DISABLED;
-          }
-        }
-
-        container nsd {
-          description "NS descriptor used to instantiate this NS";
-
-          uses nsd-base:nsd-descriptor-common;
-
-          uses project-nsd:nsr-nsd-vld;
-
-          uses project-nsd:nsr-nsd-constituent-vnfd;
-
-          uses project-nsd:nsr-nsd-placement-groups;
-
-          uses project-nsd:nsr-nsd-vnf-dependency;
-
-          uses project-nsd:nsr-nsd-monitoring-param;
-
-          uses project-nsd:nsr-nsd-service-primitive;
-        }
-        uses ns-instance-config-params;
-      }
-    }
-  }
-
-  grouping ns-instance-config-params-common {
-    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
-        leafref path ../nsd/scaling-group-descriptor/name";
-        type string;
-      }
-
-      list instance {
-        description "The instance of the scaling group";
-        key "id";
-        leaf id {
-          description "Scaling group instance uuid";
-          type uint16;
-        }
-      }
-    }
-
-    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/placement-groups/name";
-        // }
-        type string;
-      }
-      uses manotypes:placement-group-input;
-    }
-  }
-
-  grouping ns-instance-config-params {
-    uses ns-instance-config-params-common;
-
-    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 vnfd-id-ref {
-        description
-          "A reference to a vnfd. This is a
-          leafref to path:
-          ../../../../project-nsd:constituent-vnfd
-          + [id = current()/../id-ref]
-          + /project-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 resolved this will switched to use
-          leafref";
-        type yang:uuid;
-      }
-
-      leaf placement-group-ref {
-        description
-          "A reference to VNFD placement group";
-        type leafref {
-          path "../../../../project-vnfd:vnfd-catalog/project-vnfd:vnfd[project-vnfd:id = " +
-            "current()/../vnfd-id-ref]/project-vnfd:placement-groups/project-vnfd:name";
-        }
-      }
-
-      uses manotypes:placement-group-input;
-    }
-
-    uses cloud-config;
-  }
-
-  grouping vnffgr {
-
-    list vnffgr {
-      key "id";
-
-      leaf id {
-        description "Identifier for the VNFFGR.";
-        type yang:uuid;
-      }
-
-      leaf vnffgd-id-ref {
-        description "VNFFG descriptor id reference";
-        type leafref {
-          path "../../../../ns-instance-config/nsr"
-            + "[id=current()/../../ns-instance-config-ref]"
-            + "/nsd/vnffgd/id";
-        }
-      }
-
-      leaf vnffgd-name-ref {
-        description "VNFFG descriptor name reference";
-        type leafref {
-            path "../../../../ns-instance-config/nsr"
-              + "[id=current()/../../ns-instance-config-ref]"
-              + "/nsd/vnffgd"
-              + "[id=current()/../vnffgd-id-ref]"
-              + "/name";
-        }
-      }
-
-      leaf sdn-account {
-        description
-            "The SDN account to use when requesting resources for
-            this vnffgr";
-        type string;
-      }
-
-      leaf cloud-account {
-        description "Cloud Account in which NSR is instantiated";
-        type string;
-      }
-
-      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 vnffgr-operational-status;
-      }
-
-      list rsp {
-        key "id";
-
-        leaf id {
-          description
-              "Identifier for the RSP.";
-          type yang:uuid;
-        }
-
-        leaf name {
-          description
-              "Name for the RSP";
-          type string;
-        }
-
-        leaf rsp-id {
-          description
-              "Returned Identifier for the RSP.";
-          type yang:uuid;
-        }
-
-        leaf vnffgd-rsp-id-ref {
-          description
-              "Identifier for the VNFFG Descriptor RSP reference";
-          type leafref {
-            path "../../../../../ns-instance-config/nsr"
-              + "[id=current()/../../../ns-instance-config-ref]"
-              + "/nsd/vnffgd"
-              + "[id=current()/../../vnffgd-id-ref]"
-              + "/rsp/id";
-          }
-        }
-
-        leaf vnffgd-rsp-name-ref {
-          description
-              "Name for the VNFFG Descriptor RSP reference";
-          type leafref {
-            path "../../../../../ns-instance-config/nsr"
-              + "[id=current()/../../../ns-instance-config-ref]"
-              + "/nsd/vnffgd"
-              + "[id=current()/../../vnffgd-id-ref]"
-              + "/rsp"
-              + "[id=current()/../vnffgd-rsp-id-ref]"
-              + "/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 mandatory 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()/../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 {
-              type string;
-            }
-            leaf vm-id {
-              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-list classifier-id {
-            description
-                "Returned Identifier for the classifier rule.";
-            type yang:uuid;
-          }
-          leaf rsp-id-ref {
-            description
-                "A reference to the RSP.";
-            type leafref {
-              path "../../rsp/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()/../vnfr-id-ref]"
-                 + "/vnfr:connection-point/vnfr:name";
-            }
-          }
-          leaf port-id {
-            type string;
-          }
-          leaf vm-id {
-            type string;
-          }
-          leaf ip-address {
-            type string;
-          }
-          leaf sff-name {
-            type string;
-          }
-      }
-    }
-  }
-
-  augment "/rw-project:project" {
-    container ns-instance-opdata {
-      config false;
-
-      list nsr {
-        key "ns-instance-config-ref";
-
-        leaf ns-instance-config-ref {
-          type leafref {
-            path "../../../ns-instance-config/nsr/id";
-          }
-          // type yang:uuid;
-        }
-
-        leaf name-ref {
-          description "Network service name reference";
-          type leafref {
-            path "../../../ns-instance-config/nsr" +
-              "[id=current()/../ns-instance-config-ref]" +
-              "/name";
-          }
-        }
-
-        leaf nsd-ref {
-          description "Network service descriptor id reference";
-          type leafref {
-            path "../../../ns-instance-config/nsr"
-              + "[id=current()/../ns-instance-config-ref]"
-              + "/nsd/id";
-          }
-        }
-
-        leaf nsd-name-ref {
-          description "Network service descriptor name reference";
-          type leafref {
-            path "../../../ns-instance-config/nsr"
-              + "[id=current()/../ns-instance-config-ref]"
-              + "/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;
-        }
-
-        leaf uptime {
-          description
-            "Active period of this Network Service.
-          Uptime is expressed in seconds";
-
-          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()/../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
-               This should be a leafref to /vnfr:vnfr-catalog/vnfr:vnfr/vnfr:id
-               But due to confd bug (RIFT-9451), changing to string.";
-            type string;
-          }
-        }
-
-        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 "../../../../ns-instance-config/nsr"
-                + "[id=current()/../../ns-instance-config-ref]"
-                + "/nsd/scaling-group-descriptor/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 config-status {
-              description
-                "The configuration status of the scaling group instance
-               configuring : At least one of the VNFs in this scaling group instance
-                             is in configuring state
-               configured  : All the VNFs in this scaling group instance are
-                             configured or config-not-needed state
-               failed      : Configuring this scaling group instance failed
-              ";
-              type config-states;
-            }
-
-            leaf error-msg {
-              description
-                "Reason for failure in configuration of this scaling instance";
-              type string;
-            }
-
-            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
-            vl-instantiate      : The NS is initiating a new VL
-            vl-terminate        : The NS is terminating a VL
-          ";
-
-          type ns-operational-status;
-        }
-
-        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;
-        }
-
-        list service-primitive {
-           description
-                "Network service level service primitives.";
-
-           key "name";
-
-           leaf name {
-              description
-                  "Name of the service primitive.";
-              type string;
-           }
-
-           list parameter {
-              description
-                  "List of parameters for the service primitive.";
-
-              key "name";
-              uses manotypes:primitive-parameter;
-           }
-
-           uses manotypes:ui-primitive-group;
-
-           list vnf-primitive-group {
-              description
-                "Reference to member-vnf within constituent-vnfds";
-
-              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;
-           }
-        }
-
-        list initial-service-primitive {
-          description
-            "Initial set of service primitives for NSD.";
-          key "seq";
-
-          uses event-service-primitive;
-        }
-
-        list terminate-service-primitive {
-          description
-            "Set of service primitives to
-             execute during termination of NSD.";
-          key "seq";
-
-          uses event-service-primitive;
-        }
-
-        list monitoring-param {
-          description
-            "List of NS level params.";
-          key "id";
-
-          uses manotypes:monitoring-param-value;
-          uses manotypes:monitoring-param-ui-data;
-          uses manotypes:monitoring-param-aggregation;
-
-          leaf id {
-            type string;
-          }
-
-          leaf name {
-            type string;
-          }
-
-          leaf nsd-mon-param-ref {
-            description "Reference to the NSD monitoring param descriptor
-                       that produced this result";
-            // TODO: Fix leafref
-            type leafref {
-              path "../../../../project-nsd:nsd-catalog/project-nsd:nsd" +
-                "[project-nsd:id = current()/../../nsd-ref]" +
-                "/project-nsd:monitoring-param/project-nsd:id";
-            }
-          }
-
-          list vnfr-mon-param-ref {
-            description "A list of VNFR monitoring params associated with this monp";
-            key "vnfr-id-ref vnfr-mon-param-ref";
-
-            leaf vnfr-id-ref {
-              description
-                "A reference to a vnfr. This is a
-                leafref to path:
-                    /vnfr:vnfr-catalog/vnfr:vnfr/vnfr:id";
-
-              type yang:uuid;
-            }
-
-            leaf vnfr-mon-param-ref {
-              description "A reference to the VNFR monitoring param";
-              type leafref {
-                path "../../../../../vnfr:vnfr-catalog/vnfr:vnfr"
-                  + "[vnfr:id = current()/../vnfr-id-ref]"
-                  + "/vnfr:monitoring-param/vnfr:id";
-              }
-            }
-          }
-        }
-
-        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;
-            }
-          }
-
-          leaf triggered-by {
-            description "The primitive is triggered from NS or VNF level";
-            type trigger-type;
-          }
-
-          leaf create-time {
-            description
-              "Creation timestamp of this Config Agent Job.
-            The timestamp is expressed as seconds
-            since unix epoch - 1970-01-01T00:00:00Z";
-
-            type uint32;
-          }
-
-          leaf job-status-details {
-            description "Config agent job status details, in case of errors";
-            type string;
-          }
-
-          uses manotypes:primitive-parameter-value;
-
-          list parameter-group {
-            description
-              "List of NS Primitive parameter groups";
-            key "name";
-            leaf name {
-              description
-                "Name of the parameter.";
-              type string;
-            }
-
-            uses manotypes:primitive-parameter-value;
-          }
-
-          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;
-              }
-
-              uses manotypes:primitive-parameter-value;
-
-              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;
-              }
-            }
-          }
-        }
-      }
-    }
-  }
-
-  grouping rpc-common {
-    uses manotypes:rpc-project-name;
-
-    leaf nsr_id_ref {
-      description "Reference to NSR ID ref";
-      type leafref {
-        path "/rw-project:project[rw-project:name=current()/.." +
-          "/nsr:project-name]/nsr:ns-instance-config/nsr:nsr/nsr:id";
-      }
-      mandatory true;
-    }
-  }
-
-  rpc get-ns-service-primitive-values {
-    description "Get the service primitive parameter values";
-
-    input {
-      leaf name {
-        description "Name of the NS service primitive group";
-        mandatory true;
-        type string;
-      }
-
-      uses rpc-common;
-    }
-
-    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 service 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:
-                   ../../../../project-nsd:constituent-vnfd
-                   + [project-nsd:id = current()/../project-nsd:id-ref]
-                   + /project-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 resolved 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-service-primitive {
-    description "Executes a NS service primitive or script";
-
-    input {
-      leaf name {
-        description "Name of the primitive";
-        type string;
-      }
-
-      uses rpc-common;
-
-      leaf triggered-by {
-        description "The primitive is triggered from NS or VNF level";
-        type trigger-type;
-        default ns-primitive;
-      }
-
-      uses manotypes:primitive-parameter-value;
-
-      list parameter-group {
-        description
-            "List of NS Primitive parameter groups";
-        key "name";
-        leaf name {
-          description
-              "Name of the parameter.";
-          type string;
-        }
-
-        uses manotypes:primitive-parameter-value;
-      }
-
-      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 service primitives supported by the
-            configuration agent for this VNF.";
-          key "index";
-
-          leaf index {
-            description
-                "index of the service primitive.";
-            type uint32;
-          }
-          leaf name {
-            description
-                "Name of the service primitive.";
-            type string;
-          }
-
-          uses manotypes:primitive-parameter-value;
-        }
-      }
-      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 service primitive";
-        type string;
-      }
-
-      uses rpc-common;
-
-      leaf triggered-by {
-        description "The primitive is triggered from NS or VNF level";
-        type trigger-type;
-      }
-
-      leaf create-time {
-        description
-          "Creation timestamp of this config agent JOB.
-          The timestamp is expressed as seconds
-          since unix epoch - 1970-01-01T00:00:00Z";
-
-        type uint32;
-      }
-
-      leaf job-status-details {
-        description "Job status details, in case of any errors";
-        type string;
-      }
-
-      uses manotypes:primitive-parameter-value;
-
-      list parameter-group {
-        description
-            "List of NS Primitive parameter groups";
-        key "name";
-        leaf name {
-          description
-              "Name of the parameter.";
-          type string;
-        }
-
-        uses manotypes:primitive-parameter-value;
-      }
-
-      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 service primitives supported by the
-            configuration agent for this VNF.";
-          key "index";
-
-          leaf index {
-            description
-                "index of the service primitive.";
-            type uint32;
-          }
-
-          leaf name {
-            description
-                "Name of the service primitive.";
-            type string;
-          }
-
-          uses manotypes:primitive-parameter-value;
-
-          leaf execution-id {
-            description "Execution id of this primitive";
-            type string;
-          }
-
-          leaf execution-status {
-            description "Status of the execution of this primitive";
-            type string;
-          }
-
-          leaf execution-error-details {
-            description "Error details if execution-status is failed";
-            type string;
-          }
-        }
-      }
-    }
-  }
-
-  rpc exec-scale-in {
-    description "Executes scale out request";
-
-    input {
-      uses rpc-common;
-
-      leaf scaling-group-name-ref {
-        description "name of the scaling group";
-        type leafref {
-          path "/rw-project:project[rw-project:name=current()/.." +
-            "/nsr:project-name]/nsr:ns-instance-config/nsr:nsr" +
-            "[nsr:id=current()/../nsr:nsr_id_ref]/nsr:nsd" +
-            "/nsr:scaling-group-descriptor/nsr:name";
-        }
-        mandatory true;
-      }
-
-      leaf instance-id {
-        description "id of the scaling group";
-        type leafref {
-          path "/rw-project:project[rw-project:name=current()/.." +
-            "/nsr:project-name]/nsr:ns-instance-config/nsr:nsr" +
-            "[nsr:id=current()/../nsr:nsr_id_ref]" +
-            "/nsr:scaling-group[nsr:scaling-group-name-ref=current()/.." +
-            "/nsr:scaling-group-name-ref]/nsr:instance/nsr:id";
-        }
-        mandatory true;
-      }
-
-
-    }
-    output {
-      leaf instance-id {
-        description "id of the scaling group";
-        type uint64;
-      }
-    }
-  }
-
-  rpc exec-scale-out {
-    description "Executes scale out request";
-
-    input {
-      uses rpc-common;
-
-      leaf scaling-group-name-ref {
-        description "name of the scaling group";
-        type leafref {
-          path "/rw-project:project[rw-project:name=current()/.." +
-            "/nsr:project-name]/nsr:ns-instance-config/nsr:nsr" +
-            "[nsr:id=current()/../nsr:nsr_id_ref]/nsr:nsd" +
-            "/nsr:scaling-group-descriptor/nsr:name";
-        }
-        mandatory true;
-      }
-
-      leaf instance-id {
-        description "id of the scaling group";
-        type uint64;
-      }
-    }
-
-    output {
-     leaf instance-id {
-        description "id of the scaling group";
-        type uint64;
-      }
-    }
-  }
-
-  rpc start-network-service {
-    description "Start the network service";
-    input {
-      leaf name {
-        mandatory true;
-        description "Name of the Network Service";
-        type string;
-      }
-
-      uses manotypes:rpc-project-name;
-
-      leaf nsd_id_ref {
-        description "Reference to NSD ID ref";
-        type leafref {
-          path "/rw-project:project[rw-project:name=current()/.." +
-            "/project-name]/project-nsd:nsd-catalog/project-nsd:nsd/project-nsd:id";
-        }
-      }
-      uses ns-instance-config-params-common;
-
-      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 vnfd-id-ref {
-          description
-            "A reference to a vnfd. This is a
-          leafref to path:
-          ../../../../project-nsd:constituent-vnfd
-          + [id = current()/../project-nsd:id-ref]
-          + /project-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 "/rw-project:project[rw-project:name=current()/" +
-              "../../project-name]/project-vnfd:vnfd-catalog/project-vnfd:vnfd[project-vnfd:id = " +
-              "current()/../vnfd-id-ref]/project-vnfd:placement-groups/project-vnfd:name";
-          }
-        }
-
-        uses manotypes:placement-group-input;
-
-        list ssh-authorized-key {
-          key "key-pair-ref";
-
-          description "List of authorized ssh keys as part of cloud-config";
-
-          leaf key-pair-ref {
-            description "A reference to the key pair entry in the global key pair table";
-            type leafref {
-              path "/rw-project:project[rw-project:name=current()/../../../" +
-                "project-name]/key-pair/name";
-            }
-          }
-        }
-
-        list user {
-          key "name";
-
-          description "List of users to be added through cloud-config";
-          leaf name {
-            description "Name of the user ";
-            type string;
-          }
-          leaf user-info {
-            description "The user name's real name";
-            type string;
-          }
-          list ssh-authorized-key {
-            key "key-pair-ref";
-
-            description "Used to configure the list of public keys to be injected as part
-                        of ns instantiation";
-
-            leaf key-pair-ref {
-              description "A reference to the key pair entry in the global key pair table";
-              type leafref {
-                path "/rw-project:project[rw-project:name=current()/" +
-                  "../../../../project-name]/key-pair/name";
-              }
-            }
-          }
-        }
-      }
-    }
-
-    output {
-      leaf nsr-id {
-        description "Automatically generated parameter";
-        type yang:uuid;
-      }
-    }
-  }
-}
diff --git a/models/plugins/yang/odl-network-topology.yang b/models/plugins/yang/odl-network-topology.yang
deleted file mode 100644 (file)
index 9c7101d..0000000
+++ /dev/null
@@ -1,359 +0,0 @@
-
-/*
- * 
- *   Copyright 2016 RIFT.IO Inc
- *
- *   Licensed under the Apache License, Version 2.0 (the "License");
- *   you may not use this file except in compliance with the License.
- *   You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *   Unless required by applicable law or agreed to in writing, software
- *   distributed under the License is distributed on an "AS IS" BASIS,
- *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *   See the License for the specific language governing permissions and
- *   limitations under the License.
- *
- *
- */
-
-module odl-network-topology  {
-    yang-version 1;
-    namespace "urn:TBD:params:xml:ns:yang:network-topology";
-    // replace with IANA namespace when assigned
-    prefix "nt";
-
-    import ietf-inet-types { prefix "inet";  }
-
-    organization "TBD";
-
-    contact "WILL-BE-DEFINED-LATER";
-
-    description
-        "This module defines a model for the topology of a network.
-        Key design decisions are as follows:
-        A topology consists of a set of nodes and links.
-        Links are point-to-point and unidirectional.
-        Bidirectional connections need to be represented through
-        two separate links.
-        Multipoint connections, broadcast domains etc can be represented
-        through a hierarchy of nodes, then connecting nodes at
-        upper layers of the hierarchy.";
-
-    revision 2013-10-21 {
-        description
-            "Initial revision.";
-    }
-
-    typedef topology-id {
-        type inet:uri;
-        description
-            "An identifier for a topology.";
-    }
-
-    typedef node-id {
-        type inet:uri;
-        description
-            "An identifier for a node in a topology.
-            The identifier may be opaque.
-            The identifier SHOULD be chosen such that the same node in a
-            real network topology will always be identified through the
-            same identifier, even if the model is instantiated in separate
-            datastores. An implementation MAY choose to capture semantics
-            in the identifier, for example to indicate the type of node
-            and/or the type of topology that the node is a part of.";
-    }
-
-
-    typedef link-id {
-        type inet:uri;
-        description
-            "An identifier for a link in a topology.
-            The identifier may be opaque.
-            The identifier SHOULD be chosen such that the same link in a
-            real network topology will always be identified through the
-            same identifier, even if the model is instantiated in separate
-            datastores. An implementation MAY choose to capture semantics
-            in the identifier, for example to indicate the type of link
-            and/or the type of topology that the link is a part of.";
-    }
-
-    typedef tp-id {
-        type inet:uri;
-        description
-            "An identifier for termination points on a node.
-            The identifier may be opaque.
-            The identifier SHOULD be chosen such that the same TP in a
-            real network topology will always be identified through the
-            same identifier, even if the model is instantiated in separate
-            datastores. An implementation MAY choose to capture semantics
-            in the identifier, for example to indicate the type of TP
-            and/or the type of node and topology that the TP is a part of.";
-    }
-
-    typedef tp-ref {
-        type leafref {
-            path "/network-topology/topology/node/termination-point/tp-id";
-        }
-        description
-            "A type for an absolute reference to a termination point.
-            (This type should not be used for relative references.
-            In such a case, a relative path should be used instead.)";
-    }
-    typedef topology-ref {
-        type leafref {
-            path "/network-topology/topology/topology-id";
-        }
-        description
-            "A type for an absolute reference a topology instance.";
-    }
-
-    typedef node-ref {
-        type leafref {
-            path "/network-topology/topology/node/node-id";
-        }
-        description
-
-            "A type for an absolute reference to a node instance.
-            (This type should not be used for relative references.
-            In such a case, a relative path should be used instead.)";
-    }
-
-    typedef link-ref {
-        type leafref {
-            path "/network-topology/topology/link/link-id";
-        }
-        description
-            "A type for an absolute reference a link instance.
-            (This type should not be used for relative references.
-            In such a case, a relative path should be used instead.)";
-    }
-
-    grouping tp-attributes {
-        description
-            "The data objects needed to define a termination point.
-            (This only includes a single leaf at this point, used
-            to identify the termination point.)
-            Provided in a grouping so that in addition to the datastore,
-            the data can also be included in notifications.";
-        leaf tp-id {
-            type tp-id;
-        }
-        leaf-list tp-ref {
-            type tp-ref;
-            config false;
-            description
-                "The leaf list identifies any termination points that the
-                termination point is dependent on, or maps onto.
-                Those termination points will themselves be contained
-                in a supporting node.
-                This dependency information can be inferred from
-                the dependencies between links.  For this reason,
-                this item is not separately configurable.  Hence no
-                corresponding constraint needs to be articulated.
-                The corresponding information is simply provided by the
-                implementing system.";
-        }
-    }
-
-    grouping node-attributes {
-        description
-            "The data objects needed to define a node.
-            The objects are provided in a grouping so that in addition to
-            the datastore, the data can also be included in notifications
-            as needed.";
-
-        leaf node-id {
-            type node-id;
-            description
-                "The identifier of a node in the topology.
-                A node is specific to a topology to which it belongs.";
-        }
-        list supporting-node {
-            description
-                "This list defines vertical layering information for nodes.
-                It allows to capture for any given node, which node (or nodes)
-                in the corresponding underlay topology it maps onto.
-                A node can map to zero, one, or more nodes below it;
-                accordingly there can be zero, one, or more elements in the list.
-                If there are specific layering requirements, for example
-                specific to a particular type of topology that only allows
-                for certain layering relationships, the choice
-                below can be augmented with additional cases.
-                A list has been chosen rather than a leaf-list in order
-                to provide room for augmentations, e.g. for
-                statistics or priorization information associated with
-                supporting nodes.";
-            // This is not what was published in the initial draft,
-            // added topology-ref leaf and added it to the key
-            key "topology-ref node-ref";
-            leaf topology-ref {
-                type topology-ref;
-            }
-            leaf node-ref {
-                type node-ref;
-            }
-        }
-    }
-
-    grouping link-attributes {
-        // This is a grouping, not defined inline with the link definition itself,
-        // so it can be included in a notification, if needed
-        leaf link-id {
-            type link-id;
-            description
-                "The identifier of a link in the topology.
-                A link is specific to a topology to which it belongs.";
-        }
-        container source {
-            leaf source-node {
-                mandatory true;
-                type node-ref;
-                description
-                    "Source node identifier, must be in same topology.";
-            }
-            leaf source-tp {
-                type tp-ref;
-                description
-                    "Termination point within source node that terminates the link.";
-
-            }
-        }
-        container destination {
-            leaf dest-node {
-                mandatory true;
-                type node-ref;
-                description
-                    "Destination node identifier, must be in same topology.";
-            }
-            leaf dest-tp {
-                type tp-ref;
-                description
-                    "Termination point within destination node that terminates the link.";
-            }
-        }
-        list supporting-link {
-            key "link-ref";
-            leaf link-ref {
-                type link-ref;
-            }
-        }
-    }
-
-
-    container network-topology {
-        list topology {
-            description "
-                This is the model of an abstract topology.
-                A topology contains nodes and links.
-                Each topology MUST be identified by
-                unique topology-id for reason that a network could contain many
-                topologies.
-            ";
-            key "topology-id";
-            leaf topology-id {
-                type topology-id;
-                description "
-                    It is presumed that a datastore will contain many topologies. To
-                    distinguish between topologies it is vital to have UNIQUE
-                    topology identifiers.
-                ";
-            }
-            leaf server-provided {
-                type boolean;
-                config false;
-                description "
-                    Indicates whether the topology is configurable by clients,
-                    or whether it is provided by the server.  This leaf is
-
-                    populated by the server implementing the model.
-                    It is set to false for topologies that are created by a client;
-                    it is set to true otherwise.  If it is set to true, any
-                    attempt to edit the topology MUST be rejected.
-                ";
-            }
-            container topology-types {
-                description
-                    "This container is used to identify the type, or types
-                    (as a topology can support several types simultaneously),
-                    of the topology.
-                    Topology types are the subject of several integrity constraints
-                    that an implementing server can validate in order to
-                    maintain integrity of the datastore.
-                    Topology types are indicated through separate data nodes;
-                    the set of topology types is expected to increase over time.
-                    To add support for a new topology, an augmenting module
-                    needs to augment this container with a new empty optional
-                    container to indicate the new topology type.
-                    The use of a container allows to indicate a subcategorization
-                    of topology types.
-                    The container SHALL NOT be augmented with any data nodes
-                    that serve a purpose other than identifying a particular
-                    topology type.
-                ";
-            }
-            list underlay-topology {
-                key "topology-ref";
-                leaf topology-ref {
-                    type topology-ref;
-                }
-                // a list, not a leaf-list, to allow for potential augmentation
-                // with properties specific to the underlay topology,
-                // such as statistics, preferences, or cost.
-                description
-                    "Identifies the topology, or topologies, that this topology
-                    is dependent on.";
-            }
-
-            list node {
-                description "The list of network nodes defined for the topology.";
-                key "node-id";
-                uses node-attributes;
-                must "boolean(../underlay-topology[*]/node[./supporting-nodes/node-ref])";
-                    // This constraint is meant to ensure that a referenced node is in fact
-                    // a node in an underlay topology.
-                list termination-point {
-                    description
-
-                        "A termination point can terminate a link.
-                        Depending on the type of topology, a termination point could,
-                        for example, refer to a port or an interface.";
-                    key "tp-id";
-                    uses tp-attributes;
-                }
-            }
-
-            list link {
-                description "
-                    A Network Link connects a by Local (Source) node and
-                    a Remote (Destination) Network Nodes via a set of the
-                    nodes' termination points.
-                    As it is possible to have several links between the same
-                    source and destination nodes, and as a link could potentially
-                    be re-homed between termination points, to ensure that we
-                    would always know to distinguish between links, every link
-                    is identified by a dedicated link identifier.
-                    Note that a link models a point-to-point link, not a multipoint
-                    link.
-                    Layering dependencies on links in underlay topologies are
-                    not represented as the layering information of nodes and of
-                    termination points is sufficient.
-                ";
-                key "link-id";
-                uses link-attributes;
-                must "boolean(../underlay-topology/link[./supporting-link])";
-                    // Constraint: any supporting link must be part of an underlay topology
-                must "boolean(../node[./source/source-node])";
-                    // Constraint: A link must have as source a node of the same topology
-                must "boolean(../node[./destination/dest-node])";
-                    // Constraint: A link must have as source a destination of the same topology
-                must "boolean(../node/termination-point[./source/source-tp])";
-                    // Constraint: The source termination point must be contained in the source node
-                must "boolean(../node/termination-point[./destination/dest-tp])";
-                    // Constraint: The destination termination point must be contained
-                    // in the destination node
-            }
-        }
-    }
-}
diff --git a/models/plugins/yang/project-nsd.yang b/models/plugins/yang/project-nsd.yang
deleted file mode 100644 (file)
index ae79d96..0000000
+++ /dev/null
@@ -1,600 +0,0 @@
-
-/*
- * 
- *   Copyright 2017 RIFT.IO Inc
- *
- *   Licensed under the Apache License, Version 2.0 (the "License");
- *   you may not use this file except in compliance with the License.
- *   You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *   Unless required by applicable law or agreed to in writing, software
- *   distributed under the License is distributed on an "AS IS" BASIS,
- *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *   See the License for the specific language governing permissions and
- *   limitations under the License.
- *
- *
- */
-
-module project-nsd
-{
-  namespace "http://riftio.com/ns/riftware-1.0/project-nsd";
-  prefix "project-nsd";
-
-  import mano-types {
-    prefix "manotypes";
-  }
-
-  import project-vnfd {
-    prefix "project-vnfd";
-  }
-
-  import nsd-base {
-    prefix "nsd-base";
-  }
-
-  import rw-project {
-    prefix "rw-project";
-  }
-
-
-  revision 2017-02-28 {
-    description
-      "Initial revision. This YANG file defines
-       the Network Service Descriptor (NSD)
-       under projects";
-    reference
-      "Derived from earlier versions of base YANG files";
-  }
-
-
-  grouping nsd-constituent-vnfd {
-    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 "/rw-project:project[rw-project:name = current()/../../../../rw-project:name]" +
-            "/project-vnfd:vnfd-catalog/project-vnfd:vnfd/project-vnfd:id";
-        }
-      }
-
-      leaf start-by-default {
-        description
-          "VNFD is started as part of the NS instantiation";
-        type boolean;
-        default true;
-      }
-    }
-  }
-
-  grouping nsr-nsd-constituent-vnfd {
-    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 "/rw-project:project[rw-project:name = current()/../../../../../rw-project:name]" +
-            "/project-vnfd:vnfd-catalog/project-vnfd:vnfd/project-vnfd:id";
-        }
-      }
-
-      leaf start-by-default {
-        description
-          "VNFD is started as part of the NS instantiation";
-        type boolean;
-        default true;
-      }
-    }
-  }
-
-  grouping nsd-vld {
-    list vld {
-
-      key "id";
-
-      uses nsd-base:nsd-vld-common;
-
-      list vnfd-connection-point-ref {
-        description
-            "A list of references to connection points.";
-        key "member-vnf-index-ref vnfd-connection-point-ref";
-
-        leaf member-vnf-index-ref {
-          description "Reference to member-vnf within constituent-vnfds";
-          type leafref {
-            path "../../../constituent-vnfd/member-vnf-index";
-          }
-        }
-
-        leaf vnfd-id-ref {
-          description
-              "A reference to a vnfd. This is a
-               leafref to path:
-                   ../../constituent-vnfd
-                   + [id = current()/../id-ref]
-                   + /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 resolved this will switched to use
-               leafref";
-          //type string;
-          type leafref {
-            path "../../../constituent-vnfd[member-vnf-index = current()/../member-vnf-index-ref]/vnfd-id-ref";
-          }
-        }
-
-        leaf vnfd-connection-point-ref {
-          description "A reference to a connection point name";
-          type leafref {
-            path "../../../../../project-vnfd:vnfd-catalog/project-vnfd:vnfd" +
-                 "[project-vnfd:id = current()/../vnfd-id-ref]/" +
-                 "project-vnfd:connection-point/project-vnfd:name";
-          }
-        }
-      }
-    }
-  }
-
-  grouping nsr-nsd-vld {
-    list vld {
-
-      key "id";
-
-      uses nsd-base:nsd-vld-common;
-
-      list vnfd-connection-point-ref {
-        description
-            "A list of references to connection points.";
-        key "member-vnf-index-ref vnfd-connection-point-ref";
-
-        leaf member-vnf-index-ref {
-          description "Reference to member-vnf within constituent-vnfds";
-
-          type leafref {
-            path "../../../constituent-vnfd/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 resolved this will switched to use
-               leafref";
-          type string;
-        }
-
-        leaf vnfd-connection-point-ref {
-          description "A reference to a connection point name";
-          type leafref {
-            path "../../../../../../project-vnfd:vnfd-catalog/project-vnfd:vnfd" +
-                 "[project-vnfd:id = current()/../vnfd-id-ref]/" +
-                 "project-vnfd:connection-point/project-vnfd:name";
-          }
-        }
-      }
-    }
-  }
-
-  grouping nsd-vnf-dependency {
-    list vnf-dependency {
-      description
-          "List of VNF dependencies.";
-      key vnf-source-ref;
-      leaf vnf-source-ref {
-        type leafref {
-          path "../../../../project-vnfd:vnfd-catalog/project-vnfd:vnfd/project-vnfd:id";
-        }
-      }
-      leaf vnf-depends-on-ref {
-        description
-            "Reference to VNF that sorce VNF depends.";
-        type leafref {
-          path "../../../../project-vnfd:vnfd-catalog/project-vnfd:vnfd/project-vnfd:id";
-        }
-      }
-    }
-  }
-
-  grouping nsr-nsd-vnf-dependency {
-    list vnf-dependency {
-      description
-          "List of VNF dependencies.";
-      key vnf-source-ref;
-      leaf vnf-source-ref {
-        type leafref {
-          path "../../../../../project-vnfd:vnfd-catalog/project-vnfd:vnfd/project-vnfd:id";
-        }
-      }
-      leaf vnf-depends-on-ref {
-        description
-            "Reference to VNF that sorce VNF depends.";
-        type leafref {
-          path "../../../../../project-vnfd:vnfd-catalog/project-vnfd:vnfd/project-vnfd:id";
-        }
-      }
-    }
-  }
-
-  grouping nsd-placement-groups {
-    list placement-groups {
-      description "List of placement groups at NS level";
-
-      key "name";
-      uses manotypes:placement-group-info;
-
-      list member-vnfd {
-        description
-            "List of VNFDs that are part of this placement 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 "../../../../../project-vnfd:vnfd-catalog/project-vnfd:vnfd/project-vnfd:id";
-          }
-        }
-      }
-    }
-  }
-
-  grouping nsr-nsd-placement-groups {
-    list placement-groups {
-      description "List of placement groups at NS level";
-
-      key "name";
-      uses manotypes:placement-group-info;
-
-      list member-vnfd {
-        description
-            "List of VNFDs that are part of this placement 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 "../../../../../../project-vnfd:vnfd-catalog/project-vnfd:vnfd/project-vnfd:id";
-          }
-        }
-      }
-    }
-  }
-
-  grouping nsd-monitoring-param {
-
-    list monitoring-param {
-      key "id";
-
-      uses nsd-base:monitoring-param-common;
-
-      list vnfd-monitoring-param {
-        description "A list of VNFD monitoring params";
-        key "member-vnf-index-ref vnfd-monitoring-param-ref";
-
-        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 resolved this will switched to use
-              leafref";
-
-          type leafref {
-            path "../../../constituent-vnfd" +
-              "[member-vnf-index = current()/../member-vnf-index-ref]" +
-              "/vnfd-id-ref";
-          }
-        }
-
-        leaf vnfd-monitoring-param-ref {
-          description "A reference to the VNFD monitoring param";
-          type leafref {
-            path "../../../../../project-vnfd:vnfd-catalog/project-vnfd:vnfd"
-              + "[project-vnfd:id = current()/../vnfd-id-ref]"
-              + "/project-vnfd:monitoring-param/project-vnfd:id";
-          }
-        }
-
-        leaf member-vnf-index-ref {
-          description
-            "Optional reference to member-vnf within constituent-vnfds";
-          type leafref {
-            path "../../../constituent-vnfd/member-vnf-index";
-          }
-        }
-      }
-    }
-  }
-
-  grouping nsr-nsd-monitoring-param {
-    list monitoring-param {
-      key "id";
-
-      uses nsd-base:monitoring-param-common;
-
-      list vnfd-monitoring-param {
-        description "A list of VNFD monitoring params";
-        key "member-vnf-index-ref vnfd-monitoring-param-ref";
-
-        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 resolved this will switched to use
-              leafref";
-
-          type string;
-        }
-
-        leaf vnfd-monitoring-param-ref {
-          description "A reference to the VNFD monitoring param";
-          type leafref {
-            path "../../../../../../project-vnfd:vnfd-catalog/project-vnfd:vnfd"
-              + "[project-vnfd:id = current()/../vnfd-id-ref]"
-              + "/project-vnfd:monitoring-param/project-vnfd:id";
-          }
-        }
-
-        leaf member-vnf-index-ref {
-          description
-            "Optional reference to member-vnf within constituent-vnfds";
-          type leafref {
-            path "../../../constituent-vnfd/member-vnf-index";
-          }
-        }
-      }
-    }
-  }
-
-  grouping nsd-service-primitive {
-   list service-primitive {
-      description
-          "Network service level service primitives.";
-
-      key "name";
-
-      leaf name {
-        description
-            "Name of the service primitive.";
-        type string;
-      }
-
-      list parameter {
-        description
-            "List of parameters for the service primitive.";
-
-        key "name";
-        uses manotypes:primitive-parameter;
-      }
-
-      uses manotypes:ui-primitive-group;
-
-      list vnf-primitive-group {
-        description
-            "List of service primitives grouped by VNF.";
-
-        key "member-vnf-index-ref";
-        leaf member-vnf-index-ref {
-          description
-              "Reference to member-vnf within constituent-vnfds";
-          type leafref {
-             path "../../../constituent-vnfd/member-vnf-index";
-          }
-        }
-
-        leaf vnfd-id-ref {
-          description
-              "A reference to a vnfd. This is a leafref";
-
-          type leafref {
-             path "../../../constituent-vnfd" +
-                "[member-vnf-index = current()/../member-vnf-index-ref]" + "/vnfd-id-ref";
-          }
-        }
-
-        leaf vnfd-name {
-          description
-              "Name of the VNFD";
-          type leafref {
-              path "../../../../../project-vnfd:vnfd-catalog/project-vnfd:vnfd"
-                    + "[project-vnfd:id = current()/../vnfd-id-ref]"
-                    + "/project-vnfd:name";
-          }
-        }
-
-        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 nsr-nsd-service-primitive {
-   list service-primitive {
-      description
-          "Network service level service primitives.";
-
-      key "name";
-
-      leaf name {
-        description
-            "Name of the service primitive.";
-        type string;
-      }
-
-      list parameter {
-        description
-            "List of parameters for the service primitive.";
-
-        key "name";
-        uses manotypes:primitive-parameter;
-      }
-
-      uses manotypes:ui-primitive-group;
-
-      list vnf-primitive-group {
-        description
-            "List of service primitives grouped by VNF.";
-
-        key "member-vnf-index-ref";
-        leaf member-vnf-index-ref {
-          description
-              "Reference to member-vnf within constituent-vnfds";
-          type leafref {
-             path "../../../constituent-vnfd/member-vnf-index";
-          }
-        }
-
-        leaf vnfd-id-ref {
-          description
-              "A reference to a vnfd. This is a leafref";
-
-          type leafref {
-             path "../../../constituent-vnfd" +
-                "[member-vnf-index = current()/../member-vnf-index-ref]" + "/vnfd-id-ref";
-          }
-        }
-
-        leaf vnfd-name {
-          description
-              "Name of the VNFD";
-          type leafref {
-              path "../../../../../../project-vnfd:vnfd-catalog/project-vnfd:vnfd"
-                    + "[project-vnfd:id = current()/../vnfd-id-ref]"
-                    + "/project-vnfd:name";
-          }
-        }
-
-        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 nsd-descriptor {
-     uses nsd-base:nsd-descriptor-common;
-
-     uses nsd-vld;
-
-     uses nsd-constituent-vnfd;
-
-     uses nsd-placement-groups;
-
-     uses nsd-vnf-dependency;
-
-     uses nsd-monitoring-param;
-
-     uses nsd-service-primitive;
-  }
-
-  augment "/rw-project:project" {
-    container nsd-catalog {
-
-      list nsd {
-        key id;
-
-        uses nsd-descriptor;
-      }
-    }
-  }
-}
diff --git a/models/plugins/yang/project-vnfd.yang b/models/plugins/yang/project-vnfd.yang
deleted file mode 100644 (file)
index 5342436..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-
-/*
- * 
- *   Copyright 2017 RIFT.IO Inc
- *
- *   Licensed under the Apache License, Version 2.0 (the "License");
- *   you may not use this file except in compliance with the License.
- *   You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *   Unless required by applicable law or agreed to in writing, software
- *   distributed under the License is distributed on an "AS IS" BASIS,
- *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *   See the License for the specific language governing permissions and
- *   limitations under the License.
- *
- *
- */
-
-module project-vnfd
-{
-  namespace "http://riftio.com/ns/riftware-1.0/project-vnfd";
-  prefix "project-vnfd";
-
-  import rw-project {
-    prefix "rw-project";
-  }
-
-  import vnfd-base {
-    prefix "vnfd-base";
-  }
-
-  revision 2017-02-28 {
-    description
-      "Initial revision. This YANG file defines
-       the Virtual Network Function (VNF) descriptor
-       under a project";
-    reference
-      "Derived from earlier versions of base YANG files";
-  }
-
-  augment /rw-project:project {
-    container vnfd-catalog {
-      description
-        "Virtual Network Function Descriptor (VNFD).";
-
-      list vnfd {
-        key "id";
-
-        uses vnfd-base:vnfd-descriptor;
-      }
-    }
-  }
-}
-
-// vim: sw=2
diff --git a/models/plugins/yang/vlr.yang b/models/plugins/yang/vlr.yang
deleted file mode 100644 (file)
index 6a9b591..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-
-/*
- * 
- *   Copyright 2016-2017 RIFT.IO Inc
- *
- *   Licensed under the Apache License, Version 2.0 (the "License");
- *   you may not use this file except in compliance with the License.
- *   You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *   Unless required by applicable law or agreed to in writing, software
- *   distributed under the License is distributed on an "AS IS" BASIS,
- *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *   See the License for the specific language governing permissions and
- *   limitations under the License.
- *
- *
- */
-
-module vlr
-{
-  namespace "urn:ietf:params:xml:ns:yang:nfvo:vlr";
-  prefix "vlr";
-
-  import ietf-yang-types {
-    prefix "yang";
-  }
-
-  import mano-types {
-    prefix "manotypes";
-  }
-
-  import rw-project {
-    prefix "rw-project";
-  }
-
-  revision 2017-02-08 {
-    description
-      "Update model to support projects.";
-  }
-
-  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";
-  }
-
-  augment "/rw-project:project" {
-    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 /rw-project:project/nsr:ns-instance-config/nsr:nsr/nsr:id";
-          type yang:uuid;
-        }
-
-        leaf vld-ref {
-          description
-            "Reference to VLD
-           /rw-project:project/nsr:ns-instance-config/nsr:nsr[nsr:id=../nsr-id-ref]
-           /nsd/vld:vld/vld:id";
-          type string;
-        }
-
-        leaf res-id {
-          description "Identifier for resmgr id mapping";
-          type yang:uuid;
-        }
-
-        leaf short-name {
-          description "Short name to appear as label in the 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 uptime {
-          description
-            "Active period of this Virtual Link.
-          Uptime is expressed in seconds";
-
-          type uint32;
-        }
-
-        leaf network-id {
-          description
-            "Identifier for the allocated network resource.";
-          type string;
-        }
-
-        leaf vim-network-name {
-          description
-            "Name of network in VIM account. This is used to indicate
-            pre-provisioned network name in cloud account.";
-          type string;
-        }
-
-        // replicate for pnfd container here
-
-        uses manotypes:provider-network;
-        uses manotypes:ip-profile-info;
-      
-        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 {
-            enum init;
-            enum vl-alloc-pending;
-            enum running;
-            enum vl-terminate-pending;
-            enum terminated;
-            enum failed;
-          }
-        }
-      }
-    }
-  }
-}
-
diff --git a/models/plugins/yang/vnfd-base.yang b/models/plugins/yang/vnfd-base.yang
deleted file mode 100644 (file)
index c2eae35..0000000
+++ /dev/null
@@ -1,547 +0,0 @@
-
-/*
- *
- *   Copyright 2017 RIFT.IO Inc
- *
- *   Licensed under the Apache License, Version 2.0 (the "License");
- *   you may not use this file except in compliance with the License.
- *   You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *   Unless required by applicable law or agreed to in writing, software
- *   distributed under the License is distributed on an "AS IS" BASIS,
- *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *   See the License for the specific language governing permissions and
- *   limitations under the License.
- *
- *
- */
-
-module vnfd-base
-{
-  namespace "http://riftio.com/ns/riftware-1.0/vnfd-base";
-  prefix "vnfd-base";
-
-  import mano-types {
-    prefix "manotypes";
-  }
-
-  import ietf-inet-types {
-    prefix "inet";
-  }
-
-  revision 2017-02-28 {
-    description
-      "Initial revision. This YANG file defines
-       the common types for Virtual Network Function
-       (VNF) descriptor";
-    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 to appear as label in the UI";
-      type string;
-    }
-
-    leaf type {
-      description "Type of the connection point.";
-      type manotypes:connection-point-type;
-    }
-
-    leaf port-security-enabled {
-      description "Enables the port security for the port";
-      type boolean;
-    }
-  }
-
-  typedef interface-type {
-    type enumeration {
-      enum INTERNAL;
-      enum EXTERNAL;
-    }
-  }
-
-  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.
-             E1000           : Emulate E1000 interface.
-             RTL8139         : Emulate RTL8139 interface.
-             PCNET           : Emulate PCNET interface.
-             OM-MGMT         : Used to specify openmano mgmt external-connection type";
-
-        type enumeration {
-          enum OM-MGMT;
-          enum PCI-PASSTHROUGH;
-          enum SR-IOV;
-          enum VIRTIO;
-          enum E1000;
-          enum RTL8139;
-          enum PCNET;
-        }
-        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;
-      }
-    }
-  }
-
-  grouping vnfd-descriptor {
-      leaf id {
-        description "Identifier for the VNFD.";
-        type string {
-          length "1..63";
-        }
-      }
-
-      leaf name {
-        description "VNFD name.";
-        mandatory true;
-        type string;
-      }
-
-      leaf short-name {
-        description "Short name to appear as label in the UI";
-        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 vnf-configuration {
-        uses manotypes:vca-configuration;
-      }
-
-      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;
-            }
-          }
-
-          case vdu-id {
-            description
-                "Use the default management interface on this VDU.";
-            leaf vdu-id {
-              type leafref {
-                path "../../vdu/id";
-              }
-            }
-          }
-
-          case cp {
-            description
-                "Use the ip address associated with this connection point.";
-            leaf cp {
-              type leafref {
-                path "../../connection-point/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 such as 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 to appear as label in the UI";
-          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;
-        }
-
-        list internal-connection-point {
-          key "id-ref";
-          description "List of internal connection points in this VLD";
-          leaf id-ref {
-            description "reference to the internal connection point id";
-            type leafref {
-              path "../../../vdu/internal-connection-point/id";
-            }
-          }
-        }
-
-        uses manotypes:provider-network;
-        choice init-params {
-          description "Extra parameters for VLD instantiation";
-
-          case vim-network-ref {
-            leaf vim-network-name {
-              description
-                  "Name of network in VIM account. This is used to indicate
-                    pre-provisioned network name in cloud account.";
-              type string;
-            }
-          }
-
-          case vim-network-profile {
-            leaf ip-profile-ref {
-              description "Named reference to IP-profile object";
-              type string;
-            }
-          }
-
-        }
-      }
-
-      uses manotypes:ip-profile-list;
-
-      list connection-point {
-        key "name";
-        description
-          "List for external connection points. Each VNF has one
-          or more external connection points that connect the VNF
-          to other VNFs or to external networks. Each VNF exposes
-          connection points to the orchestrator, which 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;
-
-        list alarm {
-          key "alarm-id";
-
-          uses manotypes:alarm;
-        }
-
-        uses manotypes:image-properties;
-
-        container vdu-configuration {
-          uses manotypes:vca-configuration;
-        }
-
-        choice cloud-init-input {
-          description
-            "Indicates how the contents of cloud-init script are provided.
-             There are 2 choices - inline or in a file";
-
-          case inline {
-            leaf cloud-init {
-              description
-                "Contents of cloud-init script, provided inline, in cloud-config format";
-              type string;
-            }
-          }
-
-          case filename {
-            leaf cloud-init-file {
-              description
-                "Name of file with contents of cloud-init script in cloud-config format";
-                type string;
-            }
-          }
-        }
-
-        uses manotypes:supplemental-boot-data;
-
-        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 with 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 interface {
-          description
-              "List of Interfaces (external and internal) for the VNF";
-          key name;
-
-          leaf name {
-            description
-                "Name of the interface. Note that this
-                name has only local significance to the VDU.";
-            type string;
-          }
-
-          leaf position {
-            description
-                "Explicit Position of the interface within the list";
-            type uint32;
-          }
-
-          leaf type {
-            description
-                "Type of the Interface";
-            type interface-type;
-
-            default "EXTERNAL";
-          }
-
-          choice connection-point-type {
-            case internal {
-              leaf internal-connection-point-ref {
-                description
-                    "Leaf Ref to the particular internal connection point";
-                type leafref {
-                   path "../../internal-connection-point/id";
-                 }
-              }
-            }
-            case external {
-              leaf external-connection-point-ref {
-                description
-                    "Leaf Ref to the particular external connection point";
-                type leafref {
-                   path "../../../connection-point/name";
-                 }
-              }
-            }
-          }
-
-          uses virtual-interface;
-        }
-
-
-        list volumes {
-          key "name";
-
-          leaf name {
-            description "Name of the disk-volumes, e.g. vda, vdb etc";
-            type string;
-          }
-
-          uses manotypes:volume-info;
-        }
-      }
-
-      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 on which
-            the 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 mandatory 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 member-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/models/plugins/yang/vnfd.yang b/models/plugins/yang/vnfd.yang
deleted file mode 100644 (file)
index d1c9df6..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-
-/*
- *
- *   Copyright 2016-2017 RIFT.IO Inc
- *
- *   Licensed under the Apache License, Version 2.0 (the "License");
- *   you may not use this file except in compliance with the License.
- *   You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *   Unless required by applicable law or agreed to in writing, software
- *   distributed under the License is distributed on an "AS IS" BASIS,
- *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *   See the License for the specific language governing permissions and
- *   limitations under the License.
- *
- *
- */
-
-module vnfd
-{
-  namespace "urn:ietf:params:xml:ns:yang:nfvo:vnfd";
-  prefix "vnfd";
-
-  import vnfd-base {
-    prefix "vnfd-base";
-  }
-
-  revision 2017-02-28 {
-    description
-      "Update model to support projects.";
-  }
-
-  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";
-  }
-  container vnfd-catalog {
-    description
-      "Virtual Network Function Descriptor (VNFD).";
-
-    list vnfd {
-      key "id";
-
-        uses vnfd-base:vnfd-descriptor;
-    }
-  }
-}
-
-// vim: sw=2
diff --git a/models/plugins/yang/vnffgd.yang b/models/plugins/yang/vnffgd.yang
deleted file mode 100644 (file)
index 652ee81..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-
-/*
- * 
- *   Copyright 2016-2017 RIFT.IO Inc
- *
- *   Licensed under the Apache License, Version 2.0 (the "License");
- *   you may not use this file except in compliance with the License.
- *   You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *   Unless required by applicable law or agreed to in writing, software
- *   distributed under the License is distributed on an "AS IS" BASIS,
- *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *   See the License for the specific language governing permissions and
- *   limitations under the License.
- *
- *
- */
-
-module vnffgd
-{
-  namespace "urn:ietf:params:xml:ns:yang:nfvo:vnffgd";
-  prefix "vnffgd";
-
-  import ietf-yang-types {
-    prefix "yang";
-  }
-
-  import rw-project {
-    prefix "rw-project";
-  }
-
-  revision 2017-02-08 {
-    description
-      "Update model to support projects.";
-  }
-
-  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";
-  }
-
-  augment "/rw-project:project" {
-    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/models/plugins/yang/vnfr.yang b/models/plugins/yang/vnfr.yang
deleted file mode 100644 (file)
index b669f97..0000000
+++ /dev/null
@@ -1,609 +0,0 @@
-
-/*
- *
- *   Copyright 2016-2017 RIFT.IO Inc
- *
- *   Licensed under the Apache License, Version 2.0 (the "License");
- *   you may not use this file except in compliance with the License.
- *   You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *   Unless required by applicable law or agreed to in writing, software
- *   distributed under the License is distributed on an "AS IS" BASIS,
- *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *   See the License for the specific language governing permissions and
- *   limitations under the License.
- *
- *
- */
-
-module vnfr
-{
-  namespace "urn:ietf:params:xml:ns:yang:nfvo:vnfr";
-  prefix "vnfr";
-
-  import mano-types {
-    prefix "manotypes";
-  }
-
-  import vnfd-base {
-    prefix "vnfd-base";
-  }
-
-  import project-vnfd {
-    prefix "project-vnfd";
-  }
-
-  import project-nsd {
-    prefix "project-nsd";
-  }
-
-  import vlr {
-    prefix "vlr";
-  }
-
-  import ietf-yang-types {
-    prefix "yang";
-  }
-
-  import ietf-inet-types {
-    prefix "inet";
-  }
-
-  import rw-project {
-    prefix "rw-project";
-  }
-
-  revision 2017-02-28 {
-    description
-      "Update model to support projects.";
-  }
-
-  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";
-  }
-
-  typedef vdu-operational-status {
-    type enumeration {
-      enum init;
-      enum vm-init-phase;
-      enum vm-alloc-pending;
-      enum running;
-      enum upgrading;
-      enum terminate;
-      enum vl-terminate-phase;
-      enum terminated;
-      enum failed;
-    }
-  }
-
-  typedef vnf-operational-status {
-    type enumeration {
-      enum pre-init;
-      enum init;
-      enum vl-init-phase;
-      enum vm-init-phase;
-      enum running;
-      enum upgrading;   // Experimental
-      enum terminate;
-      enum vm-terminate-phase;
-      enum vl-terminate-phase;
-      enum terminated;
-      enum failed;
-    }
-  }
-
-  grouping placement-group-info {
-    list placement-groups-info {
-      description
-          "
-          Placement groups to which this VDU belongs and its
-          cloud construct
-          ";
-      key "name";
-      uses manotypes:placement-group-info;
-      uses manotypes:placement-group-input;
-    }
-  }
-
-  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;
-      }
-    }
-  }
-
-  grouping associated-virtual-cps {
-    list virtual-cps {
-      key "name";
-      uses vnfd-base:common-connection-point;
-
-      leaf ip-address {
-        description
-            "IP address assigned to the virtual connection point";
-        type inet:ip-address;
-      }
-
-      leaf mac-address {
-        description
-            "MAC address assigned to the virtual connection point";
-        type string;
-      }
-
-      leaf connection-point-id {
-        description "VIM identifier for connection point";
-        type string;
-      }
-    }
-  }
-
-  augment "/rw-project:project" {
-    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 "../../../project-nsd:nsd-catalog/project-nsd:nsd/project-nsd:constituent-vnfd/project-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 uptime {
-          description
-            "Active period of this Virtual Network Function.
-          Uptime is expressed in seconds";
-
-          type uint32;
-        }
-
-        container vnfd {
-          description "VNF descriptor used to instantiate this VNF";
-          uses vnfd-base:vnfd-descriptor;
-        }
-
-        leaf vnfd-ref {
-          description "Reference to VNFD";
-          type leafref {
-            path "../../../project-vnfd:vnfd-catalog/project-vnfd:vnfd/project-vnfd:id";
-          }
-        }
-
-        // Use parameters provided here to configure this VNF
-      container vnf-configuration {
-        uses manotypes:vca-configuration;
-      }
-
-        // Mainly used by Mon-params & dashboard url
-        container mgmt-interface {
-          leaf ip-address {
-            type inet:ip-address;
-          }
-
-          leaf port {
-            type inet:port-number;
-          }
-
-          container ssh-key {
-            description "SSH key pair used for this VNF";
-            leaf public-key {
-              description "Public key configured on this VNF";
-              type string;
-            }
-
-            leaf private-key-file {
-              description "Path to the private key file";
-              type string;
-            }
-          }
-        }
-
-        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-base: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 mac-address {
-            description
-              "MAC address assigned to the external connection point";
-            // type inet:mac-address;
-            type string;
-          }
-
-          leaf connection-point-id {
-            type string;
-          }
-
-          uses associated-virtual-cps;
-        }
-
-        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 unique-short-name {
-            description "Short Unique name of the VDU
-                  This will be of the format NSR name-ShortnedString-VDUname
-                  NSR name and VDU name shall be constrained to 10 characters";
-            type string;
-          }
-
-          leaf vdu-id-ref {
-            type leafref {
-              path "../../vnfd/vdu/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;
-          }
-
-          leaf console-url {
-            description "Console URL for this VDU, if available";
-            type inet:uri;
-          }
-
-          uses manotypes:vm-flavor;
-          uses manotypes:guest-epa;
-          uses manotypes:vswitch-epa;
-          uses manotypes:hypervisor-epa;
-          uses manotypes:host-epa;
-
-          uses manotypes:supplemental-boot-data;
-
-        container vdu-configuration {
-          uses manotypes:vca-configuration;
-        }
-
-          list volumes {
-            key "name";
-
-            leaf name {
-              description "Name of the disk-volumes, e.g. vda, vdb etc";
-              type string;
-            }
-
-            leaf volume-id {
-              description "VIM assigned volume id";
-              type string;
-            }
-
-            uses manotypes:volume-info;
-          }
-
-          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-base:common-connection-point;
-
-            leaf ip-address {
-              description
-                "IP address assigned to the internal connection point";
-              type inet:ip-address;
-            }
-
-            leaf mac-address {
-              description
-                "MAC address assigned to the internal connection point";
-              // type inet:mac-address;
-              type string;
-            }
-
-            leaf connection-point-id {
-              type string;
-            }
-
-            uses associated-virtual-cps;
-          }
-
-        list interface {
-          description
-              "List of interfaces (internal and external) for the VNF";
-          key name;
-
-          leaf name {
-            description
-                "Name of the interface. Note that this
-                name has only local significance to the VDU.";
-            type string;
-          }
-
-          leaf position {
-            description
-                "Explicit Position of the interface within the list";
-            type uint32;
-          }
-
-          leaf type {
-            description
-                "Type of the Interface";
-
-            type vnfd-base:interface-type;
-
-            default "EXTERNAL";
-          }
-          choice connection-point-type {
-            case internal {
-              leaf internal-connection-point-ref {
-                description
-                    "Leaf Ref to the particular internal connection point";
-                type leafref {
-                  path "../../internal-connection-point/id";
-                }
-              }
-            }
-            case external {
-              leaf external-connection-point-ref {
-                description
-                    "Leaf Ref to the particular 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
-                upgrading           : The VDU is being upgraded (EXPERIMENTAL)
-                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 vdu-operational-status;
-         }
-
-          uses placement-group-info;
-        }
-
-        uses manotypes:monitoring-param;
-
-        leaf operational-status {
-          description
-            "The operational status of the VNFR instance
-              pre-init            : The VNF before Input Param Substitution.
-              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 vnf-operational-status;
-        }
-
-        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;
-            }
-          }
-        }
-        uses placement-group-info;
-
-        container cloud-config {
-          uses manotypes:cloud-config;
-        }
-      }
-    }
-  }
-}