1c573d216b180021ad18d97c2998786d0072a8d8
[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             leaf vf-module-id {\r
131                 type string;\r
132                 description "vf-module-id";\r
133             }\r
134         }\r
135     }\r
136 \r
137         grouping vnf-instance-topology-response-body { \r
138                 leaf svc-request-id { \r
139                         type string; \r
140                 } \r
141                 leaf response-code { \r
142                         type string; \r
143                 } \r
144                 leaf response-message { \r
145                         type string; \r
146                 } \r
147                 leaf ack-final-indicator { \r
148                         type string; \r
149                 } \r
150         } \r
151 \r
152         grouping vnf-instance-information { \r
153                 container vnf-instance-information { \r
154                         leaf vnf-instance-id { \r
155                                 type string; \r
156                                 description "vnf-instance-id";\r
157                         } \r
158                 } \r
159         } \r
160 \r
161         grouping vnf-instance-topology { \r
162                 leaf vnf-instance-id {\r
163                         type string; \r
164                         description "vnf-instance-id";\r
165                 }\r
166                 uses vnf-instance-topology-information; \r
167         } \r
168         \r
169         \r
170         rpc vnf-instance-topology-operation {\r
171                 input { \r
172                         uses sdnc-request-header; \r
173                         uses request-information; \r
174                         uses service-information;\r
175                         uses vnf-instance-request-information; \r
176                 } \r
177                 output { \r
178                         uses vnf-instance-topology-response-body; \r
179                         uses vnf-instance-information;\r
180                         uses service-information;\r
181                 } \r
182         } \r
183 \r
184         rpc preload-vnf-instance-topology-operation {\r
185                 input { \r
186                         uses sdnc-request-header; \r
187                         uses request-information; \r
188                         uses vnf-instance-topology-information;\r
189                 } \r
190                 output { \r
191                         uses vnf-instance-topology-response-body; \r
192                 } \r
193         }\r
194 \r
195     /********************************************/\r
196     /*             vf-module                    */\r
197     /********************************************/\r
198         grouping vf-module-request-information { \r
199                 container vf-module-request-information { \r
200             uses vnf-instance-topology-identifier;\r
201             uses region-identifier;\r
202             uses vf-module-topology-identifier;\r
203                 }\r
204         } \r
205 \r
206     grouping vf-module-identifiers {\r
207         container vf-module-identifiers {\r
208             uses vf-module-topology-identifier;\r
209         }\r
210     }\r
211 \r
212     grouping vf-module-topology-identifier {\r
213         leaf vf-module-id {\r
214             type string; \r
215             description "vf-module id";\r
216         }\r
217         leaf vf-module-name { \r
218             type string; \r
219             description "vf-module-name";\r
220         } \r
221         leaf vf-module-model-id { \r
222             type string; \r
223             description "vf-module-type";\r
224         }\r
225     } \r
226 \r
227     /***********************************************************/\r
228     /*             PRELOAD DATA  - vfmodule                    */\r
229     /***********************************************************/\r
230         container preload-vf-modules {\r
231                 uses preload-vf-module-model-information; \r
232         } \r
233 \r
234         grouping preload-vf-module-model-information { \r
235                 list vf-module-preload-list { \r
236                         key "vf-module-name vf-module-model-id"; \r
237                         leaf vf-module-name { \r
238                                 type string; \r
239                                 description "vf-module-name";\r
240                         } \r
241                         leaf vf-module-model-id { \r
242                                 type string; \r
243                                 description "vf-module-type";\r
244                         } \r
245                         uses vf-module-preload-data; \r
246                 } \r
247         } \r
248 \r
249         grouping vf-module-preload-data { \r
250                 container vf-module-preload-data { \r
251                         uses vf-module-topology-information; \r
252                         uses vnfapi:oper-status; \r
253                 }\r
254         } \r
255 \r
256         grouping vf-module-topology-information { \r
257                 container vf-module-topology-information { \r
258                         uses vf-module-identifiers;\r
259                         uses vnfapi:vnf-assignments; \r
260                         uses vnfapi:vnf-parameters; \r
261                 }\r
262         } \r
263 \r
264 \r
265     /***********************************************************/\r
266     /*               SERVICE_DATA - vfmodule                   */\r
267     /***********************************************************/\r
268         container vf-modules {\r
269                 uses vf-module-model-infrastructure; \r
270         } \r
271         grouping vf-module-model-infrastructure { \r
272                 list vf-module-list { \r
273                         key vf-module-id; \r
274                         leaf vf-module-id { \r
275                                 type string; \r
276                                 mandatory true; \r
277                                 description "vf-module-id";\r
278                         } \r
279                         uses vf-module-service-data;\r
280                         uses vnfapi:service-status; \r
281                 } \r
282         } \r
283 \r
284    grouping vf-module-service-data {\r
285      container vf-module-service-data {\r
286        uses vf-module-configuration-information;\r
287        uses vnfapi:oper-status;\r
288      }\r
289     } \r
290 \r
291         grouping vf-module-configuration-information { \r
292                 uses vnfapi:sdnc-request-header; \r
293                 uses vnfapi:request-information; \r
294                 uses vnfapi:service-information;\r
295                 uses vf-module-request-information;\r
296                 uses vf-module-topology; \r
297         } \r
298 \r
299         grouping vf-module-topology-response-body { \r
300                 leaf svc-request-id { \r
301                         type string; \r
302                 } \r
303                 leaf response-code { \r
304                         type string; \r
305                 } \r
306                 leaf response-message { \r
307                         type string; \r
308                 } \r
309                 leaf ack-final-indicator { \r
310                         type string; \r
311                 } \r
312         } \r
313 \r
314         grouping vf-module-information { \r
315                 container vf-module-information { \r
316                         leaf vf-module-id { \r
317                                 type string; \r
318                                 description "vf-module-id";\r
319                         } \r
320                 } \r
321         } \r
322 \r
323         grouping vf-module-topology { \r
324                 leaf vf-module-id {\r
325                         type string; \r
326                         description "vf-module-id";\r
327                 }\r
328                 uses vf-module-topology-information; \r
329         } \r
330         \r
331         \r
332         rpc vf-module-topology-operation {\r
333                 input { \r
334                         uses sdnc-request-header; \r
335                         uses request-information; \r
336                         uses service-information;\r
337                         uses vf-module-request-information; \r
338                 } \r
339                 output { \r
340                         uses vf-module-topology-response-body; \r
341                         uses vf-module-information;\r
342                         uses service-information;\r
343                 } \r
344         } \r
345 \r
346         rpc preload-vf-module-topology-operation {\r
347                 input { \r
348                         uses sdnc-request-header; \r
349                         uses request-information; \r
350                         uses vf-module-topology-information;\r
351                 } \r
352                 output { \r
353                         uses vf-module-topology-response-body; \r
354                 } \r
355         }\r
356 }\r