Simple strategy to allow address pairs for virtual IP
[osm/IM.git] / models / yang / mano-types.yang
index f4cce6b..eb38ec2 100644 (file)
@@ -268,6 +268,18 @@ module mano-types
           "Name of the metric, as defined in the Juju charm.";
         type string;
       }
           "Name of the metric, as defined in the Juju charm.";
         type string;
       }
+      leaf execution-environment-ref {
+        description
+          "Leaf reference to the particular execution environment getting that metric";
+        type leafref {
+          path "../../execution-environment-list/id";
+        }
+      }
+      leaf execution-environment-metric {
+        description
+          "Metric in the execution environment referenced by execution-environment-ref";
+        type string;
+      }
     }
   } // END - grouping vca-metrics
 
     }
   } // END - grouping vca-metrics
 
@@ -305,8 +317,100 @@ module mano-types
             type boolean;
             default true;
           }
             type boolean;
             default true;
           }
+          leaf cloud {
+            description
+              "Type of cloud where the charm will be deployed. It only
+               applies to proxy charms (not native)";
+            type enumeration {
+              enum lxd;
+              enum k8s;
+            }
+            default lxd;
+          }
         }
       }
         }
       }
+
+      case execution-environment-list {
+        description
+          "List of Execution Environments to configure or monitor VNF or VDU.";
+        list execution-environment-list {
+          key "id";
+          leaf id {
+            description "Execution environment identifier.";
+            type string;
+          }
+          choice execution-environment-model {
+            description "Execution environment model (juju, helm-chart)";
+            case juju {
+              description
+                "Interact with the VNF or xDU through Juju.";
+              container juju {
+                leaf charm {
+                  description "Juju charm to use with the VNF or VDU.";
+                  type string;
+                }
+                leaf proxy {
+                  description "Is this a proxy charm?";
+                  type boolean;
+                  default true;
+                }
+                leaf cloud {
+                  description
+                    "Type of cloud where the charm will be deployed. It only
+                     applies to proxy charms (not native)";
+                  type enumeration {
+                    enum lxd;
+                    enum k8s;
+                  }
+                  default lxd;
+                }
+              }
+            }
+            case helm-chart {
+              description
+                "Interact with the VNF or xDU through Helm.";
+              leaf helm-chart {
+                description
+                  "Helm chart that models the execution environment, in any of the following ways:
+                   - <helm-repo>/<helm-chart>
+                   - <helm-chart folder name under helm-charts folder in the package>
+                   - <helm-chart tgz file (w/ or w/o extension) under helm-charts folder in the package>
+                   - <URL_where_to_fetch_chart>
+                  ";
+                type string;
+              }
+              leaf helm-version {
+                description
+                  "Helm version to use for this helm-chart, v3 by default";
+                type enumeration {
+                  enum v2;
+                  enum v3;
+                }
+                default v3;
+              }
+            }
+          }
+          leaf metric-service {
+            description
+              "Service name in the execution environment. For helm charts, it will be
+               the name of the kubernetes service used by the exporter to expose metrics
+               to the OSM collector.
+              ";
+            type string;
+          }
+          leaf connection-point-ref {
+            description
+              "String representing a leaf reference to the particular external connection point
+               This field should match /vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id/vnfd:connection-point/vnfd:name
+              ";
+            type string;
+            // type leafref {
+            //   path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id/vnfd:connection-point/vnfd:name";
+            // }
+          }
+        }
+      }
+
     }
   }
 
     }
   }
 
@@ -359,6 +463,21 @@ module mano-types
         type string;
       }
 
         type string;
       }
 
+      leaf execution-environment-ref {
+        description
+          "Leaf reference to the particular execution environment";
+        type leafref {
+          path "../../execution-environment-list/id";
+        }
+      }
+
+      leaf execution-environment-primitive {
+        description
+          "Name of the primitive in the execution enviroment. If not explicit,
+           the leaf 'name' will be used as the name of the primitive.";
+        type string;
+      }
+
       list parameter {
         description
           "List of parameters to the config primitive.";
       list parameter {
         description
           "List of parameters to the config primitive.";
@@ -388,10 +507,18 @@ module mano-types
         case primitive-definition {
           leaf name {
             description
         case primitive-definition {
           leaf name {
             description
-              "Name of the configuration primitive.";
+              "Name of the configuration primitive in the execution environment.";
             type string;
           }
 
             type string;
           }
 
+          leaf execution-environment-ref {
+            description
+              "Leaf reference to the particular execution environment";
+            type leafref {
+              path "../../execution-environment-list/id";
+            }
+          }
+
           uses primitive-parameter-value;
 
           leaf user-defined-script {
           uses primitive-parameter-value;
 
           leaf user-defined-script {
@@ -414,10 +541,18 @@ module mano-types
       }
       leaf name {
         description
       }
       leaf name {
         description
-          "Name of the configuration primitive.";
+          "Name of the configuration primitive in the execution environment.";
         type string;
       }
 
         type string;
       }
 
+      leaf execution-environment-ref {
+        description
+          "Leaf reference to the particular execution environment";
+        type leafref {
+          path "../../execution-environment-list/id";
+        }
+      }
+
       uses primitive-parameter-value;
 
       leaf user-defined-script {
       uses primitive-parameter-value;
 
       leaf user-defined-script {