Release version 2.1.1 and roll versions
[sdnc/northbound.git] / vnfapi / model / src / main / yang / vnfsubmodule.yang
1 submodule vnfsubmodule {\r
2 \r
3     belongs-to VNF-API { prefix "vnfapi"; }\r
4 \r
5     // Last updated on 8-17-2016\r
6     /********************************************/\r
7     /*             vnf-instance                 */\r
8     /********************************************/\r
9         grouping vnf-instance-request-information {\r
10                 container vnf-instance-request-information {\r
11             leaf request-version {\r
12                 type string;\r
13             }\r
14             uses vnf-instance-topology-identifier;\r
15             uses region-identifier;\r
16                         list vnf-networks {\r
17                                 key network-role;\r
18                                 uses vnfapi:vnf-network;\r
19                                 description "List of vnf networks to override preload";\r
20                         }\r
21                 }\r
22         }\r
23 \r
24     grouping region-identifier {\r
25         leaf tenant {\r
26             type string;\r
27         }\r
28         leaf aic-cloud-region {\r
29             type string;\r
30             description "The AIC cloud region which maps to contrail versions";\r
31         }\r
32     }\r
33 \r
34 \r
35     /***********************************************************/\r
36     /*             PRELOAD DATA - vnf-instance                 */\r
37     /***********************************************************/\r
38 \r
39         container preload-vnf-instances {\r
40                 uses preload-vnf-instance-model-information;\r
41         }\r
42         grouping preload-vnf-instance-model-information {\r
43                 list vnf-instance-preload-list {\r
44                         key "vnf-instance-name vnf-model-id";\r
45                         leaf vnf-instance-name {\r
46                                 type string;\r
47                                 description "vnf-instance-name, aka generic-vnf-name";\r
48                         }\r
49                         leaf vnf-model-id {\r
50                                 type string;\r
51                                 description "vnf-model-id, aka generic-vnf-type";\r
52                         }\r
53                         uses vnf-instance-preload-data;\r
54                 }\r
55         }\r
56 \r
57         grouping vnf-instance-preload-data {\r
58                 container vnf-instance-preload-data {\r
59                         uses vnf-instance-topology-information;\r
60                         uses vnfapi:oper-status;\r
61                 }\r
62         }\r
63 \r
64         grouping vnf-instance-topology-information {\r
65                 container vnf-instance-topology-information {\r
66                         uses vnf-instance-identifiers;\r
67                         uses vnfapi:service-information;\r
68                         uses vnfapi:vnf-assignments;\r
69                         uses vnfapi:vnf-parameters;\r
70                 }\r
71         }\r
72 \r
73     // This is used by MSO request for assign,rollback,activate,delete, etc\r
74         grouping vnf-instance-topology-identifier {\r
75                 leaf vnf-instance-name {\r
76                         type string;\r
77                 }\r
78                 leaf vnf-model-id {\r
79                         type string;\r
80                 }\r
81                 leaf vnf-instance-id {\r
82                         type string;\r
83                 }\r
84         }\r
85 \r
86     // container used in preload identifiers\r
87     grouping vnf-instance-identifiers {\r
88         container vnf-instance-identifiers {\r
89             uses vnf-instance-topology-identifier;\r
90         }\r
91     }\r
92 \r
93         /***********************************************************/\r
94     /*               SERVICE_DATA  - vnf-instance              */\r
95         /***********************************************************/\r
96         container vnf-instances {\r
97                 uses vnf-instance-model-infrastructure;\r
98         }\r
99         grouping vnf-instance-model-infrastructure {\r
100                 list vnf-instance-list {\r
101                         key vnf-instance-id;\r
102                         leaf vnf-instance-id {\r
103                                 type string;\r
104                                 mandatory true;\r
105                                 description "generic-vnf-id";\r
106                         }\r
107                         uses vnf-instance-service-data;\r
108                         uses vnfapi:service-status;\r
109                 }\r
110         }\r
111 \r
112     grouping vnf-instance-service-data {\r
113         container vnf-instance-service-data {\r
114             uses vnf-instance-configuration-information;\r
115             uses vf-module-relationship-list;\r
116             uses vnfapi:oper-status;\r
117         }\r
118     }\r
119 \r
120         grouping vnf-instance-configuration-information {\r
121                 uses vnfapi:sdnc-request-header;\r
122                 uses vnfapi:request-information;\r
123                 uses vnfapi:service-information;\r
124                 uses vnf-instance-request-information;\r
125                 uses vnf-instance-topology;\r
126         }\r
127 \r
128     grouping vf-module-relationship-list {\r
129         list vf-module-relationship-list {\r
130             key "vf-module-id";\r
131             leaf vf-module-id {\r
132                 type string;\r
133                 description "vf-module-id";\r
134             }\r
135         }\r
136     }\r
137 \r
138         grouping vnf-instance-topology-response-body {\r
139                 leaf svc-request-id {\r
140                         type string;\r
141                 }\r
142                 leaf response-code {\r
143                         type string;\r
144                 }\r
145                 leaf response-message {\r
146                         type string;\r
147                 }\r
148                 leaf ack-final-indicator {\r
149                         type string;\r
150                 }\r
151         }\r
152 \r
153         grouping vnf-instance-information {\r
154                 container vnf-instance-information {\r
155                         leaf vnf-instance-id {\r
156                                 type string;\r
157                                 description "vnf-instance-id";\r
158                         }\r
159                 }\r
160         }\r
161 \r
162         grouping vnf-instance-topology {\r
163                 leaf vnf-instance-id {\r
164                         type string;\r
165                         description "vnf-instance-id";\r
166                 }\r
167                 uses vnf-instance-topology-information;\r
168         }\r
169 \r
170 \r
171         rpc vnf-instance-topology-operation {\r
172                 input {\r
173                         uses sdnc-request-header;\r
174                         uses request-information;\r
175                         uses service-information;\r
176                         uses vnf-instance-request-information;\r
177                 }\r
178                 output {\r
179                         uses vnf-instance-topology-response-body;\r
180                         uses vnf-instance-information;\r
181                         uses service-information;\r
182                 }\r
183         }\r
184 \r
185         rpc preload-vnf-instance-topology-operation {\r
186                 input {\r
187                         uses sdnc-request-header;\r
188                         uses request-information;\r
189                         uses vnf-instance-topology-information;\r
190                 }\r
191                 output {\r
192                         uses vnf-instance-topology-response-body;\r
193                 }\r
194         }\r
195 \r
196     /********************************************/\r
197     /*             vf-module                    */\r
198     /********************************************/\r
199         grouping vf-module-request-information {\r
200                 container vf-module-request-information {\r
201             uses vnf-instance-topology-identifier;\r
202             uses region-identifier;\r
203             uses vf-module-topology-identifier;\r
204                 }\r
205         }\r
206 \r
207     grouping vf-module-identifiers {\r
208         container vf-module-identifiers {\r
209             uses vf-module-topology-identifier;\r
210         }\r
211     }\r
212 \r
213     grouping vf-module-topology-identifier {\r
214         leaf vf-module-id {\r
215             type string;\r
216             description "vf-module id";\r
217         }\r
218         leaf vf-module-name {\r
219             type string;\r
220             description "vf-module-name";\r
221         }\r
222         leaf vf-module-model-id {\r
223             type string;\r
224             description "vf-module-type";\r
225         }\r
226     }\r
227 \r
228     /***********************************************************/\r
229     /*             PRELOAD DATA  - vfmodule                    */\r
230     /***********************************************************/\r
231         container preload-vf-modules {\r
232                 uses preload-vf-module-model-information;\r
233         }\r
234 \r
235         grouping preload-vf-module-model-information {\r
236                 list vf-module-preload-list {\r
237                         key "vf-module-name vf-module-model-id";\r
238                         leaf vf-module-name {\r
239                                 type string;\r
240                                 description "vf-module-name";\r
241                         }\r
242                         leaf vf-module-model-id {\r
243                                 type string;\r
244                                 description "vf-module-type";\r
245                         }\r
246                         uses vf-module-preload-data;\r
247                 }\r
248         }\r
249 \r
250         grouping vf-module-preload-data {\r
251                 container vf-module-preload-data {\r
252                         uses vf-module-topology-information;\r
253                         uses vnfapi:oper-status;\r
254                 }\r
255         }\r
256 \r
257         grouping vf-module-topology-information {\r
258                 container vf-module-topology-information {\r
259                         uses vf-module-identifiers;\r
260                         uses vnfapi:vnf-assignments;\r
261                         uses vnfapi:vnf-parameters;\r
262                 }\r
263         }\r
264 \r
265 \r
266     /***********************************************************/\r
267     /*               SERVICE_DATA - vfmodule                   */\r
268     /***********************************************************/\r
269         container vf-modules {\r
270                 uses vf-module-model-infrastructure;\r
271         }\r
272         grouping vf-module-model-infrastructure {\r
273                 list vf-module-list {\r
274                         key vf-module-id;\r
275                         leaf vf-module-id {\r
276                                 type string;\r
277                                 mandatory true;\r
278                                 description "vf-module-id";\r
279                         }\r
280                         uses vf-module-service-data;\r
281                         uses vnfapi:service-status;\r
282                 }\r
283         }\r
284 \r
285    grouping vf-module-service-data {\r
286      container vf-module-service-data {\r
287        uses vf-module-configuration-information;\r
288        uses vnfapi:oper-status;\r
289      }\r
290     }\r
291 \r
292         grouping vf-module-configuration-information {\r
293                 uses vnfapi:sdnc-request-header;\r
294                 uses vnfapi:request-information;\r
295                 uses vnfapi:service-information;\r
296                 uses vf-module-request-information;\r
297                 uses vf-module-topology;\r
298         }\r
299 \r
300         grouping vf-module-topology-response-body {\r
301                 leaf svc-request-id {\r
302                         type string;\r
303                 }\r
304                 leaf response-code {\r
305                         type string;\r
306                 }\r
307                 leaf response-message {\r
308                         type string;\r
309                 }\r
310                 leaf ack-final-indicator {\r
311                         type string;\r
312                 }\r
313         }\r
314 \r
315         grouping vf-module-information {\r
316                 container vf-module-information {\r
317                         leaf vf-module-id {\r
318                                 type string;\r
319                                 description "vf-module-id";\r
320                         }\r
321                 }\r
322         }\r
323 \r
324         grouping vf-module-topology {\r
325                 leaf vf-module-id {\r
326                         type string;\r
327                         description "vf-module-id";\r
328                 }\r
329                 uses vf-module-topology-information;\r
330         }\r
331 \r
332 \r
333         rpc vf-module-topology-operation {\r
334                 input {\r
335                         uses sdnc-request-header;\r
336                         uses request-information;\r
337                         uses service-information;\r
338                         uses vf-module-request-information;\r
339                 }\r
340                 output {\r
341                         uses vf-module-topology-response-body;\r
342                         uses vf-module-information;\r
343                         uses service-information;\r
344                 }\r
345         }\r
346 \r
347         rpc preload-vf-module-topology-operation {\r
348                 input {\r
349                         uses sdnc-request-header;\r
350                         uses request-information;\r
351                         uses vf-module-topology-information;\r
352                 }\r
353                 output {\r
354                         uses vf-module-topology-response-body;\r
355                 }\r
356         }\r
357 }\r