37ae869bd061d925d8897ad7183deb5c342c1f65
[sdnc/northbound.git] / asdcApi / model / src / main / yang / asdc-license-model.yang
1 module asdc-license-model {
2
3     namespace "http://xmlns.openecomp.org/asdc/license-model/1.0";
4     prefix le;
5     organization "openecomp";
6     contact "asdc";
7     description "schema for both vendor license and VF license models";
8     revision 2016-04-27 {
9         description "xxxx";
10         reference "xxxx";
11     }
12
13     container vendor-license-model {
14         description "xxxx";
15         leaf vendor-name {
16             type string{
17                 length "1..200";
18             }
19             description "xxxx";
20         }
21         uses entitlement-pools;
22         uses license-key-groups;
23     }
24
25     grouping entitlement-pools {
26         description "xxxx";
27         container entitlement-pool-list {
28             description "xxxx";
29             uses entitlement-pool;
30         }
31     }
32
33     grouping entitlement-pool {
34         description "xxxx";
35       list entitlement-pool {
36             description "xxxx";
37             leaf entitlement-pool-uuid {
38                 type string;
39                 description "xxxx";
40             }
41             leaf name {
42                 type string{
43                     length "1..120";
44                 }
45                 description "xxxx";
46             }
47             leaf description {
48                 type string{
49                     length "1..1000";
50                 }
51                 description "xxxx";
52             }
53             leaf manufacturer-reference-number {
54                 type string{
55                     length "1..100";
56                 }
57                 description "xxxx";
58             }
59             uses operational-scope;
60             uses threshold-value;
61             uses entitlement-metric;
62             leaf increments {
63                 type string{
64                     length "1..120";
65                 }
66                 description "xxxx";
67             }
68             uses aggregation-function;
69             uses time;
70         }
71     }
72
73     grouping operational-scope {
74         description "xxxx";
75         container operational-scope {
76         description "xxxx";
77             leaf value {
78                 type enumeration {
79                     enum "Network_Wide"{
80                         description "xxxx";
81                     }
82                     enum "Availability_Zone"{
83                         description "xxxx";
84                     }
85                     enum "Data_Center"{
86                         description "xxxx";
87                     }
88                     enum "Tenant"{
89                         description "xxxx";
90                     }
91                     enum "VM"{
92                         description "xxxx";
93                     }
94                     enum "CPU"{
95                         description "xxxx";
96                     }
97                     enum "Core"{
98                         description "xxxx";
99                     }
100                     enum "Other"{
101                         description "xxxx";
102                     }
103                 }
104                 description "xxxx";
105             }
106             leaf other {
107                 type string{
108                     length "1..200";
109                 }
110                 description "xxxx";
111             }
112         }
113     }
114
115     grouping threshold-value {
116         description "xxxx";
117         container threshold-value {
118         description "xxxx";
119             leaf value {
120                 type uint32{
121                     range "0..9999999";
122                 } //TBD Change to type number
123                 description "xxxx";
124             }
125             leaf unit {
126                 type enumeration {
127                     enum "Absolute"{
128                         description "xxxx";
129                     }
130                     enum "Percentage"{
131                         description "xxxx";
132                     }
133                 }
134                 description "xxxx";
135             }
136         }
137     }
138
139     grouping entitlement-metric {
140         description "xxxx";
141         container entitlement-metric {
142         description "xxxx";
143             leaf value {
144                 type enumeration {
145                     enum "Software_Instances_Count"{
146                         description "xxxx";
147                     }
148                     enum "CPU"{
149                         description "xxxx";
150                     }
151                     enum "Core"{
152                         description "xxxx";
153                     }
154                     enum "Trunks"{
155                         description "xxxx";
156                     }
157                     enum "User"{
158                         description "xxxx";
159                     }
160                     enum "Subscribers"{
161                         description "xxxx";
162                     }
163                     enum "Tenants"{
164                         description "xxxx";
165                     }
166                     enum "Tokens"{
167                         description "xxxx";
168                     }
169                     enum "Seats"{
170                         description "xxxx";
171                     }
172                     enum "Units_TB"{
173                         description "xxxx";
174                     }
175                     enum "Units_GB"{
176                         description "xxxx";
177                     }
178                     enum "Units_MB"{
179                         description "xxxx";
180                     }
181                     enum "Other"{
182                         description "xxxx";
183                     }
184                 }
185                 description "xxxx";
186             }
187             leaf other {
188                 type string{
189                     length "1..200";
190                 }
191                 description "xxxx";
192             }
193         }
194     }
195
196     grouping aggregation-function {
197         description "xxxx";
198         container aggregation-function {
199         description "xxxx";
200             leaf value {
201                 type enumeration {
202                     enum "Peak"{
203                         description "xxxx";
204                     }
205                     enum "Average"{
206                         description "xxxx";
207                     }
208                     enum "Other"{
209                         description "xxxx";
210                     }
211                 }
212                 description "xxxx";
213             }
214             leaf other {
215                 type string{
216                     length "1..200";
217                 }
218                 description "xxxx";
219             }
220         }
221     }
222
223     grouping time {
224         description "xxxx";
225         container time {
226         description "xxxx";
227             leaf value {
228                 type enumeration {
229                     enum "Hour"{
230                         description "xxxx";
231                     }
232                     enum "Day"{
233                         description "xxxx";
234                     }
235                     enum "Month"{
236                         description "xxxx";
237                     }
238                     enum "Quarter"{
239                         description "xxxx";
240                     }
241                     enum "Year"{
242                         description "xxxx";
243                     }
244                     enum "Other"{
245                         description "xxxx";
246                     }
247                 }
248                 description "xxxx";
249             }
250             leaf other {
251                 type string{
252                     length "1..200";
253                 }
254                 description "xxxx";
255             }
256         }
257     }
258
259
260
261     grouping license-key-groups {
262         description "xxxx";
263         container license-key-group-list {
264             description "xxxx";
265             leaf name {
266                 type string;
267                 description "xxxx";
268             }
269             uses license-key-group;
270         }
271     }
272
273     grouping license-key-group {
274         description "xxxx";
275       list license-key-group {
276             description "xxxx";
277             leaf license-key-group-uuid {
278                 type string;
279                 description "xxxx";
280             }
281             leaf name {
282                 type string{
283                     length "1..120";
284                 }
285                 description "xxxx";
286             }
287             leaf description {
288                 type string{
289                     length "1..1000";
290                 }
291                 description "xxxx";
292             }
293             uses operational-scope;
294             leaf type {
295                 type enumeration {
296                     enum "Universal"{
297                         description "xxxx";
298                     }
299                     enum "Unique"{
300                         description "xxxx";
301                     }
302                     enum "One_Time"{
303                         description "xxxx";
304                     }
305                 }
306                 description "xxxx";
307             }
308         }
309     }
310
311     grouping vf-license-model-grouping {
312         description "xxxx";
313       container vf-license-model {
314             description "xxxx";
315             leaf vf-id {
316                 type string{
317                     length "1..200";
318                 }
319                 description "xxxx";
320             }
321             leaf vendor-name {
322                 type string{
323                     length "1..200";
324                 }
325                 description "xxxx";
326             }
327             uses feature-groups;
328         }
329     }
330
331     grouping feature-groups {
332         description "xxxx";
333         container feature-group-list {
334             description "xxxx";
335             uses feature-group-grouping;
336         }
337     }
338
339     grouping feature-group-grouping {
340         description "xxxx";
341       list feature-group {
342             description "xxxx";
343             leaf name{
344                 type string{
345                     length "1..120";
346                 }
347                 description "xxxx";
348             }
349             leaf feature-group-uuid{
350                 type string;
351                 description "xxxx";
352             }
353             leaf description {
354                 type string{
355                     length "1..1000";
356                 }
357                 description "xxxx";
358             }
359             leaf att-part-number {
360                 type string{
361                     length "1..100";
362                 }
363                 description "xxxx";
364             }
365             uses entitlement-pools;
366             uses license-key-groups;
367         }
368     }
369 }