Initial commit for OpenECOMP SDN-C northbound
[sdnc/northbound.git] / asdcApi / model / src / main / yang / asdc-license-model.yang
diff --git a/asdcApi/model/src/main/yang/asdc-license-model.yang b/asdcApi/model/src/main/yang/asdc-license-model.yang
new file mode 100755 (executable)
index 0000000..37ae869
--- /dev/null
@@ -0,0 +1,369 @@
+module asdc-license-model {
+
+    namespace "http://xmlns.openecomp.org/asdc/license-model/1.0";
+    prefix le;
+    organization "openecomp";
+    contact "asdc";
+    description "schema for both vendor license and VF license models";
+    revision 2016-04-27 {
+        description "xxxx";
+        reference "xxxx";
+    }
+
+    container vendor-license-model {
+        description "xxxx";
+        leaf vendor-name {
+            type string{
+                length "1..200";
+            }
+            description "xxxx";
+        }
+        uses entitlement-pools;
+        uses license-key-groups;
+    }
+
+    grouping entitlement-pools {
+        description "xxxx";
+        container entitlement-pool-list {
+            description "xxxx";
+            uses entitlement-pool;
+        }
+    }
+
+    grouping entitlement-pool {
+        description "xxxx";
+      list entitlement-pool {
+            description "xxxx";
+            leaf entitlement-pool-uuid {
+                type string;
+                description "xxxx";
+            }
+            leaf name {
+                type string{
+                    length "1..120";
+                }
+                description "xxxx";
+            }
+            leaf description {
+                type string{
+                    length "1..1000";
+                }
+                description "xxxx";
+            }
+            leaf manufacturer-reference-number {
+                type string{
+                    length "1..100";
+                }
+                description "xxxx";
+            }
+            uses operational-scope;
+            uses threshold-value;
+            uses entitlement-metric;
+            leaf increments {
+                type string{
+                    length "1..120";
+                }
+                description "xxxx";
+            }
+            uses aggregation-function;
+            uses time;
+        }
+    }
+
+    grouping operational-scope {
+        description "xxxx";
+        container operational-scope {
+        description "xxxx";
+            leaf value {
+                type enumeration {
+                    enum "Network_Wide"{
+                        description "xxxx";
+                    }
+                    enum "Availability_Zone"{
+                        description "xxxx";
+                    }
+                    enum "Data_Center"{
+                        description "xxxx";
+                    }
+                    enum "Tenant"{
+                        description "xxxx";
+                    }
+                    enum "VM"{
+                        description "xxxx";
+                    }
+                    enum "CPU"{
+                        description "xxxx";
+                    }
+                    enum "Core"{
+                        description "xxxx";
+                    }
+                    enum "Other"{
+                        description "xxxx";
+                    }
+                }
+                description "xxxx";
+            }
+            leaf other {
+                type string{
+                    length "1..200";
+                }
+                description "xxxx";
+            }
+        }
+    }
+
+    grouping threshold-value {
+        description "xxxx";
+        container threshold-value {
+        description "xxxx";
+            leaf value {
+                type uint32{
+                    range "0..9999999";
+                } //TBD Change to type number
+                description "xxxx";
+            }
+            leaf unit {
+                type enumeration {
+                    enum "Absolute"{
+                        description "xxxx";
+                    }
+                    enum "Percentage"{
+                        description "xxxx";
+                    }
+                }
+                description "xxxx";
+            }
+        }
+    }
+
+    grouping entitlement-metric {
+        description "xxxx";
+        container entitlement-metric {
+        description "xxxx";
+            leaf value {
+                type enumeration {
+                    enum "Software_Instances_Count"{
+                        description "xxxx";
+                    }
+                    enum "CPU"{
+                        description "xxxx";
+                    }
+                    enum "Core"{
+                        description "xxxx";
+                    }
+                    enum "Trunks"{
+                        description "xxxx";
+                    }
+                    enum "User"{
+                        description "xxxx";
+                    }
+                    enum "Subscribers"{
+                        description "xxxx";
+                    }
+                    enum "Tenants"{
+                        description "xxxx";
+                    }
+                    enum "Tokens"{
+                        description "xxxx";
+                    }
+                    enum "Seats"{
+                        description "xxxx";
+                    }
+                    enum "Units_TB"{
+                        description "xxxx";
+                    }
+                    enum "Units_GB"{
+                        description "xxxx";
+                    }
+                    enum "Units_MB"{
+                        description "xxxx";
+                    }
+                    enum "Other"{
+                        description "xxxx";
+                    }
+                }
+                description "xxxx";
+            }
+            leaf other {
+                type string{
+                    length "1..200";
+                }
+                description "xxxx";
+            }
+        }
+    }
+
+    grouping aggregation-function {
+        description "xxxx";
+        container aggregation-function {
+        description "xxxx";
+            leaf value {
+                type enumeration {
+                    enum "Peak"{
+                        description "xxxx";
+                    }
+                    enum "Average"{
+                        description "xxxx";
+                    }
+                    enum "Other"{
+                        description "xxxx";
+                    }
+                }
+                description "xxxx";
+            }
+            leaf other {
+                type string{
+                    length "1..200";
+                }
+                description "xxxx";
+            }
+        }
+    }
+
+    grouping time {
+        description "xxxx";
+        container time {
+        description "xxxx";
+            leaf value {
+                type enumeration {
+                    enum "Hour"{
+                        description "xxxx";
+                    }
+                    enum "Day"{
+                        description "xxxx";
+                    }
+                    enum "Month"{
+                        description "xxxx";
+                    }
+                    enum "Quarter"{
+                        description "xxxx";
+                    }
+                    enum "Year"{
+                        description "xxxx";
+                    }
+                    enum "Other"{
+                        description "xxxx";
+                    }
+                }
+                description "xxxx";
+            }
+            leaf other {
+                type string{
+                    length "1..200";
+                }
+                description "xxxx";
+            }
+        }
+    }
+
+
+
+    grouping license-key-groups {
+        description "xxxx";
+        container license-key-group-list {
+            description "xxxx";
+            leaf name {
+                type string;
+                description "xxxx";
+            }
+            uses license-key-group;
+        }
+    }
+
+    grouping license-key-group {
+        description "xxxx";
+      list license-key-group {
+            description "xxxx";
+            leaf license-key-group-uuid {
+                type string;
+                description "xxxx";
+            }
+            leaf name {
+                type string{
+                    length "1..120";
+                }
+                description "xxxx";
+            }
+            leaf description {
+                type string{
+                    length "1..1000";
+                }
+                description "xxxx";
+            }
+            uses operational-scope;
+            leaf type {
+                type enumeration {
+                    enum "Universal"{
+                        description "xxxx";
+                    }
+                    enum "Unique"{
+                        description "xxxx";
+                    }
+                    enum "One_Time"{
+                        description "xxxx";
+                    }
+                }
+                description "xxxx";
+            }
+        }
+    }
+
+    grouping vf-license-model-grouping {
+        description "xxxx";
+      container vf-license-model {
+            description "xxxx";
+            leaf vf-id {
+                type string{
+                    length "1..200";
+                }
+                description "xxxx";
+            }
+            leaf vendor-name {
+                type string{
+                    length "1..200";
+                }
+                description "xxxx";
+            }
+            uses feature-groups;
+        }
+    }
+
+    grouping feature-groups {
+        description "xxxx";
+        container feature-group-list {
+            description "xxxx";
+            uses feature-group-grouping;
+        }
+    }
+
+    grouping feature-group-grouping {
+        description "xxxx";
+      list feature-group {
+            description "xxxx";
+            leaf name{
+                type string{
+                    length "1..120";
+                }
+                description "xxxx";
+            }
+            leaf feature-group-uuid{
+                type string;
+                description "xxxx";
+            }
+            leaf description {
+                type string{
+                    length "1..1000";
+                }
+                description "xxxx";
+            }
+            leaf att-part-number {
+                type string{
+                    length "1..100";
+                }
+                description "xxxx";
+            }
+            uses entitlement-pools;
+            uses license-key-groups;
+        }
+    }
+}