Merge feature7106
[osm/IM.git] / models / yang / nsi.yang
index 32087d3..06fe5a1 100644 (file)
@@ -1,9 +1,23 @@
-//INFORMATION
-//organization "CTTC";
-//contact "Pol Alemany, Ricard Vilalta, Juan Luis de la Cruz";
-//description "Network Slice components definition";
+/*
+ *
+ *   Copyright 2018 CTTC
+ *   Copyright 2018 Telefonica Investigacion y Desarrollo S.A.U.
+ *
+ *   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 STRUCTURE
 module nsi {
   //header information
   yang-version 1;
@@ -18,16 +32,16 @@ module nsi {
     prefix "nsr";
   }
 
-  import vlr {
-    prefix "vlr";
-  }
-
   import rw-project {
     prefix "rw-project";
   }
 
-  import instantiation-parameters {
-    prefix "instantiation-parameters";
+  import netslice-instantiation-parameters {
+    prefix "netslice-instantiation-parameters";
+  }
+
+  import ietf-yang-types {
+    prefix "yang";
   }
 
   //revision history
@@ -37,23 +51,35 @@ module nsi {
 
   grouping nsi {
     leaf id {
+      description "Identifier for the NSI.";
+      type yang:uuid;
+    }
+
+    leaf name {
+      description "NSI name.";
+      type string;
+      mandatory true;
+    }
+
+    leaf short-name {
+      description "NSI short name.";
       type string;
     }
+
+    leaf description {
+      description "NSI description.";
+      type string;
+    }
+
     leaf nst-ref {
       type leafref {
         path "/nst:nst/nst:id";
       }
+      mandatory true;
     }
 
     container instantiation-parameters {
-      list netslice-subnet {
-        key "nsdId";
-        uses instantiation-parameters:ns_instantiate;
-      }
-      list netslice-vld {
-        key "name";
-        uses instantiation-parameters:vld;
-      }
+      uses netslice-instantiation-parameters:netslice_params;
     }
 
     container network-slice-template {
@@ -72,21 +98,20 @@ module nsi {
       }
     }
 
-    list vlr-ref-list{
-      key "vlr-ref";
+    list vlr-list{
       config false;
-      leaf vlr-ref {
-        description "Reference to instantiated VLR";
+      key "id";
+      leaf id {
+        description "ID of instantiated VLR";
         config false;
-        type leafref {
-          path "/rw-project:project/vlr:vlr-catalog/vlr:vlr/vlr:id";
-        }
+        type yang:uuid;
       }
     }
   }
 
   list nsi{
     key "id";
+    unique "name";
     uses nsi;
   }