All the yang files from SO committed to IM
[osm/IM.git] / models / yang / rw-nsr.yang
diff --git a/models/yang/rw-nsr.yang b/models/yang/rw-nsr.yang
new file mode 100644 (file)
index 0000000..472332e
--- /dev/null
@@ -0,0 +1,436 @@
+
+/*
+ *
+ *   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 rw-nsr
+{
+  namespace "http://riftio.com/ns/riftware-1.0/rw-nsr";
+  prefix "rw-nsr";
+
+  import mano-types {
+    prefix "manotypes";
+  }
+
+  import nsr {
+    prefix "nsr";
+  }
+
+  import nsd {
+    prefix "nsd";
+  }
+
+  import rw-cloud {
+    prefix "rw-cloud";
+  }
+
+  import rw-config-agent {
+    prefix "rw-config-agent";
+  }
+
+  import rw-sdn {
+    prefix "rw-sdn";
+  }
+
+  import ietf-yang-types {
+    prefix "yang";
+  }
+
+  revision 2015-09-10 {
+    description
+      "Initial revision. This YANG file augments
+       the base MANO VNFD";
+    reference
+      "Derived from earlier versions of base YANG files";
+  }
+
+  grouping operational-events {
+    list operational-events {
+      key "id";
+      description
+        "Recent operational events for this network service.
+        Though the model does not impose any restrictions on the numbe of events,
+        the max operational events will be limited to the most recent 10";
+
+      leaf id {
+        description "The id of the instance";
+        type uint64;
+      }
+
+      leaf timestamp {
+        description
+          "The timestamp of this event expressed as seconds since
+          unix epoch - 1970-01-01T00:00:00Z";
+        type uint32;
+      }
+      leaf event {
+        description "Short description of the event";
+        type string;
+      }
+      leaf description {
+        description
+          "The description of this event";
+        type string;
+      }
+      leaf details {
+        description
+          "The detailed description of this event (in case of errors)";
+        type string;
+      }
+    }
+  }
+
+
+  grouping rw-ns-instance-config {
+    leaf cloud-account {
+      description
+        "The configured cloud account which the NSR is instantiated within.
+         All VDU's, Virtual Links, and provider networks will be requested
+         using the cloud-account's associated CAL instance";
+      type leafref {
+        path "/rw-cloud:cloud/rw-cloud:account/rw-cloud:name";
+      }
+    }
+
+    leaf om-datacenter {
+      description
+        "Openmano datacenter name to use when instantiating
+         the network service.  This is only used when openmano
+         is selected as the cloud account.  This should be superceded
+         by multiple cloud accounts when that becomes available.";
+      type string;
+    }
+
+    list vnf-cloud-account-map {
+      description
+          "Mapping VNF to Cloud Account where VNF will be instantiated";
+
+      key "member-vnf-index-ref";
+      leaf member-vnf-index-ref {
+        type uint64;
+      }
+
+      leaf cloud-account {
+        description
+            "The configured cloud account where VNF is instantiated within.
+            All VDU's, Virtual Links, and provider networks will be requested
+            using the cloud-account's associated CAL instance";
+        type leafref {
+          path "/rw-cloud:cloud/rw-cloud:account/rw-cloud:name";
+        }
+      }
+
+      leaf om-datacenter {
+        description
+            "Openmano datacenter name to use when instantiating
+            the network service.  This is only used when openmano
+            is selected as the cloud account.  This should be superceded
+            by multiple cloud accounts when that becomes available.";
+        type string;
+      }
+
+      leaf config-agent-account {
+        description
+          "The configured config agent account to use for instantiating this VNF.
+          The configuration for this VNF will be driven using the specified config
+          agent account";
+        type leafref {
+          path "/rw-config-agent:config-agent/rw-config-agent:account/rw-config-agent:name";
+        }
+      }
+    }
+
+    list vl-cloud-account-map {
+      description
+          "Mapping VL to Cloud Account where VL will be instantiated";
+
+      key "vld-id-ref";
+
+      leaf vld-id-ref {
+        description
+            "A reference to a vld.
+            leafref path ../../nsd/vld/id";
+        type string;
+      }
+
+      leaf-list cloud-accounts {
+        description
+            "The configured list of cloud accounts where VL is instantiated.
+            All VDU's, Virtual Links, and provider networks will be requested
+            using the cloud-account's associated CAL instance";
+        type leafref {
+          path "/rw-cloud:cloud/rw-cloud:account/rw-cloud:name";
+        }
+      }
+
+      leaf-list om-datacenters {
+        description
+            "Openmano datacenter names to use when instantiating
+            the VLs. This is only used when openmano
+            is selected as the cloud account.  This should be superceded
+            by multiple cloud accounts when that becomes available.";
+        type string;
+      }
+    }
+  }
+
+
+  augment /nsr:ns-instance-config/nsr:nsr {
+    uses rw-ns-instance-config;
+  }
+
+  augment /nsr:start-network-service/nsr:input{
+    uses rw-ns-instance-config;
+  }
+
+  augment /nsr:ns-instance-opdata/nsr:nsr {
+    uses manotypes:action-param;
+    uses manotypes:control-param;
+
+    leaf sdn-account {
+      description
+        "The SDN account associted with the cloud account using which an
+         NS was instantiated.";
+      type leafref {
+        path "/rw-sdn:sdn/rw-sdn:account/rw-sdn:name";
+      }
+    }
+
+    leaf config-status-details {
+      description
+        "The configuration status error details of the NS instance, in case of any errors";
+      type string;
+    }
+
+    container nfvi-metrics {
+      container vm {
+        leaf label {
+          description
+            "Label to show in UI";
+          type string;
+          default "VM";
+        }
+
+        leaf active-vm {
+          description
+            "The number of active VMs.";
+          type uint64;
+        }
+
+        leaf inactive-vm {
+          description
+            "The number of inactive VMs.";
+          type uint64;
+        }
+      }
+
+      uses manotypes:nfvi-metrics;
+    }
+
+    container epa-param {
+      container ovs-acceleration {
+        leaf label {
+          description
+            "Label to show in UI for the param";
+          type string;
+          default "OVS ACCELERATION";
+        }
+
+        leaf vm {
+          description
+            "Number of VMs with the EPA attribute";
+          type uint64;
+        }
+
+        leaf unit {
+          description
+            "Unit label to show in the UI";
+          type string;
+          default "vms";
+        }
+      }
+
+      container ovs-offload {
+        leaf label {
+          description
+            "Label to show in UI for the param";
+          type string;
+          default "OVS OFFLOAD";
+        }
+
+        leaf vm {
+          description
+            "Number of VMs with the EPA attribute";
+          type uint64;
+        }
+
+        leaf unit {
+          description
+            "Unit label to show in the UI";
+          type string;
+          default "vms";
+        }
+
+      }
+
+      container ddio {
+        leaf label {
+          description
+            "Label to show in UI for the param";
+          type string;
+          default "DDIO";
+        }
+
+        leaf vm {
+          description
+            "Number of VMs with the EPA attribute";
+          type uint64;
+        }
+
+        leaf unit {
+          description
+            "Unit label to show in the UI";
+          type string;
+          default "vms";
+        }
+
+      }
+
+      container cat {
+        leaf label {
+          description
+            "Label to show in UI for the param";
+          type string;
+          default "CAT";
+        }
+
+        leaf vm {
+          description
+            "Number of VMs with the EPA attribute";
+          type uint64;
+        }
+
+        leaf unit {
+          description
+            "Unit label to show in the UI";
+          type string;
+          default "vms";
+        }
+      }
+
+      container cmt {
+        leaf label {
+          description
+            "Label to show in UI for the param";
+          type string;
+          default "CMT";
+        }
+
+        leaf vm {
+          description
+            "Number of VMs with the EPA attribute";
+          type uint64;
+        }
+
+        leaf unit {
+          description
+            "Unit label to show in the UI";
+          type string;
+          default "vms";
+        }
+
+      }
+    }
+    uses operational-events;
+  }
+
+
+  augment /nsr:ns-instance-opdata/nsr:nsr/nsr:vlr {
+    leaf assigned-subnet {
+      description "Subnet added for the VL";
+      type string;
+    }
+    leaf cloud-account {
+      description
+        "The configured cloud account in which the VL is instantiated within.";
+      type leafref {
+        path "/rw-cloud:cloud/rw-cloud:account/rw-cloud:name";
+      }
+    }
+    leaf om-datacenter {
+      description
+        "Openmano datacenter name to use when instantiating
+         the network service.  This is only used when openmano
+         is selected as the cloud account.  This should be superceded
+         by multiple cloud accounts when that becomes available.";
+      type string;
+    }
+  }
+
+  augment /nsr:ns-instance-opdata/nsr:nsr/nsr:constituent-vnfr-ref {
+    leaf cloud-account {
+      description
+        "The configured cloud account in which the VNF is instantiated within.
+         All VDU's, Virtual Links, and provider networks will be requested
+         using the cloud-account's associated CAL instance";
+      type leafref {
+        path "/rw-cloud:cloud/rw-cloud:account/rw-cloud:name";
+      }
+    }
+    leaf om-datacenter {
+      description
+        "Openmano datacenter name to use when instantiating
+         the network service.  This is only used when openmano
+         is selected as the cloud account.  This should be superceded
+         by multiple cloud accounts when that becomes available.";
+      type string;
+    }
+  }
+
+  augment /nsr:ns-instance-config {
+    leaf nfvi-polling-period {
+      description
+        "Defines the period (secons) that the NFVI metrics are polled at";
+      type uint64;
+      default 4;
+    }
+  }
+
+  notification nsm-notification {
+    description "Notification for NSM Events.
+        The timestamp of this event is automatically expressed
+        in human readble format - 1970-01-01T00:00:00Z";
+
+    leaf event {
+      description "Short name of the event";
+      type string;
+    }
+
+    leaf description {
+      description "The description of this event";
+      type string;
+    }
+
+    leaf details {
+      description "The detailed description of this event, in case of errors";
+      type string;
+    }
+  }
+}
+
+// vim: sw=2