RIFT-14481 uptime for vlr, vnfr, nsr
[osm/SO.git] / models / plugins / yang / vnfd.yang
index c035bd3..ebd56ad 100644 (file)
@@ -115,6 +115,103 @@ module vnfd
     }
   }
 
+  grouping vnf-access-point {
+    list vnfap {
+      description "List of VNF access points";
+      key "name";
+      leaf name {
+        description "Name of the vnf access point";
+        type string {
+          length 128;
+        }
+      }
+      leaf description {
+        description "A description of this VNF access point";
+        type string;
+      }
+      list capability {
+        description "The List  of capabilities of this VNF access point";
+        key "name";
+        leaf name {
+          description "Name of the capability";
+          type string {
+            length 128;
+          }
+        }
+        leaf description {
+          description "A description of the capability";
+          type string;
+        }
+        choice capability-location {
+          case location-path {
+            leaf xpath {
+               description "Location of this capaibility as an xpath.
+                           This field points to an element within vnfd
+                           with the xpath notation and additionally 
+                           provides the flexibility to choose attributes
+                           within the instantiated version of this object.
+                           For example, 
+                              /vnfd-catalog/vnfd[id='xyz']/connection-point[name='cp1']/ip_address()
+                              refers to the ip address of the connection point with name 'cp1' 
+                              in VNFD with id 'xyz'.";
+              type string;
+            }
+          }
+          case location-primitive-ref {
+            leaf config-primitive-name-ref {
+               description "A leafref to configuration primitive.
+                            This field contains a link to the config primitive
+                            the output paramaters of which will satisfy this requirement.";
+               type leafref {
+                 path "/vnfd:vnfd-catalog/vnfd/vnf-configuration/service-primitive/name";
+               }
+            }
+          }
+          case user-input {
+            list user-input {
+              key "name";
+              description "User input for this capability";
+              leaf name {
+                description "Name of this input";
+                type string;
+              }
+              leaf value {
+                description "Value of this input";
+                type string;
+              }
+            }
+          }
+        }
+      }
+      list dependency {
+        description "The List of depenencies of this VNF access point";
+        key "name";
+        leaf name {
+          description "Name of this VNF access point";
+          type string {
+            length 128;
+          }
+        }
+        leaf mandatory {
+          description "Is this dependcy mandatory for this dependency";
+          type boolean;
+        }
+        leaf description {
+          description "A description of the dependency";
+          type string;
+        }
+        leaf config-primitive-name-ref {
+         description "A leafref to configuration primitive.
+                      This field contains a link to the config primitive
+                      the input paramaters of which will satisfy this requirement.";
+          type leafref {
+            path "/vnfd:vnfd-catalog/vnfd/vnf-configuration/service-primitive/name";
+          }
+        }
+      }
+    }
+  }
+
   container vnfd-catalog {
 
     description
@@ -268,12 +365,16 @@ module vnfd
           type uint64;
         }
 
-        leaf-list internal-connection-point-ref {
-          type leafref {
-            path "../../vdu/internal-connection-point/id";
+        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;
       }
 
@@ -508,6 +609,7 @@ module vnfd
           }
         }
       }
+      uses vnf-access-point;
     }
   }
 }